# Core APIs

# Introduction
[comment]: <> (x-product-description-placeholder)
The Rebilly API is built on HTTP and is RESTful.
It has predictable resource URLs and returns HTTP response codes to indicate errors.
It also accepts and returns JSON in the HTTP body.
Use your favorite HTTP/REST library in your programming language when using this API,
or use one of the Rebilly SDKs,
which are available in [PHP](https://github.com/Rebilly/rebilly-php) and [JavaScript](https://www.npmjs.com/package/rebilly-js-sdk).

Every action in the [Rebilly UI](https://app.rebilly.com) is supported by an API which is documented and available for use, so that you may automate any necessary workflows or processes.
This API reference documentation contains the most commonly integrated resources.

# Authentication

Rebilly offers four forms of authentication: secret key, publishable key, JSON Web Tokens, and public signature key.

- Secret API key: Use to make requests from the server side.
  Never share these keys.
  Keep them guarded and secure.
- Publishable API key: Use in your client-side code to tokenize payment information.
- JWT: Use to make short-life tokens that expire after a set period of time.

## Manage API keys

To create or manage API keys, select one of the following:

- Use the Rebilly UI: see [Manage API keys](https://www.rebilly.com/docs/dev-docs/api-keys/#manage-api-keys)
- Use the Rebilly API: see the [API key operations](https://www.rebilly.com/catalog/all/api-keys).

For more information on API keys, see [API keys](https://www.rebilly.com/docs/concepts-and-features/concept/api-keys).

# Errors
Rebilly follows the error response format proposed in [RFC 9457](https://tools.ietf.org/html/rfc9457), which is also known as Problem Details for HTTP APIs.
As with any API responses, your client must be prepared to gracefully handle additional members of the response.

# SDKs

Rebilly provides a JavaScript SDK and a PHP SDK to help interact with the Rebilly API.
However, no SDK is required to use the API.

Rebilly also provides [FramePay](https://www.rebilly.com/docs/developer-docs/framepay/),
a client-side iFrame-based solution, to help create payment tokens while minimizing PCI DSS compliance burdens
and maximizing your customization ability.
[FramePay](https://www.rebilly.com/docs/developer-docs/framepay/) interacts with the [payment tokens creation operation](https://www.rebilly.com/catalog/all/payment-tokens/posttoken).

## JavaScript SDK

For installation and usage instructions, see [SDKs](https://www.rebilly.com/docs/dev-docs/sdks/).
All JavaScript SDK code examples are included in the API reference documentation.

## PHP SDK

For installation and usage instructions, see [SDKs](https://www.rebilly.com/docs/dev-docs/sdks/).
All SDK code examples are included in the API reference documentation.
To use them, you must configure the `$client` as follows:

```php
$client = new Rebilly\Client([
    'apiKey' => 'YourApiKeyHere',
    'baseUrl' => 'https://api.rebilly.com',
]);
```

# Get started

The full [Rebilly API](https://www.rebilly.com/catalog/all/) has over 500 operations.
This is likely more than you may need to implement your use cases.
If you would like to implement a particular use case,
[contact Rebilly](https://www.rebilly.com/support/) for guidance and feedback on the best API operations to use for the task.

To integrate Rebilly, and learn about related resources and concepts,
see [Get started](https://www.rebilly.com/docs/dev-docs#get-started).

To create and manage API keys, see [API keys](https://www.rebilly.com/docs/dev-docs/api-keys/).

# Rate limits

Rate limits apply to the organization, not to the API key.

API responses for rate-limited operations include `Rate-Limit-Limit` and `Rate-Limit-Remaining`.
`Rate-Limit-Limit` is the maximum number of requests available at one time.
`Rate-Limit-Remaining` is the number of requests still available.

A request over the limit returns `429 Too Many Requests`.
The response includes `Retry-After` and `Rate-Limit-Retry-After`.
Both values are the number of seconds to wait before retrying.

Version: latest
License: Rebilly
Metadata:
- description: The most common APIs used to automate common workflows.
- redocly_category: API Reference

## Servers

Sandbox server
```
https://api-sandbox.rebilly.com/organizations/{organizationId}
```

Variables:
- `organizationId`: Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Default: "{organizationId}"

Live server
```
https://api.rebilly.com/organizations/{organizationId}
```

Variables:
- `organizationId`: Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Default: "{organizationId}"

## Security

### JWT

JWT is a short lifetime token that can be assigned a specific expiration time.

Usage format: `Bearer <JWT>`.

Type: http
Scheme: bearer
Bearer Format: JWT

### ApplicationJWT

Applications in the Rebilly App Store can create a JSON Web Token (JWT) by fetching an user's instance.
For more information, see Retrieve an application instance.

Usage format: `Bearer <JWT>`.

Type: http
Scheme: bearer
Bearer Format: JWT

### PublishableApiKey

This authentication method is applicable to specific operations.

To create a publishable API key, see [Create an API key](https://www.rebilly.com/catalog/all/api-keys/postapikey).

Type: apiKey
In: header
Name: Authorization

### SecretApiKey

Never share your secret keys.
Keep them guarded and secure.

Use your secret API key only to make requests from the server side.
To authenticate, provide your secret key in the request header.

Type: apiKey
In: header
Name: REB-APIKEY

### CustomerJWT

To create a JSON Web Token (JWT) using Storefront authentication,
see the Create a session with username and password operation.

Usage format: `Bearer <JWT>`.

Type: http
Scheme: bearer
Bearer Format: JWT

## Download OpenAPI description

[Core APIs](/_bundle/docs/dev-docs/api/index.yaml)

## Customers

- [GET /customers](/docs/dev-docs/api/customers/getcustomercollection.md): Retrieves a list of customers.
- [POST /customers](/docs/dev-docs/api/customers/postcustomer.md): Creates a new customer and customer ID. The customer's primary address is used as the default address for payment instruments, subscriptions, and invoices if none are provided. If the customer already
- [GET /customers/{id}](/docs/dev-docs/api/customers/getcustomer.md): Retrieves a customer with a specified ID.
- [PUT /customers/{id}](/docs/dev-docs/api/customers/putcustomer.md): Creates or updates (upserts) a customer with a specified ID. If the customer already has an identifier within your system, and you want to create a customer with a specified ID — use this operation to
- [DELETE /customers/{id}](/docs/dev-docs/api/customers/deletecustomer.md): Merges one duplicate customer to another target customer and deletes the former.
- [GET /customers/{id}/lead-source](/docs/dev-docs/api/customers/getcustomerleadsource.md): Retrieves lead source data for a customer with a specified ID. A lead source is the marketing campaign that generates customer interaction, a sale, or a trial. For more information, see [Lead source a
- [PUT /customers/{id}/lead-source](/docs/dev-docs/api/customers/putcustomerleadsource.md): Creates a lead source for a customer with a specified ID. A lead source is the marketing campaign that generates customer interaction, a sale, or a trial. For more information, see [Lead source attrib
- [GET /customers/{id}/credit-balance](/docs/dev-docs/api/customers/getcustomercreditbalance.md): Retrieves a customer's credit balance grouped by currency.
- [POST /customers/{id}/compliance-screening-report](/docs/dev-docs/api/customers/postcustomercompliancescreeningreport.md): Creates a compliance screening report that includes Know Your Customer (KYC) and Anti-Money Laundering (AML) results for a customer. The report is stored as a PDF customer attachment. Requires the KYC
- [POST customer-created](/docs/dev-docs/api/customers/customer-created.md)
- [POST customer-merged](/docs/dev-docs/api/customers/customer-merged.md)
- [POST customer-one-time-password-requested](/docs/dev-docs/api/customers/customer-one-time-password-requested.md)
- [POST customer-tax-number-validated](/docs/dev-docs/api/customers/customer-tax-number-validated.md)
- [POST customer-updated](/docs/dev-docs/api/customers/customer-updated.md)
- [POST experian-check-performed](/docs/dev-docs/api/customers/experian-check-performed.md)
- [POST lead-source-changed](/docs/dev-docs/api/customers/lead-source-changed.md)
## Customer authentication

- [GET /authentication-options](/docs/dev-docs/api/customer-authentication/getauthenticationoption.md): Retrieves customer authentication options.
- [PUT /authentication-options](/docs/dev-docs/api/customer-authentication/putauthenticationoption.md): Changes customer authentication options.
- [GET /authentication-tokens](/docs/dev-docs/api/customer-authentication/getauthenticationtokencollection.md): Retrieves a list of customer authentication tokens.
- [POST /authentication-tokens](/docs/dev-docs/api/customer-authentication/postauthenticationtoken.md): Logs in a customer.
- [GET /authentication-tokens/{token}](/docs/dev-docs/api/customer-authentication/getauthenticationtokenverification.md): Verifies a customer's authentication token.
- [DELETE /authentication-tokens/{token}](/docs/dev-docs/api/customer-authentication/deleteauthenticationtoken.md): Logs out a customer.
- [POST /authentication-tokens/{token}/exchange](/docs/dev-docs/api/customer-authentication/postauthenticationtokenexchange.md): Exchanges an authentication token for a JWT. By default, this operation invalidates the exchanged authentication token.
- [GET /credentials](/docs/dev-docs/api/customer-authentication/getcredentialcollection.md): Retrieves a list of authentication credentials.
- [POST /credentials](/docs/dev-docs/api/customer-authentication/postcredential.md): Creates an authentication credential.
- [GET /credentials/{id}](/docs/dev-docs/api/customer-authentication/getcredential.md): Retrieves a credential with a specified ID.
- [PUT /credentials/{id}](/docs/dev-docs/api/customer-authentication/putcredential.md): Creates or updates (upserts) an authentication credential with a specified ID.
- [GET /password-tokens](/docs/dev-docs/api/customer-authentication/getpasswordtokencollection.md): Retrieves a list of reset password tokens.
- [POST /password-tokens](/docs/dev-docs/api/customer-authentication/postpasswordtoken.md): Creates a reset password token.
- [GET /password-tokens/{id}](/docs/dev-docs/api/customer-authentication/getpasswordtoken.md): Retrieves a reset password token with a specified ID.
## Tags

- [GET /tags](/docs/dev-docs/api/tags/gettagcollection.md): Retrieves a list of tags.
- [POST /tags](/docs/dev-docs/api/tags/posttag.md): Creates a tag.
- [POST /tags/{tag}/customers/{customerId}](/docs/dev-docs/api/tags/posttagcustomer.md): Tags a customer.
- [DELETE /tags/{tag}/customers/{customerId}](/docs/dev-docs/api/tags/deletetagcustomer.md): Untags a customer.
- [POST /tags/{tag}/kyc-documents/{kycDocumentId}](/docs/dev-docs/api/tags/posttagkycdocument.md): Tags a KYC document.
- [DELETE /tags/{tag}/kyc-documents/{kycDocumentId}](/docs/dev-docs/api/tags/deletetagkycdocument.md): Untags a KYC document.
- [POST /tags/{tag}/aml-checks/{amlCheckId}](/docs/dev-docs/api/tags/posttagamlcheck.md): Tags an AML check. If an AML check in the list does not have the specified tag applied, the AML check is ignored.
- [DELETE /tags/{tag}/aml-checks/{amlCheckId}](/docs/dev-docs/api/tags/deletetagamlcheck.md): Untags an AML check. If an AML check in the list does not have the specified tag applied, the AML check is ignored.
- [GET /tags-rules](/docs/dev-docs/api/tags/gettagrulecollection.md): Retrieves a list of tags rules.
- [POST /tags-rules](/docs/dev-docs/api/tags/posttagrule.md): Creates a tags rule.
- [GET /tags-rules/{id}](/docs/dev-docs/api/tags/gettagrule.md): Retrieves a tags rule with a specified ID.
- [PUT /tags-rules/{id}](/docs/dev-docs/api/tags/puttagrule.md): Creates a tags rule with a specified ID.
## Customers timeline

- [GET /customer-timeline-custom-events](/docs/dev-docs/api/customers-timeline/getcustomertimelinecustomeventtypecollection.md): Retrieves a list of customer timeline custom event types.
- [GET /customer-timeline-custom-events/{id}](/docs/dev-docs/api/customers-timeline/getcustomertimelinecustomeventtype.md): Retrieves a customer timeline custom event type with a specified ID.
- [GET /customers/{id}/timeline](/docs/dev-docs/api/customers-timeline/getcustomertimelinecollection.md): Retrieves customer timeline messages.
- [POST /customers/{id}/timeline](/docs/dev-docs/api/customers-timeline/postcustomertimeline.md): Creates a customer timeline comment or custom defined event.
- [GET /customers/{id}/timeline/{messageId}](/docs/dev-docs/api/customers-timeline/getcustomertimeline.md): Retrieves a customer message with a specified ID.
## Payment instruments

- [GET /payment-instruments](/docs/dev-docs/api/payment-instruments/getpaymentinstrumentcollection.md): Retrieves a list of payment instruments.
- [POST /payment-instruments](/docs/dev-docs/api/payment-instruments/postpaymentinstrument.md): Creates a payment instrument. If the payment card, bank account, or alternative payment instrument already exists it is updated.
- [GET /payment-instruments/{id}](/docs/dev-docs/api/payment-instruments/getpaymentinstrument.md): Retrieves a payment instrument with a specified ID.
- [PATCH /payment-instruments/{id}](/docs/dev-docs/api/payment-instruments/patchpaymentinstrument.md): Updates the values of a payment instrument with a specified ID.
- [POST /payment-instruments/{id}/deactivation](/docs/dev-docs/api/payment-instruments/postpaymentinstrumentdeactivation.md): Deactivates a payment instrument with a specified ID.
- [POST /payment-instruments/{id}/name-inquiry](/docs/dev-docs/api/payment-instruments/postpaymentinstrumentnameinquiry.md): Performs a name check inquiry on a payment instrument. Use this operation to confirm the name that is associated with a payment instrument. This operation supports payment cards only, using VISA ANI r
- [POST payment-card-created](/docs/dev-docs/api/payment-instruments/payment-card-created.md)
- [POST payment-card-expiration-reminder-14-days](/docs/dev-docs/api/payment-instruments/payment-card-expiration-reminder-14-days.md): Sends a reminder when the active default payment card of a customer is 14 days from expiring. The reminder is sent only when the customer has an order that contains subscription items, and that order 
- [POST payment-card-expiration-reminder-7-days](/docs/dev-docs/api/payment-instruments/payment-card-expiration-reminder-7-days.md): Sends a reminder when the active default payment card of a customer is 7 days from expiring. The reminder is sent only when the customer has an order that contains subscription items, and that order h
- [POST payment-card-expiration-reminder-1-day](/docs/dev-docs/api/payment-instruments/payment-card-expiration-reminder-1-day.md): Sends a reminder when the active default payment card of a customer is 1 day from expiring. The reminder is sent only when the customer has an order that contains subscription items, and that order ha
- [POST payment-card-expired](/docs/dev-docs/api/payment-instruments/payment-card-expired.md)
- [POST payment-instrument-modified](/docs/dev-docs/api/payment-instruments/payment-instrument-modified.md)
- [POST payment-card-expiration-reminder](/docs/dev-docs/api/payment-instruments/payment-card-expiration-reminder.md)
## Payment tokens

- [POST /tokens](/docs/dev-docs/api/payment-tokens/posttoken.md): Creates a payment token which can be exchanged into a payment instrument. [FramePay](https://docs.rebilly.com/docs/developer-docs/framepay/) is the recommended way to create a payment token because it
- [GET /tokens](/docs/dev-docs/api/payment-tokens/gettokencollection.md): Retrieve a list of tokens.
- [GET /tokens/{token}](/docs/dev-docs/api/payment-tokens/gettoken.md): Retrieves a token with a specified ID.
- [POST /digital-wallets/validation](/docs/dev-docs/api/payment-tokens/postdigitalwalletvalidation.md): Validates a digital wallet session. We recommend using [FramePay](https://docs.rebilly.com/docs/developer-docs/framepay/) to validate a digital wallet session.
## Transactions

- [POST /ready-to-pay](/docs/dev-docs/api/transactions/postreadytopay.md): Retrieves available payment methods for a specific transaction or purchase. The order in which the payment methods are displayed to the customer should be the same as the order in the response. The li
- [POST /transactions](/docs/dev-docs/api/transactions/posttransaction.md): Creates a transaction of type `sale`, `authorize` or `setup`. Use this operation for the following transactions. #### Real-time decision and response In this transaction, you send a request and inspec
- [GET /transactions](/docs/dev-docs/api/transactions/gettransactioncollection.md): Retrieves a list of transactions.
- [GET /transactions/{id}](/docs/dev-docs/api/transactions/gettransaction.md): Retrieves a transaction with a specified ID.
- [PATCH /transactions/{id}](/docs/dev-docs/api/transactions/patchtransaction.md): Updates the custom fields of a transaction with a specified ID.
- [POST /payouts](/docs/dev-docs/api/transactions/postpayout.md): Creates a transaction of type `credit`.
- [POST /transactions/{id}/query](/docs/dev-docs/api/transactions/posttransactionquery.md): Queries a transaction with a specified ID. The query interacts with the related gateway account to obtain the result, amount, and currency. If after analysis, the transaction must be updated, see [Upd
- [POST /transactions/{id}/update](/docs/dev-docs/api/transactions/posttransactionupdate.md): Updates the status of a transaction with a specified ID to `completed`, with a specified `result` and optional currency and amount values.
- [POST /transactions/{id}/refund](/docs/dev-docs/api/transactions/posttransactionrefund.md): Refunds a transaction with a specified ID. The refund is in the same currency as the original transaction.
- [GET /payout-requests](/docs/dev-docs/api/transactions/getpayoutrequestcollection.md): Retrieves a list of payout requests. Filter by: `id`, `customerId`, `websiteId`, `batchId`, `status`, `blocked`, `blockReason`, `splitReason`, `createdTime`, `updatedTime`, `currency`, `amount`.
- [POST /payout-requests](/docs/dev-docs/api/transactions/postpayoutrequest.md): Creates a payout request. In the response, the `selectPaymentInstrumentUrl` field is used to redirect the customer to select a preferred payment instrument. After a payment instrument is selected, the
- [GET /payout-requests/{id}](/docs/dev-docs/api/transactions/getpayoutrequest.md): Retrieves a payout request with a specified ID.
- [PATCH /payout-requests/{id}](/docs/dev-docs/api/transactions/patchpayoutrequest.md): Updates a payout request with a specified ID. Use this operation to update the status, description, and blocked state.
- [GET /payout-requests/{id}/payment-instruments](/docs/dev-docs/api/transactions/getpayoutrequestpaymentinstruments.md): Retrieves the payment gateway and a list of payment instruments that are associated with a payout request with a specified ID.
- [POST /payout-request-auto-allocations](/docs/dev-docs/api/transactions/postpayoutrequestautoallocations.md): Creates allocations for a payout request using automatically selected payment instruments and gateway accounts. Only the payout request ID is required. When an allocation is created, the payout reques
- [GET /payout-request-allocations](/docs/dev-docs/api/transactions/getpayoutrequestallocationcollection.md): Retrieves a list of payout request allocations.
- [POST /payout-request-allocations](/docs/dev-docs/api/transactions/postpayoutrequestallocation.md): Creates an allocation for a payout request. When an allocation is created, the payout request transitions to the `in-progress` status, and the allocation starts in the `pending` status. The allocation
- [PATCH /payout-request-allocations/{id}](/docs/dev-docs/api/transactions/patchpayoutrequestallocation.md): Updates the status of a payout request allocation with a specified ID. Only the `processing` and `canceled` statuses can be set with this operation. The `processing` status transitions an allocation f
- [GET /payout-request-batches](/docs/dev-docs/api/transactions/getpayoutrequestbatchcollection.md): Retrieves a list of payout request batches.
- [POST customer-redirected-offsite](/docs/dev-docs/api/transactions/customer-redirected-offsite.md)
- [POST customer-returned](/docs/dev-docs/api/transactions/customer-returned.md)
- [POST gateway-account-requested](/docs/dev-docs/api/transactions/gateway-account-requested.md)
- [POST offsite-payment-completed](/docs/dev-docs/api/transactions/offsite-payment-completed.md)
- [POST payout-request-batch-created](/docs/dev-docs/api/transactions/payout-request-batch-created.md)
- [POST payout-request-batch-deleted](/docs/dev-docs/api/transactions/payout-request-batch-deleted.md)
- [POST payout-request-batch-modified](/docs/dev-docs/api/transactions/payout-request-batch-modified.md)
- [POST payout-request-canceled](/docs/dev-docs/api/transactions/payout-request-canceled.md)
- [POST payout-request-changed](/docs/dev-docs/api/transactions/payout-request-changed.md)
- [POST payout-request-created](/docs/dev-docs/api/transactions/payout-request-created.md)
- [POST payout-request-fulfilled](/docs/dev-docs/api/transactions/payout-request-fulfilled.md)
- [POST payout-request-modified](/docs/dev-docs/api/transactions/payout-request-modified.md)
- [POST ready-to-pay-requested](/docs/dev-docs/api/transactions/ready-to-pay-requested.md)
- [POST risk-score-changed](/docs/dev-docs/api/transactions/risk-score-changed.md)
- [POST transaction-amount-discrepancy-found](/docs/dev-docs/api/transactions/transaction-amount-discrepancy-found.md)
- [POST transaction-declined](/docs/dev-docs/api/transactions/transaction-declined.md)
- [POST transaction-discrepancy-found](/docs/dev-docs/api/transactions/transaction-discrepancy-found.md)
- [POST transaction-process-requested](/docs/dev-docs/api/transactions/transaction-process-requested.md)
- [POST transaction-processed](/docs/dev-docs/api/transactions/transaction-processed.md)
- [POST transaction-reconciled](/docs/dev-docs/api/transactions/transaction-reconciled.md)
- [POST transaction-partially-refunded](/docs/dev-docs/api/transactions/transaction-partially-refunded.md)
- [POST transaction-refunded](/docs/dev-docs/api/transactions/transaction-refunded.md)
- [POST transaction-voided](/docs/dev-docs/api/transactions/transaction-voided.md)
- [POST transaction-timeout-resolved](/docs/dev-docs/api/transactions/transaction-timeout-resolved.md)
- [POST waiting-gateway-transaction-completed](/docs/dev-docs/api/transactions/waiting-gateway-transaction-completed.md)
- [POST autodeposit-lookup-performed](/docs/dev-docs/api/transactions/autodeposit-lookup-performed.md)
## Disputes

- [GET /disputes](/docs/dev-docs/api/disputes/getdisputecollection.md): Retrieves a list of all disputes.
- [POST /disputes](/docs/dev-docs/api/disputes/postdispute.md): Creates a new dispute.
- [GET /disputes/{id}](/docs/dev-docs/api/disputes/getdispute.md): Retrieves a dispute with a specified ID.
- [PUT /disputes/{id}](/docs/dev-docs/api/disputes/putdispute.md): Creates or updates (upserts) a dispute with a specified ID.
- [POST dispute-created](/docs/dev-docs/api/disputes/dispute-created.md)
- [POST dispute-modified](/docs/dev-docs/api/disputes/dispute-modified.md)
## Transactions timeline

- [GET /transactions/{id}/timeline](/docs/dev-docs/api/transactions-timeline/gettransactiontimelinecollection.md): Retrieves a list of transaction timeline messages.
- [POST /transactions/{id}/timeline](/docs/dev-docs/api/transactions-timeline/posttransactiontimeline.md): Creates a transaction timeline comment.
- [GET /transactions/{id}/timeline/{messageId}](/docs/dev-docs/api/transactions-timeline/gettransactiontimeline.md): Retrieves a timeline message with a specified ID.
- [DELETE /transactions/{id}/timeline/{messageId}](/docs/dev-docs/api/transactions-timeline/deletetransactiontimeline.md): Deletes a transaction timeline message with a specified ID.
- [GET /payout-requests/{id}/timeline](/docs/dev-docs/api/transactions-timeline/getpayoutrequesttimelinecollection.md): Retrieves a list of payout request timeline messages.
## Orders

- [GET /orders](/docs/dev-docs/api/orders/getordercollection.md): Retrieves a collection of orders.
- [POST /orders](/docs/dev-docs/api/orders/postorder.md): Creates an order.
- [GET /orders/{id}](/docs/dev-docs/api/orders/getorder.md): Retrieves an order with a specified ID.
- [PUT /orders/{id}](/docs/dev-docs/api/orders/putorder.md): Creates or updates (upserts) an order with a specified ID.
- [GET /orders/{id}/upcoming-invoice](/docs/dev-docs/api/orders/getorderupcominginvoice.md): Retrieves an upcoming invoice for a specified order. An upcoming invoice is an invoice that has not been issued. It functions as a preview of the next invoice for the order. For more information, see 
- [GET /order-pauses](/docs/dev-docs/api/orders/getorderpausecollection.md): Retrieves a list of order pauses.
- [POST /order-pauses](/docs/dev-docs/api/orders/postorderpause.md): Pauses an order with a specified ID.
- [GET /order-pauses/{id}](/docs/dev-docs/api/orders/getorderpause.md): Retrieves an order pause with a specified ID.
- [PUT /order-pauses/{id}](/docs/dev-docs/api/orders/putorderpause.md): Updates an order pause with a specified ID.
- [DELETE /order-pauses/{id}](/docs/dev-docs/api/orders/deleteorderpause.md): Deletes an order pause with a specified ID. If the specified pause is `pending`, it is `revoked`. If the specified pause is `ongoing`, it is `finished`.
- [GET /order-changes](/docs/dev-docs/api/orders/getorderchangecollection.md): Retrieves a list of order changes. To find the pending change of an order, use `filter=orderId:{orderId};status:pending`.
- [POST /order-changes](/docs/dev-docs/api/orders/postorderchange.md): Changes the items of an order immediately, or schedules the change for the next renewal.
- [GET /order-changes/{id}](/docs/dev-docs/api/orders/getorderchange.md): Retrieves an order change with a specified ID.
- [PUT /order-changes/{id}](/docs/dev-docs/api/orders/putorderchange.md): Creates an order change with a specified ID, or replaces the items of a pending order change. A change that is not pending cannot be updated.
- [DELETE /order-changes/{id}](/docs/dev-docs/api/orders/deleteorderchange.md): Cancels a pending order change with a specified ID. The current items of the order stay as they are. A change cannot be canceled after it is locked by an issued invoice, applied, canceled, or supersed
- [GET /order-cancellations](/docs/dev-docs/api/orders/getordercancellationcollection.md): Retrieves a list of order cancellations.
- [POST /order-cancellations](/docs/dev-docs/api/orders/postordercancellation.md): Cancels an order.
- [GET /order-cancellations/{id}](/docs/dev-docs/api/orders/getordercancellation.md): Retrieves an order cancellation with a specified ID.
- [GET /order-reactivations](/docs/dev-docs/api/orders/getorderreactivationcollection.md): Retrieves a list of order reactivations.
- [GET /order-reactivations/{id}](/docs/dev-docs/api/orders/getorderreactivation.md): Retrieves an order reactivation with a specified ID.
- [POST /orders/{id}/void](/docs/dev-docs/api/orders/postordervoid.md): Voids a pending order with a specified ID.
- [POST /orders/{id}/change-items](/docs/dev-docs/api/orders/postorderitemschange.md): Changes order items or quantities and specifies if and when to give pro rata credits. To change the items at the next renewal, use the `POST /order-changes` operation with `applyAt` set to `nextRenewa
- [PATCH /orders/{id}/items/{itemId}](/docs/dev-docs/api/orders/patchorderitem.md): Updates an order item. This is an experimental endpoint and may be changed or removed in the future.
- [POST /orders/{id}/interim-invoice](/docs/dev-docs/api/orders/postorderinteriminvoice.md): Issues an interim invoice for an order. Use this operation for plan changes and pro rata adjustments. This process: - Creates an invoice. - Adds the order line items to the invoice. - Issues the invoi
- [POST /orders/{id}/upcoming-invoice/issue](/docs/dev-docs/api/orders/postorderupcominginvoiceissuance.md): Issues an upcoming invoice, for an order with a specified ID, for early pay.
- [POST orders-experimental-hard-usage-limit-reached](/docs/dev-docs/api/orders/orders-experimental-hard-usage-limit-reached.md)
- [POST orders-experimental-order-abandoned](/docs/dev-docs/api/orders/orders-experimental-order-abandoned.md)
- [POST orders-experimental-order-completed](/docs/dev-docs/api/orders/orders-experimental-order-completed.md)
- [POST orders-experimental-renewal-invoice-issued](/docs/dev-docs/api/orders/orders-experimental-renewal-invoice-issued.md)
- [POST orders-experimental-soft-usage-limit-reached](/docs/dev-docs/api/orders/orders-experimental-soft-usage-limit-reached.md)
- [POST orders-experimental-subscription-activated](/docs/dev-docs/api/orders/orders-experimental-subscription-activated.md)
- [POST orders-experimental-subscription-canceled](/docs/dev-docs/api/orders/orders-experimental-subscription-canceled.md)
- [POST orders-experimental-subscription-churned](/docs/dev-docs/api/orders/orders-experimental-subscription-churned.md)
- [POST orders-experimental-subscription-created](/docs/dev-docs/api/orders/orders-experimental-subscription-created.md)
- [POST orders-experimental-subscription-downgraded](/docs/dev-docs/api/orders/orders-experimental-subscription-downgraded.md)
- [POST orders-experimental-subscription-items-changed](/docs/dev-docs/api/orders/orders-experimental-subscription-items-changed.md)
- [POST orders-experimental-subscription-modified](/docs/dev-docs/api/orders/orders-experimental-subscription-modified.md)
- [POST orders-experimental-subscription-quantity-filled-limit-reached](/docs/dev-docs/api/orders/orders-experimental-subscription-quantity-filled-limit-reached.md)
- [POST orders-experimental-subscription-reactivated](/docs/dev-docs/api/orders/orders-experimental-subscription-reactivated.md)
- [POST subscription-renewal-reminder-30-days](/docs/dev-docs/api/orders/subscription-renewal-reminder-30-days.md): Sends a reminder when an active order that contains subscription items is 30 days from renewal. The reminder is sent only when the recurring interval of the order is 90 days or more. The reminder is n
- [POST subscription-renewal-reminder-7-days](/docs/dev-docs/api/orders/subscription-renewal-reminder-7-days.md): Sends a reminder when an active order that contains subscription items is 7 days from renewal. The reminder is sent only when the recurring interval of the order is 14 days or more. The reminder is no
- [POST subscription-renewal-reminder-1-day](/docs/dev-docs/api/orders/subscription-renewal-reminder-1-day.md): Sends a reminder when an active order that contains subscription items is 1 day from renewal. The reminder is sent only when the recurring interval of the order is longer than 1 day. The reminder is n
- [POST orders-experimental-subscription-renewed](/docs/dev-docs/api/orders/orders-experimental-subscription-renewed.md)
- [POST orders-experimental-subscription-trial-converted](/docs/dev-docs/api/orders/orders-experimental-subscription-trial-converted.md)
- [POST orders-experimental-subscription-trial-end-reminder](/docs/dev-docs/api/orders/orders-experimental-subscription-trial-end-reminder.md)
- [POST orders-experimental-subscription-trial-ended](/docs/dev-docs/api/orders/orders-experimental-subscription-trial-ended.md)
- [POST orders-experimental-subscription-upgraded](/docs/dev-docs/api/orders/orders-experimental-subscription-upgraded.md)
- [POST orders-experimental-subscription-paused](/docs/dev-docs/api/orders/orders-experimental-subscription-paused.md)
- [POST orders-experimental-subscription-pause-created](/docs/dev-docs/api/orders/orders-experimental-subscription-pause-created.md)
- [POST orders-experimental-subscription-pause-modified](/docs/dev-docs/api/orders/orders-experimental-subscription-pause-modified.md)
- [POST orders-experimental-subscription-pause-revoked](/docs/dev-docs/api/orders/orders-experimental-subscription-pause-revoked.md)
- [POST orders-experimental-order-change-created](/docs/dev-docs/api/orders/orders-experimental-order-change-created.md)
- [POST orders-experimental-order-change-canceled](/docs/dev-docs/api/orders/orders-experimental-order-change-canceled.md)
- [POST orders-experimental-order-change-applied](/docs/dev-docs/api/orders/orders-experimental-order-change-applied.md)
- [POST orders-experimental-subscription-resumed](/docs/dev-docs/api/orders/orders-experimental-subscription-resumed.md)
- [POST orders-experimental-trial-usage-limit-reached](/docs/dev-docs/api/orders/orders-experimental-trial-usage-limit-reached.md)
- [POST orders-experimental-order-delinquency-reached](/docs/dev-docs/api/orders/orders-experimental-order-delinquency-reached.md)
- [POST orders-experimental-order-abandon-reminder](/docs/dev-docs/api/orders/orders-experimental-order-abandon-reminder.md)
## Orders (legacy)

- [GET /subscriptions](/docs/dev-docs/api/orders-(legacy)/getsubscriptioncollection.md): Retrieves a list of orders.
- [POST /subscriptions](/docs/dev-docs/api/orders-(legacy)/postsubscription.md): Creates an order. To create or update an order with a specified ID, use the [`PUT /subscriptions/{id}`](https://www.rebilly.com/catalog/all/orders-(legacy)/putsubscription) operation. Organizations th
- [GET /subscriptions/{id}](/docs/dev-docs/api/orders-(legacy)/getsubscription.md): Retrieves an order with a specified ID.
- [PUT /subscriptions/{id}](/docs/dev-docs/api/orders-(legacy)/putsubscription.md): Creates or updates (upserts) an order with a specified ID. Organizations that use the current order model cannot create legacy orders. For these organizations, this operation only updates an existing 
- [DELETE /subscriptions/{id}](/docs/dev-docs/api/orders-(legacy)/deletesubscription.md): Deletes a pending order with a specified ID.
- [POST /subscriptions/{id}/void](/docs/dev-docs/api/orders-(legacy)/postsubscriptionvoid.md): Voids a pending order with a specified ID.
- [POST /subscriptions/{id}/change-items](/docs/dev-docs/api/orders-(legacy)/postsubscriptionitemschange.md): Changes the items or quantities of an order that contains subscription items and specifies if and when to give pro rata credits. To change the items at the next renewal, use the `POST /order-changes` 
- [POST /subscriptions/{id}/interim-invoice](/docs/dev-docs/api/orders-(legacy)/postsubscriptioninteriminvoice.md): Issues an interim invoice for a subscription order. Use this operation for plan changes and pro rata adjustments. This process: - Creates an invoice. - Adds the subscription line items to the invoice.
- [GET /subscription-pauses](/docs/dev-docs/api/orders-(legacy)/getsubscriptionpausecollection.md): Retrieves a list of subscription order pauses.
- [POST /subscription-pauses](/docs/dev-docs/api/orders-(legacy)/postsubscriptionpause.md): Pauses a subscription order with a specified ID.
- [GET /subscription-pauses/{id}](/docs/dev-docs/api/orders-(legacy)/getsubscriptionpause.md): Retrieves a subscription order pause with a specified ID.
- [PUT /subscription-pauses/{id}](/docs/dev-docs/api/orders-(legacy)/putsubscriptionpause.md): Updates a subscription order pause.
- [DELETE /subscription-pauses/{id}](/docs/dev-docs/api/orders-(legacy)/deletesubscriptionpause.md): Deletes a subscription order pause with a specified ID. If the specified pause is `pending`, it is `revoked`. If the specified pause is `ongoing`, it is `finished`.
- [GET /subscription-cancellations](/docs/dev-docs/api/orders-(legacy)/getsubscriptioncancellationcollection.md): Retrieves a list of subscription order cancellations.
- [POST /subscription-cancellations](/docs/dev-docs/api/orders-(legacy)/postsubscriptioncancellation.md): Cancels a subscription order.
- [GET /subscription-cancellations/{id}](/docs/dev-docs/api/orders-(legacy)/getsubscriptioncancellation.md): Retrieves a subscription order cancellation with a specified ID.
- [PUT /subscription-cancellations/{id}](/docs/dev-docs/api/orders-(legacy)/putsubscriptioncancellation.md): Creates or updates (upserts) a subscription order cancellation with a specified ID.
- [PATCH /subscription-cancellations/{id}](/docs/dev-docs/api/orders-(legacy)/patchsubscriptioncancellation.md): Updates a subscription order cancellation with a specified ID. Use this operation to update a cancellation reason and description.
- [DELETE /subscription-cancellations/{id}](/docs/dev-docs/api/orders-(legacy)/deletesubscriptioncancellation.md): Deletes a subscription order cancellation with a specified ID. > **Important:** Only subscription order cancellations with a `status` of `draft` can be deleted.
- [GET /subscription-reactivations](/docs/dev-docs/api/orders-(legacy)/getsubscriptionreactivationcollection.md): Retrieves a list of subscription order reactivations.
- [POST /subscription-reactivations](/docs/dev-docs/api/orders-(legacy)/postsubscriptionreactivation.md): Reactivates a subscription order with a specified ID.
- [GET /subscription-reactivations/{id}](/docs/dev-docs/api/orders-(legacy)/getsubscriptionreactivation.md): Retrieves a subscription order reactivation with a specified ID.
- [GET /subscriptions/{id}/upcoming-invoice](/docs/dev-docs/api/orders-(legacy)/getsubscriptionupcominginvoice.md): Retrieves an upcoming invoice for a specified subscription order. An upcoming invoice is an invoice that has not been issued. It functions as a preview of the next invoice for the order. For more info
- [POST /subscriptions/{id}/upcoming-invoice/issue](/docs/dev-docs/api/orders-(legacy)/postsubscriptionupcominginvoiceissuance.md): Issues an upcoming invoice, for a subscription order with a specified ID, for early pay.
- [POST /previews/orders](/docs/dev-docs/api/orders-(legacy)/postprevieworder.md): Previews an order. Use this operation to preview a draft order before making an order.
- [GET /subscriptions/{id}/upcoming-invoices](/docs/dev-docs/api/orders-(legacy)/getsubscriptionupcominginvoicecollection.md): Retrieves an upcoming invoice for a specified subscription order. This endpoint is deprecated. Use [Retrieve an upcoming subscription order invoice](https://www.rebilly.com/catalog/all/orders-(legacy)
- [POST /subscriptions/{id}/upcoming-invoices/{invoiceId}/issue](/docs/dev-docs/api/orders-(legacy)/postupcominginvoiceissuance.md): Issues an upcoming invoice with a specified ID for early pay. This endpoint is deprecated. Use [Issue an upcoming invoice for early pay](https://www.rebilly.com/catalog/all/orders-(legacy)/postsubscri
- [POST hard-usage-limit-reached](/docs/dev-docs/api/orders-(legacy)/hard-usage-limit-reached.md)
- [POST order-abandoned](/docs/dev-docs/api/orders-(legacy)/order-abandoned.md)
- [POST order-completed](/docs/dev-docs/api/orders-(legacy)/order-completed.md)
- [POST renewal-invoice-issued](/docs/dev-docs/api/orders-(legacy)/renewal-invoice-issued.md)
- [POST soft-usage-limit-reached](/docs/dev-docs/api/orders-(legacy)/soft-usage-limit-reached.md)
- [POST subscription-activated](/docs/dev-docs/api/orders-(legacy)/subscription-activated.md)
- [POST subscription-canceled](/docs/dev-docs/api/orders-(legacy)/subscription-canceled.md)
- [POST subscription-churned](/docs/dev-docs/api/orders-(legacy)/subscription-churned.md)
- [POST subscription-created](/docs/dev-docs/api/orders-(legacy)/subscription-created.md)
- [POST subscription-downgraded](/docs/dev-docs/api/orders-(legacy)/subscription-downgraded.md)
- [POST subscription-items-changed](/docs/dev-docs/api/orders-(legacy)/subscription-items-changed.md)
- [POST subscription-modified](/docs/dev-docs/api/orders-(legacy)/subscription-modified.md)
- [POST subscription-quantity-filled-limit-reached](/docs/dev-docs/api/orders-(legacy)/subscription-quantity-filled-limit-reached.md)
- [POST subscription-reactivated](/docs/dev-docs/api/orders-(legacy)/subscription-reactivated.md)
- [POST subscription-renewed](/docs/dev-docs/api/orders-(legacy)/subscription-renewed.md)
- [POST subscription-trial-converted](/docs/dev-docs/api/orders-(legacy)/subscription-trial-converted.md)
- [POST subscription-trial-end-reminder](/docs/dev-docs/api/orders-(legacy)/subscription-trial-end-reminder.md)
- [POST subscription-trial-ended](/docs/dev-docs/api/orders-(legacy)/subscription-trial-ended.md)
- [POST subscription-upgraded](/docs/dev-docs/api/orders-(legacy)/subscription-upgraded.md)
- [POST subscription-paused](/docs/dev-docs/api/orders-(legacy)/subscription-paused.md)
- [POST subscription-pause-created](/docs/dev-docs/api/orders-(legacy)/subscription-pause-created.md)
- [POST subscription-pause-modified](/docs/dev-docs/api/orders-(legacy)/subscription-pause-modified.md)
- [POST subscription-pause-revoked](/docs/dev-docs/api/orders-(legacy)/subscription-pause-revoked.md)
- [POST subscription-resumed](/docs/dev-docs/api/orders-(legacy)/subscription-resumed.md)
- [POST trial-usage-limit-reached](/docs/dev-docs/api/orders-(legacy)/trial-usage-limit-reached.md)
- [POST order-delinquency-reached](/docs/dev-docs/api/orders-(legacy)/order-delinquency-reached.md)
- [POST order-abandon-reminder](/docs/dev-docs/api/orders-(legacy)/order-abandon-reminder.md)
- [POST subscription-renewal-reminder](/docs/dev-docs/api/orders-(legacy)/subscription-renewal-reminder.md)
## Invoices

- [GET /invoices](/docs/dev-docs/api/invoices/getinvoicecollection.md): Retrieves a list of invoices. Each invoice in the list includes up to 10 of the most recent transactions in `transactions`. To retrieve transactions for an invoice, use [Retrieve transactions](https:/
- [POST /invoices](/docs/dev-docs/api/invoices/postinvoice.md): Creates an invoice.
- [GET /invoices/{id}](/docs/dev-docs/api/invoices/getinvoice.md): Retrieves an invoice with a specified ID.
- [PUT /invoices/{id}](/docs/dev-docs/api/invoices/putinvoice.md): Creates or updates (upserts) an invoice with a specified ID. Returns a conflict error if the specified ID belongs to an upcoming invoice.
- [GET /invoices/{id}/items](/docs/dev-docs/api/invoices/getinvoiceitemcollection.md): Retrieves invoice items with a specified invoice ID.
- [POST /invoices/{id}/items](/docs/dev-docs/api/invoices/postinvoiceitem.md): Creates an invoice item.
- [GET /invoices/{id}/items/{itemId}](/docs/dev-docs/api/invoices/getinvoiceitem.md): Retrieves an invoice item.
- [PUT /invoices/{id}/items/{itemId}](/docs/dev-docs/api/invoices/putinvoiceitem.md): Updates an invoice item.
- [DELETE /invoices/{id}/items/{itemId}](/docs/dev-docs/api/invoices/deleteinvoiceitem.md): Deletes an invoice item.
- [POST /invoices/{id}/issue](/docs/dev-docs/api/invoices/postinvoiceissuance.md): Issues an invoice with a specified ID. The invoice must be in `draft` status.
- [POST /invoices/{id}/abandon](/docs/dev-docs/api/invoices/postinvoiceabandonment.md): Abandons an invoice with a specified ID. This operation removes credit memo allocations from the invoice. Unused credit returns to the credit memo.
- [POST /invoices/{id}/void](/docs/dev-docs/api/invoices/postinvoicevoid.md): Voids an invoice with a specified ID. This operation removes credit memo allocations from the invoice. Unused credit returns to the credit memo.
- [POST /invoices/{id}/recalculate](/docs/dev-docs/api/invoices/postinvoicerecalculation.md): Recalculates shipping rates, taxes, and discounts on an invoice with a specified ID. One use case for this operation to apply a revoked coupon, or coupon that is redeemed by a customer after the invoi
- [POST /invoices/{id}/reissue](/docs/dev-docs/api/invoices/postinvoicereissuance.md): Reissues an invoice with a specified ID. The status of the invoice must be `unpaid`, `partially paid`, `past due` or `abandoned`.
- [GET /invoices/{id}/transaction-allocations](/docs/dev-docs/api/invoices/getinvoicetransactionallocationcollection.md): Retrieves amounts from a transaction that are allocated as invoice payments.
- [POST /invoices/{id}/allocate-credit-balance](/docs/dev-docs/api/invoices/postinvoiceallocatecreditbalance.md): Allocates existing allocatable credit memos related to the invoice customer. Specific credit memos cannot be provided in the request and are selected automatically. Allocation can be capped with `amou
- [POST invoice-tax-calculation-failed](/docs/dev-docs/api/invoices/invoice-tax-calculation-failed.md)
- [POST invoice-abandoned](/docs/dev-docs/api/invoices/invoice-abandoned.md)
- [POST invoice-created](/docs/dev-docs/api/invoices/invoice-created.md)
- [POST invoice-issued](/docs/dev-docs/api/invoices/invoice-issued.md)
- [POST invoice-modified](/docs/dev-docs/api/invoices/invoice-modified.md)
- [POST invoice-paid](/docs/dev-docs/api/invoices/invoice-paid.md)
- [POST invoice-partially-paid](/docs/dev-docs/api/invoices/invoice-partially-paid.md)
- [POST invoice-refunded](/docs/dev-docs/api/invoices/invoice-refunded.md)
- [POST invoice-partially-refunded](/docs/dev-docs/api/invoices/invoice-partially-refunded.md)
- [POST invoice-past-due](/docs/dev-docs/api/invoices/invoice-past-due.md)
- [POST invoice-past-due-reminder-15-days](/docs/dev-docs/api/invoices/invoice-past-due-reminder-15-days.md): Sends a reminder when an unpaid renewal invoice is 15 days past its due date. The reminder is sent once for that due date, and remains available until 30 days after the due date. For more information,
- [POST invoice-past-due-reminder-30-days](/docs/dev-docs/api/invoices/invoice-past-due-reminder-30-days.md): Sends a reminder when an unpaid renewal invoice is 30 days past its due date. The reminder is sent once for that due date, and remains available until 60 days after the due date. For more information,
- [POST invoice-past-due-reminder-60-days](/docs/dev-docs/api/invoices/invoice-past-due-reminder-60-days.md): Sends a reminder when an unpaid renewal invoice is 60 days past its due date. The reminder is sent once for that due date, and remains available until 90 days after the due date. For more information,
- [POST invoice-past-due-reminder-90-days](/docs/dev-docs/api/invoices/invoice-past-due-reminder-90-days.md): Sends a reminder when an unpaid renewal invoice is 90 days past its due date. The reminder is sent once for that due date, and remains available until 120 days after the due date. For more information
- [POST invoice-reissued](/docs/dev-docs/api/invoices/invoice-reissued.md)
- [POST invoice-voided](/docs/dev-docs/api/invoices/invoice-voided.md)
- [POST renewal-invoice-payment-canceled](/docs/dev-docs/api/invoices/renewal-invoice-payment-canceled.md)
- [POST renewal-invoice-payment-declined](/docs/dev-docs/api/invoices/renewal-invoice-payment-declined.md)
- [POST invoice-past-due-reminder](/docs/dev-docs/api/invoices/invoice-past-due-reminder.md)
## Usage

- [GET /usages](/docs/dev-docs/api/usage/getusagecollection.md): Retrieves a list of usage records.
- [POST /usages](/docs/dev-docs/api/usage/postusage.md): Creates a usage report.
- [DELETE /usages/{id}](/docs/dev-docs/api/usage/deleteusage.md): Deletes a usage record with a specified ID.
## Credit memos

- [GET /credit-memos](/docs/dev-docs/api/credit-memos/getcreditmemocollection.md): Retrieves a list of credit memos.
- [POST /credit-memos](/docs/dev-docs/api/credit-memos/postcreditmemo.md): Creates a credit memo.
- [GET /credit-memos/{id}](/docs/dev-docs/api/credit-memos/getcreditmemo.md): Retrieves a credit memo with a specified ID.
- [PUT /credit-memos/{id}](/docs/dev-docs/api/credit-memos/putcreditmemo.md): Creates or updates (upserts) a credit memo with a specified ID.
- [PATCH /credit-memos/{id}](/docs/dev-docs/api/credit-memos/patchcreditmemo.md): Partially updates a credit memo with a specified ID.
- [POST /credit-memos/{id}/void](/docs/dev-docs/api/credit-memos/postcreditmemovoid.md): Voids a credit memo with a specified ID. Removes the invoice allocations of the credit memo and returns the allocated amounts to the invoices. If the credit memo is allocated to an invoice that is not
- [POST credit-memo-applied](/docs/dev-docs/api/credit-memos/credit-memo-applied.md)
- [POST credit-memo-created](/docs/dev-docs/api/credit-memos/credit-memo-created.md)
- [POST credit-memo-modified](/docs/dev-docs/api/credit-memos/credit-memo-modified.md)
- [POST credit-memo-partially-applied](/docs/dev-docs/api/credit-memos/credit-memo-partially-applied.md)
- [POST credit-memo-voided](/docs/dev-docs/api/credit-memos/credit-memo-voided.md)
## Plans

- [GET /plans](/docs/dev-docs/api/plans/getplancollection.md): Retrieves a list of plans. To retrieve plans by type, use `filter=type:{type}`, where `{type}` is `subscription`, `one-time-sale`, or `trial-only`. To retrieve plans of several types, separate the typ
- [POST /plans](/docs/dev-docs/api/plans/postplan.md): Creates a plan.
- [GET /plans/{id}](/docs/dev-docs/api/plans/getplan.md): Retrieves a plan with a specified ID.
- [PUT /plans/{id}](/docs/dev-docs/api/plans/putplan.md): Creates or updates (upserts) a plan with a specified ID.
- [DELETE /plans/{id}](/docs/dev-docs/api/plans/deleteplan.md): Deletes a plan with a specified ID.
## Products

- [GET /products](/docs/dev-docs/api/products/getproductcollection.md): Retrieves a list of products.
- [POST /products](/docs/dev-docs/api/products/postproduct.md): Creates a product.
- [GET /products/{id}](/docs/dev-docs/api/products/getproduct.md): Retrieves a product with a specified ID.
- [PUT /products/{id}](/docs/dev-docs/api/products/putproduct.md): Creates or updates (upserts) a product with a specified ID.
- [DELETE /products/{id}](/docs/dev-docs/api/products/deleteproduct.md): Deletes a product with a specified ID.
## Coupons

- [Coupon restriction types](/docs/dev-docs/api/coupons/coupon-restriction-types.md): ### Coupon restriction types The following coupon description types are available: - `restrict-to-countries`: Restricts a coupon for use in specific countries. - `discounts-per-redemption`: Restricts 
- [GET /coupons-redemptions](/docs/dev-docs/api/coupons/getcouponredemptioncollection.md): Retrieves a list of coupon redemptions.
- [POST /coupons-redemptions](/docs/dev-docs/api/coupons/postcouponredemption.md): Redeems a coupon.
- [GET /coupons-redemptions/{id}](/docs/dev-docs/api/coupons/getcouponredemption.md): Retrieves a coupon redemption with a specified ID.
- [POST /coupons-redemptions/{id}/cancel](/docs/dev-docs/api/coupons/postcouponredemptioncancellation.md): Cancels a coupon redemption with a specified ID.
- [GET /coupons](/docs/dev-docs/api/coupons/getcouponcollection.md): Retrieves a list of coupons.
- [POST /coupons](/docs/dev-docs/api/coupons/postcoupon.md): Creates a coupon.
- [GET /coupons/{id}](/docs/dev-docs/api/coupons/getcoupon.md): Retrieves a coupon with a specified ID.
- [PUT /coupons/{id}](/docs/dev-docs/api/coupons/putcoupon.md): Creates or updates (upserts) a coupon with a specified coupon ID.
- [POST coupon-application-removed](/docs/dev-docs/api/coupons/coupon-application-removed.md)
- [POST coupon-applied](/docs/dev-docs/api/coupons/coupon-applied.md)
- [POST coupon-expiration-modified](/docs/dev-docs/api/coupons/coupon-expiration-modified.md)
- [POST coupon-expired](/docs/dev-docs/api/coupons/coupon-expired.md)
- [POST coupon-issued](/docs/dev-docs/api/coupons/coupon-issued.md)
- [POST coupon-modified](/docs/dev-docs/api/coupons/coupon-modified.md)
- [POST coupon-redeemed](/docs/dev-docs/api/coupons/coupon-redeemed.md)
- [POST coupon-redemption-canceled](/docs/dev-docs/api/coupons/coupon-redemption-canceled.md)
## Quotes

- [GET /quotes](/docs/dev-docs/api/quotes/getquotecollection.md): Retrieves a list of quotes.
- [POST /quotes](/docs/dev-docs/api/quotes/postquote.md): Creates a quote.
- [GET /quotes/{id}](/docs/dev-docs/api/quotes/getquote.md): Retrieves a quote with a specified ID.
- [PUT /quotes/{id}](/docs/dev-docs/api/quotes/putquote.md): Creates or updates a quote with a specified ID. The update operation can only be used for quotes with a `status` of `draft`.
- [POST /quotes/{id}/accept](/docs/dev-docs/api/quotes/postquoteacceptance.md): Accepts an issued quote with a specified ID.
- [POST /quotes/{id}/cancel](/docs/dev-docs/api/quotes/postquotecancellation.md): Cancels a draft or issued quote with a specified ID.
- [POST /quotes/{id}/issue](/docs/dev-docs/api/quotes/postquoteissuance.md): Issues a draft quote with a specified ID.
- [POST /quotes/{id}/recall](/docs/dev-docs/api/quotes/postquoterecall.md): Recalls an issued quote with a specified ID so that it can be edited. Recalled quotes are assigned the `status` of `draft`.
- [POST /quotes/{id}/reissue](/docs/dev-docs/api/quotes/postquotereissue.md): Reissues an expired, canceled, or rejected quote with a specified ID. This operation assigns the quote the `status` of `issued`, clears the `canceledTime` and `rejectedTime` fields, and resets the ful
- [POST quote-accepted](/docs/dev-docs/api/quotes/quote-accepted.md)
- [POST quote-canceled](/docs/dev-docs/api/quotes/quote-canceled.md)
- [POST quote-created](/docs/dev-docs/api/quotes/quote-created.md)
- [POST quote-expired](/docs/dev-docs/api/quotes/quote-expired.md)
- [POST quote-issued](/docs/dev-docs/api/quotes/quote-issued.md)
- [POST quote-recalled](/docs/dev-docs/api/quotes/quote-recalled.md)
- [POST quote-rejected](/docs/dev-docs/api/quotes/quote-rejected.md)
- [POST quote-updated](/docs/dev-docs/api/quotes/quote-updated.md)
## Quotes timeline

- [GET /quotes/{id}/timeline](/docs/dev-docs/api/quotes-timeline/getquotetimelinecollection.md): Retrieves quote timeline messages.
- [POST /quotes/{id}/timeline](/docs/dev-docs/api/quotes-timeline/postquotetimeline.md): Creates a quote timeline comment or custom defined event.
## Shipping rates

- [GET /shipping-rates](/docs/dev-docs/api/shipping-rates/getshippingratecollection.md): Retrieves a list of shipping rates.
- [GET /shipping-rates/{id}](/docs/dev-docs/api/shipping-rates/getshippingrate.md): Retrieves a shipping rate with a specified ID.
- [PUT /shipping-rates/{id}](/docs/dev-docs/api/shipping-rates/putshippingrate.md): Creates a shipping rate with a specified ID.
## Orders timeline

- [GET /subscriptions/{id}/timeline](/docs/dev-docs/api/orders-timeline/getsubscriptiontimelinecollection.md): Retrieves a list of order timeline messages.
- [POST /subscriptions/{id}/timeline](/docs/dev-docs/api/orders-timeline/postsubscriptiontimeline.md): Creates an order timeline comment.
- [GET /subscriptions/{id}/timeline/{messageId}](/docs/dev-docs/api/orders-timeline/getsubscriptiontimeline.md): Retrieves an order timeline message with a specified ID.
## Invoices timeline

- [GET /invoices/{id}/timeline](/docs/dev-docs/api/invoices-timeline/getinvoicetimelinecollection.md): Retrieves a list of invoice timeline messages.
- [POST /invoices/{id}/timeline](/docs/dev-docs/api/invoices-timeline/postinvoicetimeline.md): Creates an invoice timeline comment.
- [GET /invoices/{id}/timeline/{messageId}](/docs/dev-docs/api/invoices-timeline/getinvoicetimeline.md): Retrieves an invoice timeline message with a specified ID.
- [DELETE /invoices/{id}/timeline/{messageId}](/docs/dev-docs/api/invoices-timeline/deleteinvoicetimeline.md): Deletes an invoice timeline message with a specified ID.
## Credit memos timeline

- [GET /credit-memos/{id}/timeline](/docs/dev-docs/api/credit-memos-timeline/getcreditmemotimelinecollection.md): Retrieves a list of credit memo timeline messages.
- [POST /credit-memos/{id}/timeline](/docs/dev-docs/api/credit-memos-timeline/postcreditmemotimeline.md): Creates a credit memo timeline message.
- [GET /credit-memos/{id}/timeline/{messageId}](/docs/dev-docs/api/credit-memos-timeline/getcreditmemotimeline.md): Retrieves a credit memo timeline message with a specified ID.
- [DELETE /credit-memos/{id}/timeline/{messageId}](/docs/dev-docs/api/credit-memos-timeline/deletecreditmemotimeline.md): Deletes a credit memo timeline message with a specified ID.
## Blocklists

- [GET /blocklists](/docs/dev-docs/api/blocklists/getblocklistcollection.md): Retrieves a list of all blocklists.
- [POST /blocklists](/docs/dev-docs/api/blocklists/postblocklist.md): Creates a blocklist.
- [GET /blocklists/{id}](/docs/dev-docs/api/blocklists/getblocklist.md): Retrieves a blocklist with a specified ID.
- [DELETE /blocklists/{id}](/docs/dev-docs/api/blocklists/deleteblocklist.md): Deletes a blocklist with a specified ID.
## Allowlists

- [GET /allowlists](/docs/dev-docs/api/allowlists/getallowlistcollection.md): Retrieves allowlist collection.
- [POST /allowlists](/docs/dev-docs/api/allowlists/postallowlist.md): Creates allowlist record.
## KYC documents

- [Credit file proof](/docs/dev-docs/api/kyc-documents/credit-file-proof.md): ### Credit file proof The `credit-file-proof` KYC document request type is only available in the API, this option is not available in the [KYC document gatherer](https://www.rebilly.com/docs/kyc-and-a
- [POST /kyc-requests](/docs/dev-docs/api/kyc-documents/postkycrequest.md): Creates a KYC request. The customer is redirected to the `kycGatherer` link. After the customer completes the KYC process, they are redirected back to the `redirectUrl` link. Corresponding webhooks, s
- [GET /kyc-requests](/docs/dev-docs/api/kyc-documents/getkycrequestcollection.md): Retrieves a list of KYC requests.
- [GET /kyc-requests/{id}](/docs/dev-docs/api/kyc-documents/getkycrequest.md): Retrieves a KYC request with a specified ID.
- [GET /kyc-documents](/docs/dev-docs/api/kyc-documents/getkycdocumentcollection.md): Retrieves a list of KYC documents.
- [POST /kyc-documents](/docs/dev-docs/api/kyc-documents/postkycdocument.md): Creates a KYC document.
- [GET /kyc-documents/{id}](/docs/dev-docs/api/kyc-documents/getkycdocument.md): Retrieves a KYC document with a specified ID.
- [PUT /kyc-documents/{id}](/docs/dev-docs/api/kyc-documents/putkycdocument.md): Creates or updates (upserts) a KYC document with a specified ID.
- [POST /kyc-documents/{id}/acceptance](/docs/dev-docs/api/kyc-documents/postkycdocumentacceptance.md): Accepts a KYC document and changes the documents `status` to `accepted`. The review time and reviewer information is also updated. > **Note:** Use this operation for manual overrides.
- [POST /kyc-documents/{id}/matches](/docs/dev-docs/api/kyc-documents/postkycdocumentmatches.md): Updates the document matches of a KYC document with a specified ID. > **Note:** Use this operation for manual overrides. The request body schema depends on the KYC document `documentType`. The operati
- [POST /kyc-documents/{id}/rejection](/docs/dev-docs/api/kyc-documents/postkycdocumentrejection.md): Rejects a KYC document and changes the `status` to `rejected`. The review time and reviewer information is also updated. > **Note:** Use this operation for manual overrides.
- [POST /kyc-documents/{id}/review](/docs/dev-docs/api/kyc-documents/postkycdocumentreview.md): Updates the `reviewTime` and `reviewerId` of a KYC document with a specified ID.
- [POST /kyc-documents/{id}/start-review](/docs/dev-docs/api/kyc-documents/postkycdocumentstartreview.md): Starts the review process of a KYC document with a specified ID. This operation also sets the KYC document `reviewStartTime` to the current date-time, and updates the review information.
- [POST /kyc-documents/{id}/stop-review](/docs/dev-docs/api/kyc-documents/postkycdocumentstopreview.md): Stops the review of a KYC document with a specified ID. This operation also sets the KYC document `reviewStartTime` and the reviewer information to null. Use this operation when the reviewer must stop
- [GET /kyc-settings](/docs/dev-docs/api/kyc-documents/getkycsettings.md): Retrieves KYC settings.
- [PUT /kyc-settings](/docs/dev-docs/api/kyc-documents/putkycsettings.md): Updates KYC settings.
- [POST kyc-document-accepted](/docs/dev-docs/api/kyc-documents/kyc-document-accepted.md)
- [POST kyc-document-created](/docs/dev-docs/api/kyc-documents/kyc-document-created.md)
- [POST kyc-document-modified](/docs/dev-docs/api/kyc-documents/kyc-document-modified.md)
- [POST kyc-document-rejected](/docs/dev-docs/api/kyc-documents/kyc-document-rejected.md)
- [POST kyc-document-reviewed](/docs/dev-docs/api/kyc-documents/kyc-document-reviewed.md)
- [POST kyc-document-archived](/docs/dev-docs/api/kyc-documents/kyc-document-archived.md)
- [POST kyc-request-attempted](/docs/dev-docs/api/kyc-documents/kyc-request-attempted.md)
- [POST kyc-request-failed](/docs/dev-docs/api/kyc-documents/kyc-request-failed.md)
- [POST kyc-request-fulfilled](/docs/dev-docs/api/kyc-documents/kyc-request-fulfilled.md)
- [POST kyc-request-partially-fulfilled](/docs/dev-docs/api/kyc-documents/kyc-request-partially-fulfilled.md)
## AML

- [GET /aml-checks](/docs/dev-docs/api/aml/getamlcheckcollection.md): Retrieves a list of AML checks. These checks are records of customer data and potentially matching data in AML lists.
- [GET /aml-checks/{id}](/docs/dev-docs/api/aml/getamlcheck.md): Retrieves the results of a customer's AML check. Customer metadata and an array of matching AML hits is returned.
- [POST /aml-checks/{id}/start-review](/docs/dev-docs/api/aml/postamlcheckstartreview.md): Starts the manual review process for an AML check with a specified ID. This operation also sets the AML check `reviewStartTime` to the current date-time, and updates the review information.
- [POST /aml-checks/{id}/stop-review](/docs/dev-docs/api/aml/postamlcheckstopreview.md): Stops the manual review process for an AML check with a specified ID. This operation also sets the AML check `reviewStartTime` and the reviewer information to null. Use this operation when the reviewe
- [POST /aml-checks/{id}/review](/docs/dev-docs/api/aml/postamlcheckreview.md): Reviews an AML check. Records a decision on each listed hit, then applies `status` to every hit that has no decision yet. The status of the AML check is calculated from the hit decisions. If any hit h
- [GET /aml-settings](/docs/dev-docs/api/aml/getamlsettings.md): Retrieves AML settings.
- [PUT /aml-settings](/docs/dev-docs/api/aml/putamlsettings.md): Updates AML settings.
- [POST aml-list-possibly-matched](/docs/dev-docs/api/aml/aml-list-possibly-matched.md)
## Risk score

- [GET /risk-score-rules](/docs/dev-docs/api/risk-score/getriskscorerules.md): Retrieves risk score rules.
- [GET /risk-score-rules/blocklists](/docs/dev-docs/api/risk-score/getriskscoreblocklistrules.md): Retrieves risk score blocklist rules.
## Custom fields

- [GET /custom-fields/{resource}](/docs/dev-docs/api/custom-fields/getcustomfieldcollection.md): Retrieves the custom fields schema for a specified resource.
- [GET /custom-fields/{resource}/{name}](/docs/dev-docs/api/custom-fields/getcustomfield.md): Retrieves a specified custom field schema for a specified resource.
- [PUT /custom-fields/{resource}/{name}](/docs/dev-docs/api/custom-fields/putcustomfield.md): Creates or alters a specified custom field schema for a specified resource.
## Files

- [GET /attachments](/docs/dev-docs/api/files/getattachmentcollection.md): Retrieves a list of attachments. You may sort attachments by: `id`, `name`, `relatedId`, `relatedType`, `fileId`, `createdTime`, and `updatedTime`.
- [POST /attachments](/docs/dev-docs/api/files/postattachment.md): Attaches a file to one or multiple objects, such as: customer, dispute, transaction, order, plan, product, invoice, or timeline comment. Attachments enable you to quickly find and use files related to
- [GET /attachments/{id}](/docs/dev-docs/api/files/getattachment.md): Retrieves an attachment with a specified ID.
- [DELETE /attachments/{id}](/docs/dev-docs/api/files/deleteattachment.md): Deletes an attachment with a specified ID.
- [GET /files](/docs/dev-docs/api/files/getfilecollection.md): Retrieves a list of files.
- [POST /files](/docs/dev-docs/api/files/postfile.md): Creates a file. Additionally, a file can be sent by: - Multipart/form-data POST request: In this request, the file is uploaded and all property names are the same as the JSON names. - File body reques
- [GET /files/{id}](/docs/dev-docs/api/files/getfile.md): Retrieves a file with a specified ID.
- [PUT /files/{id}](/docs/dev-docs/api/files/putfile.md): Updates a file with a specified ID. > **Note:** Files can only be uploaded by POST request. > For more information, see the Create a file operation.
- [DELETE /files/{id}](/docs/dev-docs/api/files/deletefile.md): Deletes a file with a specified ID.
- [GET /files/{id}/download](/docs/dev-docs/api/files/getfiledownload.md): Downloads a file with a specified ID.

# Allowlists

Use allowlists to exclude specific customer attribute data from risk score checks.

Allowlists are lists of data that are excluded from risk score checks. Allowlists prevent specific data from being added to a [blocklist record](https://www.rebilly.com/docs/automations/blocklists/) when a [risk score](https://www.rebilly.com/docs/automations/risk-scoring/) threshold reached.

- [GET /allowlists](/docs/dev-docs/api/allowlists/getallowlistcollection.md): Retrieves allowlist collection.
- [POST /allowlists](/docs/dev-docs/api/allowlists/postallowlist.md): Creates allowlist record.

# Retrieve allowlist collection

Retrieves allowlist collection.

Endpoint: GET /allowlists
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.

## Response 200 fields

- `id` (string)
  ID of the allowlist record.
  Example: rsal_01HXBY67D5CNWM2YK79PFZR4C2
- `type` (string, required)
  Type of data to exclude from risk score checks. Data types that are added to this field are excluded from risk score checks and are not added to blocklists.
  Enum: "address", "bank-account", "bin", "country", "customer-id", "email", "email-domain", "fingerprint", "ip-address", "payment-card"
- `value` (string, required)
  Value of the allowlist record.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create allowlist record

Creates allowlist record.

Endpoint: POST /allowlists
Version: latest
Security: PublishableApiKey

## Request fields

- `type` (string, required)
  Type of data to exclude from risk score checks. Data types that are added to this field are excluded from risk score checks and are not added to blocklists.
  Enum: "address", "bank-account", "bin", "country", "customer-id", "email", "email-domain", "fingerprint", "ip-address", "payment-card"
- `value` (string, required)
  Value of the allowlist record.

## Response 201 fields

- `id` (string)
  ID of the allowlist record.
  Example: rsal_01HXBY67D5CNWM2YK79PFZR4C2
- `type` (string, required)
  Type of data to exclude from risk score checks. Data types that are added to this field are excluded from risk score checks and are not added to blocklists.
  Enum: "address", "bank-account", "bin", "country", "customer-id", "email", "email-domain", "fingerprint", "ip-address", "payment-card"
- `value` (string, required)
  Value of the allowlist record.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 409 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 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.

# AML

Use Anti-Money Laundering (AML) operations to screen customers and help prevent your business from becoming directly or indirectly involved in criminal activity.

Use AML operations during customer creation, and some transaction processing,
to help determine if a potential customer (lead), or customer, has political or economic sanctions against them.

AML operations search the following for screening purposes:
Politically Exposed Persons (PEPs) lists, sanction lists,
and adverse media lists.

- [GET /aml-checks](/docs/dev-docs/api/aml/getamlcheckcollection.md): Retrieves a list of AML checks. These checks are records of customer data and potentially matching data in AML lists.
- [GET /aml-checks/{id}](/docs/dev-docs/api/aml/getamlcheck.md): Retrieves the results of a customer's AML check. Customer metadata and an array of matching AML hits is returned.
- [POST /aml-checks/{id}/start-review](/docs/dev-docs/api/aml/postamlcheckstartreview.md): Starts the manual review process for an AML check with a specified ID. This operation also sets the AML check `reviewStartTime` to the current date-time, and updates the review information.
- [POST /aml-checks/{id}/stop-review](/docs/dev-docs/api/aml/postamlcheckstopreview.md): Stops the manual review process for an AML check with a specified ID. This operation also sets the AML check `reviewStartTime` and the reviewer information to null. Use this operation when the reviewe
- [POST /aml-checks/{id}/review](/docs/dev-docs/api/aml/postamlcheckreview.md): Reviews an AML check. Records a decision on each listed hit, then applies `status` to every hit that has no decision yet. The status of the AML check is calculated from the hit decisions. If any hit h
- [GET /aml-settings](/docs/dev-docs/api/aml/getamlsettings.md): Retrieves AML settings.
- [PUT /aml-settings](/docs/dev-docs/api/aml/putamlsettings.md): Updates AML settings.
- [POST aml-list-possibly-matched](/docs/dev-docs/api/aml/aml-list-possibly-matched.md)

# AML list possibly matched

Endpoint: POST aml-list-possibly-matched
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "aml-list-possibly-matched", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-updated"
- `_embedded` (object)
  Embedded objects related to the customer event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer"

# Retrieve an AML check

Retrieves the results of a customer's AML check.
Customer metadata and an array of matching AML hits is returned.

Endpoint: GET /aml-checks/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  Unique resource ID.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `websiteId` (string)
  Website ID associated with the customer.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `reviewerId` (string | null)
  User ID of the person who reviewed the AML check.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerType` (string | null)
  Type of reviewer for the current review outcome.
  Enum: "human", "bot"
- `reviewerName` (string | null)
  First and last name of the person who reviewed the AML check. If the result is inherited, this field is set to "bot".
- `reviewStartTime` (string | null)
  Date and time when the AML check review is started.
- `reviewTime` (string | null)
  Date and time when the AML check review is completed.
- `priority` (string | null)
  Highest matched priority of all hits within an AML check.
- `source` (string)
  Source of the AML check.
  Enum: "sign-up", "recurring", "purchase"
- `status` (string)
  Status of the AML check.
  Enum: "pending-review", "in-review", "no-match", "confirmed-match", "false-positive"
- `customer` (object)
- `customer.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `customer.primaryAddress` (object)
  Customer's data at the time of the AML check.
- `customer.primaryAddress.firstName` (string)
  Customer's first name at the time of the AML check.
- `customer.primaryAddress.lastName` (string)
  Customer's last name at the time of the AML check.
- `customer.primaryAddress.dob` (string | null)
  Customer's date of birth.
  Example: 1971-02-14
- `customer.primaryAddress.address` (string | null)
  First line of the customer's street address at the time of the AML check.
  Example: 36 Craven St
- `customer.primaryAddress.address2` (string | null)
  Second line of the customer's street address at the time of the AML check.
- `customer.primaryAddress.city` (string | null)
  Customer's city of residence at the time of the AML check.
  Example: Austin
- `customer.primaryAddress.region` (string | null)
  Customer's region of residence at the time of the AML check.
  Example: Texas
- `customer.primaryAddress.country` (string | null)
  Customer's country of residence at the time of the AML check.
- `customer.primaryAddress.postalCode` (string | null)
  Customer's postal code at the time of the AML check.
  Example: WC2N 5NF
- `customer.organizationId` (string)
  ID of the customer's organization.
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `hits` (array)
  List of hits returned during the AML check.
- `hits.firstName` (string)
  First name of the individual, or name of entity.
  Example: Benjamin
- `hits.lastName` (string | null)
  Last name of the individual. This field returns a `null` value for single-named entities.
  Example: Franklin
- `hits.source` (string)
  Describes which list the result is from.
- `hits.sourceType` (array)
  Describes the categories of the individual or entity.
  Example: ["sanctions","enforcements"]
- `hits.gender` (string | null)
  If `type`=`individual`, this field describes the gender of the individual.
- `hits.title` (array | null)
  Individual's job title.
  Example: ["Postmaster General","Ambassador to France","Ambassador to Sweden","Supreme Executive Council of Commonwealth of Pennsylvania"]
- `hits.type` (string)
  Describes whether the source is an individual or an entity.
  Enum: "individual", "entity"
- `hits.legalBasis` (array)
  List of references to legal documents, if they exist.
- `hits.regime` (string | null)
  Describes the government, administration, or political entity.
  Example: United States Government
- `hits.confidence` (string)
  Degree of confidence in the source list information.
  Enum: "weak", "medium", "strong", "very-strong"
- `hits.nationality` (string)
  Nationality of the individual or entity.
- `hits.address` (array)
  Addresses associated with the individual or entity.
- `hits.address.address` (string | null)
  Street address line 1.
- `hits.address.address2` (string | null)
  Street address line 2.
- `hits.address.city` (string | null)
  City.
- `hits.address.region` (string | null)
  State, province, or region.
- `hits.address.country` (string | null)
  Country.
- `hits.address.birthplace` (boolean)
  Individual's place of birth.
- `hits.dob` (array)
  One or more possible dates of birth.
- `hits.aliases` (array)
  List of aliases, if any.
- `hits.aliases.firstName` (string)
  First name of alias.
- `hits.aliases.lastName` (string)
  Last name of alias.
- `hits.aliases.authenticity` (string)
  Degree of confidence in the alias.
  Enum: "strong", "weak", "unknown"
- `hits.passport` (array)
  Individual's passport information.
- `hits.passport.number` (string)
  Passport number.
- `hits.passport.registrationDate` (string)
  Passport registration date.
- `hits.comments` (string | null)
  Additional information. This content varies per list.
- `hits.metadata` (object | null)
  Additional metadata on AML sources, when available.
- `hits.metadata.lookupId` (string)
  Direct lookup identifier for the LexisNexis WorldCompliance Online Search Tool.
  Example: 1E66DAD6-A2E2-4DCB-BCAF-8CC92CD1DDEC
- `hits.matchDetails` (object | null)
  Details of the matching logic and confidence scoring.
- `hits.matchDetails.confidenceFactors` (array)
  List of factors that contributed to the confidence score calculation.
- `hits.matchDetails.matchCriteria` (array)
  List of specific criteria that matched against the watchlist.
- `hits.decision` (string | null)
  Reviewer decision for this hit. This value is `null` if the hit has not been decided yet.
  Enum: "confirmed-match", "false-positive", null
- `hits.decisionInherited` (boolean)
  Specifies if the decision is copied from an earlier AML check instead of recorded by a reviewer. The decision is copied from a matching hit on the previous AML check of the same customer or of a related customer, or from the `false-positive` status of an earlier AML check of the same customer or a related customer.
  Example: false
- `hits._links` (array)
  Related links.
- `hits._links.href` (string)
  Link URL.
- `hits._links.rel` (string)
  Type of link.
  Enum: "self"
- `tags` (array)
  List of AML check tags.
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `provenance` (object | null)
  Origin of the AML check result.
- `provenance.inherited` (boolean)
  Specifies if the result is inherited from a previous AML check.
  Example: true
- `provenance.inheritedFromAmlCheckId` (string)
  ID of the AML check from which the check inherits its result.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `provenance.scope` (array)
  Scope of what is inherited from the source AML check.
  Example: ["status-only"]
- `provenance.reasons` (array)
  Reasons that triggered the inheritance of the result.
  Example: ["customer_duplicated_by_person_exact_match"]
- `noMatchReason` (string | null)
  Reason for the no-match result.
  Enum: "no_hits_found", "mismatched_hits", "hits_are_below_relevance_score_threshold", "internal_system_error"
- `noMatchDetails` (array)
  List of codes that explain the no-match result.
  Example: ["top_hit_not_eligible_for_matching","search_shard_failures"]
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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 404 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.

# Retrieve AML checks

Retrieves a list of AML checks.
These checks are records of customer data and potentially matching data in AML lists.

Endpoint: GET /aml-checks
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  Unique resource ID.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `websiteId` (string)
  Website ID associated with the customer.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `reviewerId` (string | null)
  User ID of the person who reviewed the AML check.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerType` (string | null)
  Type of reviewer for the current review outcome.
  Enum: "human", "bot"
- `reviewerName` (string | null)
  First and last name of the person who reviewed the AML check. If the result is inherited, this field is set to "bot".
- `reviewStartTime` (string | null)
  Date and time when the AML check review is started.
- `reviewTime` (string | null)
  Date and time when the AML check review is completed.
- `priority` (string | null)
  Highest matched priority of all hits within an AML check.
- `source` (string)
  Source of the AML check.
  Enum: "sign-up", "recurring", "purchase"
- `status` (string)
  Status of the AML check.
  Enum: "pending-review", "in-review", "no-match", "confirmed-match", "false-positive"
- `customer` (object)
- `customer.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `customer.primaryAddress` (object)
  Customer's data at the time of the AML check.
- `customer.primaryAddress.firstName` (string)
  Customer's first name at the time of the AML check.
- `customer.primaryAddress.lastName` (string)
  Customer's last name at the time of the AML check.
- `customer.primaryAddress.dob` (string | null)
  Customer's date of birth.
  Example: 1971-02-14
- `customer.primaryAddress.address` (string | null)
  First line of the customer's street address at the time of the AML check.
  Example: 36 Craven St
- `customer.primaryAddress.address2` (string | null)
  Second line of the customer's street address at the time of the AML check.
- `customer.primaryAddress.city` (string | null)
  Customer's city of residence at the time of the AML check.
  Example: Austin
- `customer.primaryAddress.region` (string | null)
  Customer's region of residence at the time of the AML check.
  Example: Texas
- `customer.primaryAddress.country` (string | null)
  Customer's country of residence at the time of the AML check.
- `customer.primaryAddress.postalCode` (string | null)
  Customer's postal code at the time of the AML check.
  Example: WC2N 5NF
- `customer.organizationId` (string)
  ID of the customer's organization.
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `hits` (array)
  List of hits returned during the AML check.
- `hits.firstName` (string)
  First name of the individual, or name of entity.
  Example: Benjamin
- `hits.lastName` (string | null)
  Last name of the individual. This field returns a `null` value for single-named entities.
  Example: Franklin
- `hits.source` (string)
  Describes which list the result is from.
- `hits.sourceType` (array)
  Describes the categories of the individual or entity.
  Example: ["sanctions","enforcements"]
- `hits.gender` (string | null)
  If `type`=`individual`, this field describes the gender of the individual.
- `hits.title` (array | null)
  Individual's job title.
  Example: ["Postmaster General","Ambassador to France","Ambassador to Sweden","Supreme Executive Council of Commonwealth of Pennsylvania"]
- `hits.type` (string)
  Describes whether the source is an individual or an entity.
  Enum: "individual", "entity"
- `hits.legalBasis` (array)
  List of references to legal documents, if they exist.
- `hits.regime` (string | null)
  Describes the government, administration, or political entity.
  Example: United States Government
- `hits.confidence` (string)
  Degree of confidence in the source list information.
  Enum: "weak", "medium", "strong", "very-strong"
- `hits.nationality` (string)
  Nationality of the individual or entity.
- `hits.address` (array)
  Addresses associated with the individual or entity.
- `hits.address.address` (string | null)
  Street address line 1.
- `hits.address.address2` (string | null)
  Street address line 2.
- `hits.address.city` (string | null)
  City.
- `hits.address.region` (string | null)
  State, province, or region.
- `hits.address.country` (string | null)
  Country.
- `hits.address.birthplace` (boolean)
  Individual's place of birth.
- `hits.dob` (array)
  One or more possible dates of birth.
- `hits.aliases` (array)
  List of aliases, if any.
- `hits.aliases.firstName` (string)
  First name of alias.
- `hits.aliases.lastName` (string)
  Last name of alias.
- `hits.aliases.authenticity` (string)
  Degree of confidence in the alias.
  Enum: "strong", "weak", "unknown"
- `hits.passport` (array)
  Individual's passport information.
- `hits.passport.number` (string)
  Passport number.
- `hits.passport.registrationDate` (string)
  Passport registration date.
- `hits.comments` (string | null)
  Additional information. This content varies per list.
- `hits.metadata` (object | null)
  Additional metadata on AML sources, when available.
- `hits.metadata.lookupId` (string)
  Direct lookup identifier for the LexisNexis WorldCompliance Online Search Tool.
  Example: 1E66DAD6-A2E2-4DCB-BCAF-8CC92CD1DDEC
- `hits.matchDetails` (object | null)
  Details of the matching logic and confidence scoring.
- `hits.matchDetails.confidenceFactors` (array)
  List of factors that contributed to the confidence score calculation.
- `hits.matchDetails.matchCriteria` (array)
  List of specific criteria that matched against the watchlist.
- `hits.decision` (string | null)
  Reviewer decision for this hit. This value is `null` if the hit has not been decided yet.
  Enum: "confirmed-match", "false-positive", null
- `hits.decisionInherited` (boolean)
  Specifies if the decision is copied from an earlier AML check instead of recorded by a reviewer. The decision is copied from a matching hit on the previous AML check of the same customer or of a related customer, or from the `false-positive` status of an earlier AML check of the same customer or a related customer.
  Example: false
- `hits._links` (array)
  Related links.
- `hits._links.href` (string)
  Link URL.
- `hits._links.rel` (string)
  Type of link.
  Enum: "self"
- `tags` (array)
  List of AML check tags.
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `provenance` (object | null)
  Origin of the AML check result.
- `provenance.inherited` (boolean)
  Specifies if the result is inherited from a previous AML check.
  Example: true
- `provenance.inheritedFromAmlCheckId` (string)
  ID of the AML check from which the check inherits its result.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `provenance.scope` (array)
  Scope of what is inherited from the source AML check.
  Example: ["status-only"]
- `provenance.reasons` (array)
  Reasons that triggered the inheritance of the result.
  Example: ["customer_duplicated_by_person_exact_match"]
- `noMatchReason` (string | null)
  Reason for the no-match result.
  Enum: "no_hits_found", "mismatched_hits", "hits_are_below_relevance_score_threshold", "internal_system_error"
- `noMatchDetails` (array)
  List of codes that explain the no-match result.
  Example: ["top_hit_not_eligible_for_matching","search_shard_failures"]
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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.

# Retrieve AML settings

Retrieves AML settings.

Endpoint: GET /aml-settings
Version: latest
Security: SecretApiKey, JWT

## Response 200 fields

- `confidence` (object)
  Confidence level settings for AML matches.
- `confidence.dob` (object)
  Confidence level settings for AML matches based on date of birth.
- `confidence.dob.exactMatch` (object)
- `confidence.dob.exactMatch.addressMatch` (object)
  Match for the customer's city or region, or both, is found.
- `confidence.dob.exactMatch.addressMatch.matchingCountry` (string | null)
  Degree of confidence to assign.
  Enum: "weak", "medium", "strong", "very-strong"
- `confidence.dob.exactMatch.addressMismatch` (object)
  Match for the customer's city or region, or both, is not found.
- `confidence.dob.exactMatch.noAddress` (object)
  No city and no region is available to match against.
- `confidence.noDob` (object)
  Confidence level settings for AML matches based on a missing date of birth.
- `confidence.yob` (object)
  Confidence level settings for AML matches based on year of birth.
- `confidence.inexactYob` (object)
  Confidence level settings for AML matches based on a near match of year of birth.
- `priority` (object)
  Priority level settings for AML source matches. `p0` is critical priority level, and `p3` is low priority level.
- `priority.pep` (object)
  Priorities for the `pep` source type.
- `priority.pep.veryStrong` (string | null)
  Priority level of matched AML customer information.
  Enum: "p0", "p1", "p2", "p3"
- `priority.enforcements` (object)
  Priorities for the `enforcement` source type.
- `priority.stateOwnedEnterprise` (object)
  Priorities for the `state-owned-enterprise` source type.
- `priority.sanctions` (object)
  Priorities for the `sanctions` source type.
- `priority.adverseMedia` (object)
  Priorities for the `adverse-media` source type.

## 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 404 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.

# Review an AML check

Reviews an AML check.
Records a decision on each listed hit, then applies `status` to every hit that has no decision yet.
The status of the AML check is calculated from the hit decisions.
If any hit has no decision, the AML check remains in review.
If any hit is a confirmed match, the AML check is a confirmed match.
If every hit is a false positive, the AML check is a false positive.

Endpoint: POST /aml-checks/{id}/review
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  Unique resource ID.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `websiteId` (string)
  Website ID associated with the customer.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `reviewerId` (string | null)
  User ID of the person who reviewed the AML check.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerType` (string | null)
  Type of reviewer for the current review outcome.
  Enum: "human", "bot"
- `reviewerName` (string | null)
  First and last name of the person who reviewed the AML check. If the result is inherited, this field is set to "bot".
- `reviewStartTime` (string | null)
  Date and time when the AML check review is started.
- `reviewTime` (string | null)
  Date and time when the AML check review is completed.
- `priority` (string | null)
  Highest matched priority of all hits within an AML check.
- `source` (string)
  Source of the AML check.
  Enum: "sign-up", "recurring", "purchase"
- `status` (string)
  Status of the AML check.
  Enum: "pending-review", "in-review", "no-match", "confirmed-match", "false-positive"
- `customer` (object)
- `customer.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `customer.primaryAddress` (object)
  Customer's data at the time of the AML check.
- `customer.primaryAddress.firstName` (string)
  Customer's first name at the time of the AML check.
- `customer.primaryAddress.lastName` (string)
  Customer's last name at the time of the AML check.
- `customer.primaryAddress.dob` (string | null)
  Customer's date of birth.
  Example: 1971-02-14
- `customer.primaryAddress.address` (string | null)
  First line of the customer's street address at the time of the AML check.
  Example: 36 Craven St
- `customer.primaryAddress.address2` (string | null)
  Second line of the customer's street address at the time of the AML check.
- `customer.primaryAddress.city` (string | null)
  Customer's city of residence at the time of the AML check.
  Example: Austin
- `customer.primaryAddress.region` (string | null)
  Customer's region of residence at the time of the AML check.
  Example: Texas
- `customer.primaryAddress.country` (string | null)
  Customer's country of residence at the time of the AML check.
- `customer.primaryAddress.postalCode` (string | null)
  Customer's postal code at the time of the AML check.
  Example: WC2N 5NF
- `customer.organizationId` (string)
  ID of the customer's organization.
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `hits` (array)
  List of hits returned during the AML check.
- `hits.firstName` (string)
  First name of the individual, or name of entity.
  Example: Benjamin
- `hits.lastName` (string | null)
  Last name of the individual. This field returns a `null` value for single-named entities.
  Example: Franklin
- `hits.source` (string)
  Describes which list the result is from.
- `hits.sourceType` (array)
  Describes the categories of the individual or entity.
  Example: ["sanctions","enforcements"]
- `hits.gender` (string | null)
  If `type`=`individual`, this field describes the gender of the individual.
- `hits.title` (array | null)
  Individual's job title.
  Example: ["Postmaster General","Ambassador to France","Ambassador to Sweden","Supreme Executive Council of Commonwealth of Pennsylvania"]
- `hits.type` (string)
  Describes whether the source is an individual or an entity.
  Enum: "individual", "entity"
- `hits.legalBasis` (array)
  List of references to legal documents, if they exist.
- `hits.regime` (string | null)
  Describes the government, administration, or political entity.
  Example: United States Government
- `hits.confidence` (string)
  Degree of confidence in the source list information.
  Enum: "weak", "medium", "strong", "very-strong"
- `hits.nationality` (string)
  Nationality of the individual or entity.
- `hits.address` (array)
  Addresses associated with the individual or entity.
- `hits.address.address` (string | null)
  Street address line 1.
- `hits.address.address2` (string | null)
  Street address line 2.
- `hits.address.city` (string | null)
  City.
- `hits.address.region` (string | null)
  State, province, or region.
- `hits.address.country` (string | null)
  Country.
- `hits.address.birthplace` (boolean)
  Individual's place of birth.
- `hits.dob` (array)
  One or more possible dates of birth.
- `hits.aliases` (array)
  List of aliases, if any.
- `hits.aliases.firstName` (string)
  First name of alias.
- `hits.aliases.lastName` (string)
  Last name of alias.
- `hits.aliases.authenticity` (string)
  Degree of confidence in the alias.
  Enum: "strong", "weak", "unknown"
- `hits.passport` (array)
  Individual's passport information.
- `hits.passport.number` (string)
  Passport number.
- `hits.passport.registrationDate` (string)
  Passport registration date.
- `hits.comments` (string | null)
  Additional information. This content varies per list.
- `hits.metadata` (object | null)
  Additional metadata on AML sources, when available.
- `hits.metadata.lookupId` (string)
  Direct lookup identifier for the LexisNexis WorldCompliance Online Search Tool.
  Example: 1E66DAD6-A2E2-4DCB-BCAF-8CC92CD1DDEC
- `hits.matchDetails` (object | null)
  Details of the matching logic and confidence scoring.
- `hits.matchDetails.confidenceFactors` (array)
  List of factors that contributed to the confidence score calculation.
- `hits.matchDetails.matchCriteria` (array)
  List of specific criteria that matched against the watchlist.
- `hits.decision` (string | null)
  Reviewer decision for this hit. This value is `null` if the hit has not been decided yet.
  Enum: "confirmed-match", "false-positive", null
- `hits.decisionInherited` (boolean)
  Specifies if the decision is copied from an earlier AML check instead of recorded by a reviewer. The decision is copied from a matching hit on the previous AML check of the same customer or of a related customer, or from the `false-positive` status of an earlier AML check of the same customer or a related customer.
  Example: false
- `hits._links` (array)
  Related links.
- `hits._links.href` (string)
  Link URL.
- `hits._links.rel` (string)
  Type of link.
  Enum: "self"
- `tags` (array)
  List of AML check tags.
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `provenance` (object | null)
  Origin of the AML check result.
- `provenance.inherited` (boolean)
  Specifies if the result is inherited from a previous AML check.
  Example: true
- `provenance.inheritedFromAmlCheckId` (string)
  ID of the AML check from which the check inherits its result.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `provenance.scope` (array)
  Scope of what is inherited from the source AML check.
  Example: ["status-only"]
- `provenance.reasons` (array)
  Reasons that triggered the inheritance of the result.
  Example: ["customer_duplicated_by_person_exact_match"]
- `noMatchReason` (string | null)
  Reason for the no-match result.
  Enum: "no_hits_found", "mismatched_hits", "hits_are_below_relevance_score_threshold", "internal_system_error"
- `noMatchDetails` (array)
  List of codes that explain the no-match result.
  Example: ["top_hit_not_eligible_for_matching","search_shard_failures"]
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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 404 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 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.

# Start review of an AML check

Starts the manual review process for an AML check with a specified ID.

This operation also sets the AML check `reviewStartTime` to the current date-time,
and updates the review information.

Endpoint: POST /aml-checks/{id}/start-review
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  Unique resource ID.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `websiteId` (string)
  Website ID associated with the customer.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `reviewerId` (string | null)
  User ID of the person who reviewed the AML check.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerType` (string | null)
  Type of reviewer for the current review outcome.
  Enum: "human", "bot"
- `reviewerName` (string | null)
  First and last name of the person who reviewed the AML check. If the result is inherited, this field is set to "bot".
- `reviewStartTime` (string | null)
  Date and time when the AML check review is started.
- `reviewTime` (string | null)
  Date and time when the AML check review is completed.
- `priority` (string | null)
  Highest matched priority of all hits within an AML check.
- `source` (string)
  Source of the AML check.
  Enum: "sign-up", "recurring", "purchase"
- `status` (string)
  Status of the AML check.
  Enum: "pending-review", "in-review", "no-match", "confirmed-match", "false-positive"
- `customer` (object)
- `customer.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `customer.primaryAddress` (object)
  Customer's data at the time of the AML check.
- `customer.primaryAddress.firstName` (string)
  Customer's first name at the time of the AML check.
- `customer.primaryAddress.lastName` (string)
  Customer's last name at the time of the AML check.
- `customer.primaryAddress.dob` (string | null)
  Customer's date of birth.
  Example: 1971-02-14
- `customer.primaryAddress.address` (string | null)
  First line of the customer's street address at the time of the AML check.
  Example: 36 Craven St
- `customer.primaryAddress.address2` (string | null)
  Second line of the customer's street address at the time of the AML check.
- `customer.primaryAddress.city` (string | null)
  Customer's city of residence at the time of the AML check.
  Example: Austin
- `customer.primaryAddress.region` (string | null)
  Customer's region of residence at the time of the AML check.
  Example: Texas
- `customer.primaryAddress.country` (string | null)
  Customer's country of residence at the time of the AML check.
- `customer.primaryAddress.postalCode` (string | null)
  Customer's postal code at the time of the AML check.
  Example: WC2N 5NF
- `customer.organizationId` (string)
  ID of the customer's organization.
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `hits` (array)
  List of hits returned during the AML check.
- `hits.firstName` (string)
  First name of the individual, or name of entity.
  Example: Benjamin
- `hits.lastName` (string | null)
  Last name of the individual. This field returns a `null` value for single-named entities.
  Example: Franklin
- `hits.source` (string)
  Describes which list the result is from.
- `hits.sourceType` (array)
  Describes the categories of the individual or entity.
  Example: ["sanctions","enforcements"]
- `hits.gender` (string | null)
  If `type`=`individual`, this field describes the gender of the individual.
- `hits.title` (array | null)
  Individual's job title.
  Example: ["Postmaster General","Ambassador to France","Ambassador to Sweden","Supreme Executive Council of Commonwealth of Pennsylvania"]
- `hits.type` (string)
  Describes whether the source is an individual or an entity.
  Enum: "individual", "entity"
- `hits.legalBasis` (array)
  List of references to legal documents, if they exist.
- `hits.regime` (string | null)
  Describes the government, administration, or political entity.
  Example: United States Government
- `hits.confidence` (string)
  Degree of confidence in the source list information.
  Enum: "weak", "medium", "strong", "very-strong"
- `hits.nationality` (string)
  Nationality of the individual or entity.
- `hits.address` (array)
  Addresses associated with the individual or entity.
- `hits.address.address` (string | null)
  Street address line 1.
- `hits.address.address2` (string | null)
  Street address line 2.
- `hits.address.city` (string | null)
  City.
- `hits.address.region` (string | null)
  State, province, or region.
- `hits.address.country` (string | null)
  Country.
- `hits.address.birthplace` (boolean)
  Individual's place of birth.
- `hits.dob` (array)
  One or more possible dates of birth.
- `hits.aliases` (array)
  List of aliases, if any.
- `hits.aliases.firstName` (string)
  First name of alias.
- `hits.aliases.lastName` (string)
  Last name of alias.
- `hits.aliases.authenticity` (string)
  Degree of confidence in the alias.
  Enum: "strong", "weak", "unknown"
- `hits.passport` (array)
  Individual's passport information.
- `hits.passport.number` (string)
  Passport number.
- `hits.passport.registrationDate` (string)
  Passport registration date.
- `hits.comments` (string | null)
  Additional information. This content varies per list.
- `hits.metadata` (object | null)
  Additional metadata on AML sources, when available.
- `hits.metadata.lookupId` (string)
  Direct lookup identifier for the LexisNexis WorldCompliance Online Search Tool.
  Example: 1E66DAD6-A2E2-4DCB-BCAF-8CC92CD1DDEC
- `hits.matchDetails` (object | null)
  Details of the matching logic and confidence scoring.
- `hits.matchDetails.confidenceFactors` (array)
  List of factors that contributed to the confidence score calculation.
- `hits.matchDetails.matchCriteria` (array)
  List of specific criteria that matched against the watchlist.
- `hits.decision` (string | null)
  Reviewer decision for this hit. This value is `null` if the hit has not been decided yet.
  Enum: "confirmed-match", "false-positive", null
- `hits.decisionInherited` (boolean)
  Specifies if the decision is copied from an earlier AML check instead of recorded by a reviewer. The decision is copied from a matching hit on the previous AML check of the same customer or of a related customer, or from the `false-positive` status of an earlier AML check of the same customer or a related customer.
  Example: false
- `hits._links` (array)
  Related links.
- `hits._links.href` (string)
  Link URL.
- `hits._links.rel` (string)
  Type of link.
  Enum: "self"
- `tags` (array)
  List of AML check tags.
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `provenance` (object | null)
  Origin of the AML check result.
- `provenance.inherited` (boolean)
  Specifies if the result is inherited from a previous AML check.
  Example: true
- `provenance.inheritedFromAmlCheckId` (string)
  ID of the AML check from which the check inherits its result.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `provenance.scope` (array)
  Scope of what is inherited from the source AML check.
  Example: ["status-only"]
- `provenance.reasons` (array)
  Reasons that triggered the inheritance of the result.
  Example: ["customer_duplicated_by_person_exact_match"]
- `noMatchReason` (string | null)
  Reason for the no-match result.
  Enum: "no_hits_found", "mismatched_hits", "hits_are_below_relevance_score_threshold", "internal_system_error"
- `noMatchDetails` (array)
  List of codes that explain the no-match result.
  Example: ["top_hit_not_eligible_for_matching","search_shard_failures"]
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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 404 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 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.

# Stop review of an AML check

Stops the manual review process for an AML check with a specified ID.

This operation also sets the AML check `reviewStartTime` and the reviewer information to null.
Use this operation when the reviewer must stop the review.
For example, if the reviewer must take a break, or ends a shift.

Endpoint: POST /aml-checks/{id}/stop-review
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  Unique resource ID.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `websiteId` (string)
  Website ID associated with the customer.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `reviewerId` (string | null)
  User ID of the person who reviewed the AML check.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerType` (string | null)
  Type of reviewer for the current review outcome.
  Enum: "human", "bot"
- `reviewerName` (string | null)
  First and last name of the person who reviewed the AML check. If the result is inherited, this field is set to "bot".
- `reviewStartTime` (string | null)
  Date and time when the AML check review is started.
- `reviewTime` (string | null)
  Date and time when the AML check review is completed.
- `priority` (string | null)
  Highest matched priority of all hits within an AML check.
- `source` (string)
  Source of the AML check.
  Enum: "sign-up", "recurring", "purchase"
- `status` (string)
  Status of the AML check.
  Enum: "pending-review", "in-review", "no-match", "confirmed-match", "false-positive"
- `customer` (object)
- `customer.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `customer.primaryAddress` (object)
  Customer's data at the time of the AML check.
- `customer.primaryAddress.firstName` (string)
  Customer's first name at the time of the AML check.
- `customer.primaryAddress.lastName` (string)
  Customer's last name at the time of the AML check.
- `customer.primaryAddress.dob` (string | null)
  Customer's date of birth.
  Example: 1971-02-14
- `customer.primaryAddress.address` (string | null)
  First line of the customer's street address at the time of the AML check.
  Example: 36 Craven St
- `customer.primaryAddress.address2` (string | null)
  Second line of the customer's street address at the time of the AML check.
- `customer.primaryAddress.city` (string | null)
  Customer's city of residence at the time of the AML check.
  Example: Austin
- `customer.primaryAddress.region` (string | null)
  Customer's region of residence at the time of the AML check.
  Example: Texas
- `customer.primaryAddress.country` (string | null)
  Customer's country of residence at the time of the AML check.
- `customer.primaryAddress.postalCode` (string | null)
  Customer's postal code at the time of the AML check.
  Example: WC2N 5NF
- `customer.organizationId` (string)
  ID of the customer's organization.
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `hits` (array)
  List of hits returned during the AML check.
- `hits.firstName` (string)
  First name of the individual, or name of entity.
  Example: Benjamin
- `hits.lastName` (string | null)
  Last name of the individual. This field returns a `null` value for single-named entities.
  Example: Franklin
- `hits.source` (string)
  Describes which list the result is from.
- `hits.sourceType` (array)
  Describes the categories of the individual or entity.
  Example: ["sanctions","enforcements"]
- `hits.gender` (string | null)
  If `type`=`individual`, this field describes the gender of the individual.
- `hits.title` (array | null)
  Individual's job title.
  Example: ["Postmaster General","Ambassador to France","Ambassador to Sweden","Supreme Executive Council of Commonwealth of Pennsylvania"]
- `hits.type` (string)
  Describes whether the source is an individual or an entity.
  Enum: "individual", "entity"
- `hits.legalBasis` (array)
  List of references to legal documents, if they exist.
- `hits.regime` (string | null)
  Describes the government, administration, or political entity.
  Example: United States Government
- `hits.confidence` (string)
  Degree of confidence in the source list information.
  Enum: "weak", "medium", "strong", "very-strong"
- `hits.nationality` (string)
  Nationality of the individual or entity.
- `hits.address` (array)
  Addresses associated with the individual or entity.
- `hits.address.address` (string | null)
  Street address line 1.
- `hits.address.address2` (string | null)
  Street address line 2.
- `hits.address.city` (string | null)
  City.
- `hits.address.region` (string | null)
  State, province, or region.
- `hits.address.country` (string | null)
  Country.
- `hits.address.birthplace` (boolean)
  Individual's place of birth.
- `hits.dob` (array)
  One or more possible dates of birth.
- `hits.aliases` (array)
  List of aliases, if any.
- `hits.aliases.firstName` (string)
  First name of alias.
- `hits.aliases.lastName` (string)
  Last name of alias.
- `hits.aliases.authenticity` (string)
  Degree of confidence in the alias.
  Enum: "strong", "weak", "unknown"
- `hits.passport` (array)
  Individual's passport information.
- `hits.passport.number` (string)
  Passport number.
- `hits.passport.registrationDate` (string)
  Passport registration date.
- `hits.comments` (string | null)
  Additional information. This content varies per list.
- `hits.metadata` (object | null)
  Additional metadata on AML sources, when available.
- `hits.metadata.lookupId` (string)
  Direct lookup identifier for the LexisNexis WorldCompliance Online Search Tool.
  Example: 1E66DAD6-A2E2-4DCB-BCAF-8CC92CD1DDEC
- `hits.matchDetails` (object | null)
  Details of the matching logic and confidence scoring.
- `hits.matchDetails.confidenceFactors` (array)
  List of factors that contributed to the confidence score calculation.
- `hits.matchDetails.matchCriteria` (array)
  List of specific criteria that matched against the watchlist.
- `hits.decision` (string | null)
  Reviewer decision for this hit. This value is `null` if the hit has not been decided yet.
  Enum: "confirmed-match", "false-positive", null
- `hits.decisionInherited` (boolean)
  Specifies if the decision is copied from an earlier AML check instead of recorded by a reviewer. The decision is copied from a matching hit on the previous AML check of the same customer or of a related customer, or from the `false-positive` status of an earlier AML check of the same customer or a related customer.
  Example: false
- `hits._links` (array)
  Related links.
- `hits._links.href` (string)
  Link URL.
- `hits._links.rel` (string)
  Type of link.
  Enum: "self"
- `tags` (array)
  List of AML check tags.
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `provenance` (object | null)
  Origin of the AML check result.
- `provenance.inherited` (boolean)
  Specifies if the result is inherited from a previous AML check.
  Example: true
- `provenance.inheritedFromAmlCheckId` (string)
  ID of the AML check from which the check inherits its result.
  Example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM
- `provenance.scope` (array)
  Scope of what is inherited from the source AML check.
  Example: ["status-only"]
- `provenance.reasons` (array)
  Reasons that triggered the inheritance of the result.
  Example: ["customer_duplicated_by_person_exact_match"]
- `noMatchReason` (string | null)
  Reason for the no-match result.
  Enum: "no_hits_found", "mismatched_hits", "hits_are_below_relevance_score_threshold", "internal_system_error"
- `noMatchDetails` (array)
  List of codes that explain the no-match result.
  Example: ["top_hit_not_eligible_for_matching","search_shard_failures"]
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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 404 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 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.

# Update AML settings

Updates AML settings.

Endpoint: PUT /aml-settings
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `confidence` (object)
  Confidence level settings for AML matches.
- `confidence.dob` (object)
  Confidence level settings for AML matches based on date of birth.
- `confidence.dob.exactMatch` (object)
- `confidence.dob.exactMatch.addressMatch` (object)
  Match for the customer's city or region, or both, is found.
- `confidence.dob.exactMatch.addressMatch.matchingCountry` (string | null)
  Degree of confidence to assign.
  Enum: "weak", "medium", "strong", "very-strong"
- `confidence.dob.exactMatch.addressMismatch` (object)
  Match for the customer's city or region, or both, is not found.
- `confidence.dob.exactMatch.noAddress` (object)
  No city and no region is available to match against.
- `confidence.noDob` (object)
  Confidence level settings for AML matches based on a missing date of birth.
- `confidence.yob` (object)
  Confidence level settings for AML matches based on year of birth.
- `confidence.inexactYob` (object)
  Confidence level settings for AML matches based on a near match of year of birth.
- `priority` (object)
  Priority level settings for AML source matches. `p0` is critical priority level, and `p3` is low priority level.
- `priority.pep` (object)
  Priorities for the `pep` source type.
- `priority.pep.veryStrong` (string | null)
  Priority level of matched AML customer information.
  Enum: "p0", "p1", "p2", "p3"
- `priority.enforcements` (object)
  Priorities for the `enforcement` source type.
- `priority.stateOwnedEnterprise` (object)
  Priorities for the `state-owned-enterprise` source type.
- `priority.sanctions` (object)
  Priorities for the `sanctions` source type.
- `priority.adverseMedia` (object)
  Priorities for the `adverse-media` source type.

## Response 200 fields

- `confidence` (object)
  Confidence level settings for AML matches.
- `confidence.dob` (object)
  Confidence level settings for AML matches based on date of birth.
- `confidence.dob.exactMatch` (object)
- `confidence.dob.exactMatch.addressMatch` (object)
  Match for the customer's city or region, or both, is found.
- `confidence.dob.exactMatch.addressMatch.matchingCountry` (string | null)
  Degree of confidence to assign.
  Enum: "weak", "medium", "strong", "very-strong"
- `confidence.dob.exactMatch.addressMismatch` (object)
  Match for the customer's city or region, or both, is not found.
- `confidence.dob.exactMatch.noAddress` (object)
  No city and no region is available to match against.
- `confidence.noDob` (object)
  Confidence level settings for AML matches based on a missing date of birth.
- `confidence.yob` (object)
  Confidence level settings for AML matches based on year of birth.
- `confidence.inexactYob` (object)
  Confidence level settings for AML matches based on a near match of year of birth.
- `priority` (object)
  Priority level settings for AML source matches. `p0` is critical priority level, and `p3` is low priority level.
- `priority.pep` (object)
  Priorities for the `pep` source type.
- `priority.pep.veryStrong` (string | null)
  Priority level of matched AML customer information.
  Enum: "p0", "p1", "p2", "p3"
- `priority.enforcements` (object)
  Priorities for the `enforcement` source type.
- `priority.stateOwnedEnterprise` (object)
  Priorities for the `state-owned-enterprise` source type.
- `priority.sanctions` (object)
  Priorities for the `sanctions` source type.
- `priority.adverseMedia` (object)
  Priorities for the `adverse-media` source type.

## Response 201 fields

- `confidence` (object)
  Confidence level settings for AML matches.
- `confidence.dob` (object)
  Confidence level settings for AML matches based on date of birth.
- `confidence.dob.exactMatch` (object)
- `confidence.dob.exactMatch.addressMatch` (object)
  Match for the customer's city or region, or both, is found.
- `confidence.dob.exactMatch.addressMatch.matchingCountry` (string | null)
  Degree of confidence to assign.
  Enum: "weak", "medium", "strong", "very-strong"
- `confidence.dob.exactMatch.addressMismatch` (object)
  Match for the customer's city or region, or both, is not found.
- `confidence.dob.exactMatch.noAddress` (object)
  No city and no region is available to match against.
- `confidence.noDob` (object)
  Confidence level settings for AML matches based on a missing date of birth.
- `confidence.yob` (object)
  Confidence level settings for AML matches based on year of birth.
- `confidence.inexactYob` (object)
  Confidence level settings for AML matches based on a near match of year of birth.
- `priority` (object)
  Priority level settings for AML source matches. `p0` is critical priority level, and `p3` is low priority level.
- `priority.pep` (object)
  Priorities for the `pep` source type.
- `priority.pep.veryStrong` (string | null)
  Priority level of matched AML customer information.
  Enum: "p0", "p1", "p2", "p3"
- `priority.enforcements` (object)
  Priorities for the `enforcement` source type.
- `priority.stateOwnedEnterprise` (object)
  Priorities for the `state-owned-enterprise` source type.
- `priority.sanctions` (object)
  Priorities for the `sanctions` source type.
- `priority.adverseMedia` (object)
  Priorities for the `adverse-media` source type.

## 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 404 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 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.

# Blocklists

Use blocklists to prevent fraud and criminal activity.

Blocklists are lists of customer attribute values that are blocked from buying from you.
For example, if a customer attempts to make a purchase from you with a credit card that is in a blocklist, the transaction is blocked and is not processed.

Before a new transaction is processed in Rebilly, blocklists are examined to check for attributes related to the entity.
If a match is detected, the operation is aborted.
A blocklist that expires after a period of time is called a greylist.

- [GET /blocklists](/docs/dev-docs/api/blocklists/getblocklistcollection.md): Retrieves a list of all blocklists.
- [POST /blocklists](/docs/dev-docs/api/blocklists/postblocklist.md): Creates a blocklist.
- [GET /blocklists/{id}](/docs/dev-docs/api/blocklists/getblocklist.md): Retrieves a blocklist with a specified ID.
- [DELETE /blocklists/{id}](/docs/dev-docs/api/blocklists/deleteblocklist.md): Deletes a blocklist with a specified ID.

# Delete a blocklist

Deletes a blocklist with a specified ID.

Endpoint: DELETE /blocklists/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 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.

# Retrieve a blocklist

Retrieves a blocklist with a specified ID.

Endpoint: GET /blocklists/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the blocklist.
  Example: blkl_0YV8XTSH9MD578386XQDWSEBNF
- `type` (string, required)
  Type of blocklist.
  Enum: "payment-card", "bank-account", "customer-id", "email", "email-domain", "ip-address", "country", "fingerprint", "bin", "address"
- `value` (string, required)
  Value of the blocklist.
- `expirationTime` (string | null)
  Date and time when the blocklist expires.
- `source` (string | null)
  Source that triggered the creation of the blocklist.
  Enum: "automated-blocklists", "manual-blocklists", "risk-score-rules"
- `entityId` (string | null)
  ID of the user, transaction or dispute that triggered the creation of the blocklist.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve blocklists

Retrieves a list of all blocklists.

Endpoint: GET /blocklists
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the blocklist.
  Example: blkl_0YV8XTSH9MD578386XQDWSEBNF
- `type` (string, required)
  Type of blocklist.
  Enum: "payment-card", "bank-account", "customer-id", "email", "email-domain", "ip-address", "country", "fingerprint", "bin", "address"
- `value` (string, required)
  Value of the blocklist.
- `expirationTime` (string | null)
  Date and time when the blocklist expires.
- `source` (string | null)
  Source that triggered the creation of the blocklist.
  Enum: "automated-blocklists", "manual-blocklists", "risk-score-rules"
- `entityId` (string | null)
  ID of the user, transaction or dispute that triggered the creation of the blocklist.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a blocklist

Creates a blocklist.

Endpoint: POST /blocklists
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `type` (string, required)
  Type of blocklist.
  Enum: "payment-card", "bank-account", "customer-id", "email", "email-domain", "ip-address", "country", "fingerprint", "bin", "address"
- `value` (string, required)
  Value of the blocklist.
- `expirationTime` (string | null)
  Date and time when the blocklist expires.

## Response 201 fields

- `id` (string)
  ID of the blocklist.
  Example: blkl_0YV8XTSH9MD578386XQDWSEBNF
- `type` (string, required)
  Type of blocklist.
  Enum: "payment-card", "bank-account", "customer-id", "email", "email-domain", "ip-address", "country", "fingerprint", "bin", "address"
- `value` (string, required)
  Value of the blocklist.
- `expirationTime` (string | null)
  Date and time when the blocklist expires.
- `source` (string | null)
  Source that triggered the creation of the blocklist.
  Enum: "automated-blocklists", "manual-blocklists", "risk-score-rules"
- `entityId` (string | null)
  ID of the user, transaction or dispute that triggered the creation of the blocklist.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 409 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 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.

# Coupons

Use coupons to reward customers, generate sales, or to test new pricing strategies.
Coupons enable you to apply different types of discounts to invoices, subscriptions, and pricing plans.

Redeemed coupons are attached to a customer's account.
Depending on the coupon restrictions, the redeemed coupons are then applied from the customer's account to subsequent invoices or subscriptions.
Redeemed coupons can only be applied to invoices of the same currency.

Once a coupon is redeemed it cannot be modified.
You may deactivate a coupon or create a new coupon, but you cannot reuse the same coupon code.
If you have a use case where you must reuse the same code, [contact Rebilly](https://www.rebilly.com/contact/).

- [Coupon restriction types](/docs/dev-docs/api/coupons/coupon-restriction-types.md): ### Coupon restriction types The following coupon description types are available: - `restrict-to-countries`: Restricts a coupon for use in specific countries. - `discounts-per-redemption`: Restricts 
- [GET /coupons-redemptions](/docs/dev-docs/api/coupons/getcouponredemptioncollection.md): Retrieves a list of coupon redemptions.
- [POST /coupons-redemptions](/docs/dev-docs/api/coupons/postcouponredemption.md): Redeems a coupon.
- [GET /coupons-redemptions/{id}](/docs/dev-docs/api/coupons/getcouponredemption.md): Retrieves a coupon redemption with a specified ID.
- [POST /coupons-redemptions/{id}/cancel](/docs/dev-docs/api/coupons/postcouponredemptioncancellation.md): Cancels a coupon redemption with a specified ID.
- [GET /coupons](/docs/dev-docs/api/coupons/getcouponcollection.md): Retrieves a list of coupons.
- [POST /coupons](/docs/dev-docs/api/coupons/postcoupon.md): Creates a coupon.
- [GET /coupons/{id}](/docs/dev-docs/api/coupons/getcoupon.md): Retrieves a coupon with a specified ID.
- [PUT /coupons/{id}](/docs/dev-docs/api/coupons/putcoupon.md): Creates or updates (upserts) a coupon with a specified coupon ID.
- [POST coupon-application-removed](/docs/dev-docs/api/coupons/coupon-application-removed.md)
- [POST coupon-applied](/docs/dev-docs/api/coupons/coupon-applied.md)
- [POST coupon-expiration-modified](/docs/dev-docs/api/coupons/coupon-expiration-modified.md)
- [POST coupon-expired](/docs/dev-docs/api/coupons/coupon-expired.md)
- [POST coupon-issued](/docs/dev-docs/api/coupons/coupon-issued.md)
- [POST coupon-modified](/docs/dev-docs/api/coupons/coupon-modified.md)
- [POST coupon-redeemed](/docs/dev-docs/api/coupons/coupon-redeemed.md)
- [POST coupon-redemption-canceled](/docs/dev-docs/api/coupons/coupon-redemption-canceled.md)

# Coupon application removed

Endpoint: POST coupon-application-removed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `couponId` (string)
  ID of the coupon.
- `redemptionId` (string)
  ID of the redemption.
- `customerId` (string)
  ID of the customer.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "coupon-application-removed", "coupon-applied", "coupon-redeemed", "coupon-redemption-canceled"
- `_embedded` (object)
  Embedded objects related to the coupon redemption event.
- `_embedded.coupon` (object)
  Coupons and discounts.
- `_embedded.coupon.discount` (object, required)
  Coupon discount.
- `_embedded.coupon.restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `_embedded.coupon.restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `_embedded.coupon.restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `_embedded.coupon.restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.coupon.restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `_embedded.coupon.restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `_embedded.coupon.restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `_embedded.coupon.restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `_embedded.coupon.restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `_embedded.coupon.restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `_embedded.coupon.restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `_embedded.coupon.restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `_embedded.coupon.restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `_embedded.coupon.description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `_embedded.coupon.issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `_embedded.coupon.expiredTime` (string | null)
  Date and time when the coupon expires.
- `_embedded.redemption` (object)
  Coupon redemption log.
- `_embedded.redemption.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.redemption.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.redemption.additionalRestrictions` (array)
  Additional coupon redemption restrictions.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "coupon", "redemption", "customer"

# Coupon applied

Endpoint: POST coupon-applied
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `couponId` (string)
  ID of the coupon.
- `redemptionId` (string)
  ID of the redemption.
- `customerId` (string)
  ID of the customer.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "coupon-application-removed", "coupon-applied", "coupon-redeemed", "coupon-redemption-canceled"
- `_embedded` (object)
  Embedded objects related to the coupon redemption event.
- `_embedded.coupon` (object)
  Coupons and discounts.
- `_embedded.coupon.discount` (object, required)
  Coupon discount.
- `_embedded.coupon.restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `_embedded.coupon.restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `_embedded.coupon.restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `_embedded.coupon.restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.coupon.restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `_embedded.coupon.restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `_embedded.coupon.restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `_embedded.coupon.restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `_embedded.coupon.restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `_embedded.coupon.restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `_embedded.coupon.restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `_embedded.coupon.restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `_embedded.coupon.restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `_embedded.coupon.description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `_embedded.coupon.issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `_embedded.coupon.expiredTime` (string | null)
  Date and time when the coupon expires.
- `_embedded.redemption` (object)
  Coupon redemption log.
- `_embedded.redemption.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.redemption.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.redemption.additionalRestrictions` (array)
  Additional coupon redemption restrictions.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "coupon", "redemption", "customer"

# Coupon expiration modified

Endpoint: POST coupon-expiration-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `couponId` (string)
  ID of the coupon.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified"
- `_embedded` (object)
  Embedded objects related to the coupon event.
- `_embedded.coupon` (object)
  Coupons and discounts.
- `_embedded.coupon.discount` (object, required)
  Coupon discount.
- `_embedded.coupon.restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `_embedded.coupon.restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `_embedded.coupon.restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `_embedded.coupon.restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.coupon.restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `_embedded.coupon.restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `_embedded.coupon.restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `_embedded.coupon.restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `_embedded.coupon.restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `_embedded.coupon.restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `_embedded.coupon.restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `_embedded.coupon.restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `_embedded.coupon.restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `_embedded.coupon.description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `_embedded.coupon.issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `_embedded.coupon.expiredTime` (string | null)
  Date and time when the coupon expires.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "coupon"

# Coupon expired

Endpoint: POST coupon-expired
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `couponId` (string)
  ID of the coupon.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified"
- `_embedded` (object)
  Embedded objects related to the coupon event.
- `_embedded.coupon` (object)
  Coupons and discounts.
- `_embedded.coupon.discount` (object, required)
  Coupon discount.
- `_embedded.coupon.restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `_embedded.coupon.restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `_embedded.coupon.restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `_embedded.coupon.restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.coupon.restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `_embedded.coupon.restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `_embedded.coupon.restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `_embedded.coupon.restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `_embedded.coupon.restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `_embedded.coupon.restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `_embedded.coupon.restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `_embedded.coupon.restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `_embedded.coupon.restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `_embedded.coupon.description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `_embedded.coupon.issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `_embedded.coupon.expiredTime` (string | null)
  Date and time when the coupon expires.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "coupon"

# Coupon issued

Endpoint: POST coupon-issued
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `couponId` (string)
  ID of the coupon.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified"
- `_embedded` (object)
  Embedded objects related to the coupon event.
- `_embedded.coupon` (object)
  Coupons and discounts.
- `_embedded.coupon.discount` (object, required)
  Coupon discount.
- `_embedded.coupon.restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `_embedded.coupon.restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `_embedded.coupon.restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `_embedded.coupon.restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.coupon.restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `_embedded.coupon.restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `_embedded.coupon.restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `_embedded.coupon.restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `_embedded.coupon.restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `_embedded.coupon.restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `_embedded.coupon.restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `_embedded.coupon.restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `_embedded.coupon.restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `_embedded.coupon.description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `_embedded.coupon.issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `_embedded.coupon.expiredTime` (string | null)
  Date and time when the coupon expires.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "coupon"

# Coupon modified

Endpoint: POST coupon-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `couponId` (string)
  ID of the coupon.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified"
- `_embedded` (object)
  Embedded objects related to the coupon event.
- `_embedded.coupon` (object)
  Coupons and discounts.
- `_embedded.coupon.discount` (object, required)
  Coupon discount.
- `_embedded.coupon.restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `_embedded.coupon.restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `_embedded.coupon.restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `_embedded.coupon.restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.coupon.restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `_embedded.coupon.restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `_embedded.coupon.restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `_embedded.coupon.restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `_embedded.coupon.restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `_embedded.coupon.restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `_embedded.coupon.restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `_embedded.coupon.restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `_embedded.coupon.restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `_embedded.coupon.description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `_embedded.coupon.issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `_embedded.coupon.expiredTime` (string | null)
  Date and time when the coupon expires.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "coupon"

# Coupon redeemed

Endpoint: POST coupon-redeemed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `couponId` (string)
  ID of the coupon.
- `redemptionId` (string)
  ID of the redemption.
- `customerId` (string)
  ID of the customer.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "coupon-application-removed", "coupon-applied", "coupon-redeemed", "coupon-redemption-canceled"
- `_embedded` (object)
  Embedded objects related to the coupon redemption event.
- `_embedded.coupon` (object)
  Coupons and discounts.
- `_embedded.coupon.discount` (object, required)
  Coupon discount.
- `_embedded.coupon.restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `_embedded.coupon.restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `_embedded.coupon.restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `_embedded.coupon.restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.coupon.restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `_embedded.coupon.restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `_embedded.coupon.restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `_embedded.coupon.restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `_embedded.coupon.restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `_embedded.coupon.restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `_embedded.coupon.restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `_embedded.coupon.restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `_embedded.coupon.restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `_embedded.coupon.description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `_embedded.coupon.issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `_embedded.coupon.expiredTime` (string | null)
  Date and time when the coupon expires.
- `_embedded.redemption` (object)
  Coupon redemption log.
- `_embedded.redemption.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.redemption.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.redemption.additionalRestrictions` (array)
  Additional coupon redemption restrictions.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "coupon", "redemption", "customer"

# Coupon redemption canceled

Endpoint: POST coupon-redemption-canceled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `couponId` (string)
  ID of the coupon.
- `redemptionId` (string)
  ID of the redemption.
- `customerId` (string)
  ID of the customer.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "coupon-application-removed", "coupon-applied", "coupon-redeemed", "coupon-redemption-canceled"
- `_embedded` (object)
  Embedded objects related to the coupon redemption event.
- `_embedded.coupon` (object)
  Coupons and discounts.
- `_embedded.coupon.discount` (object, required)
  Coupon discount.
- `_embedded.coupon.restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `_embedded.coupon.restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `_embedded.coupon.restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `_embedded.coupon.restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.coupon.restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `_embedded.coupon.restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `_embedded.coupon.restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `_embedded.coupon.restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `_embedded.coupon.restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.coupon.restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `_embedded.coupon.restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `_embedded.coupon.restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `_embedded.coupon.restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `_embedded.coupon.restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `_embedded.coupon.restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `_embedded.coupon.restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `_embedded.coupon.description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `_embedded.coupon.issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `_embedded.coupon.expiredTime` (string | null)
  Date and time when the coupon expires.
- `_embedded.redemption` (object)
  Coupon redemption log.
- `_embedded.redemption.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.redemption.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.redemption.additionalRestrictions` (array)
  Additional coupon redemption restrictions.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "coupon", "redemption", "customer"

# Coupon restriction types

### Coupon restriction types

The following coupon description types are available:

- `restrict-to-countries`: Restricts a coupon for use in specific countries.
- `discounts-per-redemption`: Restricts the number of times that the coupon can be applied by one redemption.
  For example, use this restriction to configure a coupon that can only be applied to the first subscription renewal of a particular product.
- `minimum-order-amount`: Sets a minimum order amount for a coupon application.
  For example, if the restriction amount is $20, the coupon is only applied to invoices with a total amount of $20 or more.
- `restrict-to-invoices`: Restricts a coupon to specific invoices.
- `restrict-to-plans`: Restricts a coupon to specific pricing plans.
- `restrict-to-subscriptions`: Restricts a coupon to specific order subscriptions.
- `restrict-to-customer-tags`: Restricts a coupon to customers with specific tags.
- `restrict-to-customers`: Restricts a coupon to specific customers.
- `restrict-to-exclusive-application`: Restricts a coupon so that it cannot be used in combination with other coupons. If more than one coupon is active, a coupon with this restriction is only applied if it provides a larger discount than the other coupons combined. If a coupon with this restriction is applied, all other coupons are removed.
- `restrict-to-products`: Restricts a coupon to specific products.
- `paid-by-time`: Specifies a date and time at which a coupon redemption expires if not paid.
- `redemptions-per-customer`: Restricts the number of times that a coupon can be redeemed by one customer.
  For example, use this restriction to limit the number of redemptions to one per customer.
- `total-redemptions`: Restricts the number of times a coupon can be redeemed by different customers.
- `restrict-to-bxgy`: Provides "buy X get Y" promotions.
  These promotions incentivize new customers to buy and also reward existing customers.
  This restriction type enables you to add discounted plans to an invoice when a certain quantity of other plans are purchased.
  For example, if a customer buys two or more books, they get one free bookmark.

Version: latest
Security: SecretApiKey, JWT

# Retrieve a coupon

Retrieves a coupon with a specified ID.

Endpoint: GET /coupons/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the coupon. This value is also known as the coupon redemption code.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discount` (object, required)
  Coupon discount.
- `restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `redemptionsCount` (integer)
  Total number of times that a coupon is redeemed.
- `status` (string)
  Specifies the current status of the coupon.
  Enum: "draft", "issued", "expired"
- `description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `expiredTime` (string | null)
  Date and time when the coupon expires.
- `revision` (integer)
  Number of times the coupon data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve coupons

Retrieves a list of coupons.

Endpoint: GET /coupons
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the coupon. This value is also known as the coupon redemption code.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discount` (object, required)
  Coupon discount.
- `restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `redemptionsCount` (integer)
  Total number of times that a coupon is redeemed.
- `status` (string)
  Specifies the current status of the coupon.
  Enum: "draft", "issued", "expired"
- `description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `expiredTime` (string | null)
  Date and time when the coupon expires.
- `revision` (integer)
  Number of times the coupon data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve a coupon redemption

Retrieves a coupon redemption with a specified ID.

Endpoint: GET /coupons-redemptions/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  Unique resource ID.
  Example: cpn_rdm_01HXC82EEPW6YD3MPWJY7151VR
- `couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `additionalRestrictions` (array)
  Additional coupon redemption restrictions.
- `additionalRestrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "restrict-to-subscriptions"
- `additionalRestrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `additionalRestrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `additionalRestrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `additionalRestrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `additionalRestrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `additionalRestrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `additionalRestrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `additionalRestrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `additionalRestrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `additionalRestrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `canceledTime` (string | null)
  Date and time when the coupon is canceled.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer", "coupon"

## 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 404 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.

# Retrieve coupon redemptions

Retrieves a list of coupon redemptions.

Endpoint: GET /coupons-redemptions
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  Unique resource ID.
  Example: cpn_rdm_01HXC82EEPW6YD3MPWJY7151VR
- `couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `additionalRestrictions` (array)
  Additional coupon redemption restrictions.
- `additionalRestrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "restrict-to-subscriptions"
- `additionalRestrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `additionalRestrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `additionalRestrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `additionalRestrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `additionalRestrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `additionalRestrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `additionalRestrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `additionalRestrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `additionalRestrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `additionalRestrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `canceledTime` (string | null)
  Date and time when the coupon is canceled.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer", "coupon"

## 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.

# Create a coupon

Creates a coupon.

Endpoint: POST /coupons
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Request fields

- `discount` (object, required)
  Coupon discount.
- `restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `expiredTime` (string | null)
  Date and time when the coupon expires.

## Response 201 fields

- `id` (string)
  ID of the coupon. This value is also known as the coupon redemption code.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discount` (object, required)
  Coupon discount.
- `restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `redemptionsCount` (integer)
  Total number of times that a coupon is redeemed.
- `status` (string)
  Specifies the current status of the coupon.
  Enum: "draft", "issued", "expired"
- `description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `expiredTime` (string | null)
  Date and time when the coupon expires.
- `revision` (integer)
  Number of times the coupon data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Redeem a coupon

Redeems a coupon.

Endpoint: POST /coupons-redemptions
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Request fields

- `couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `additionalRestrictions` (array)
  Additional coupon redemption restrictions.
- `additionalRestrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "restrict-to-subscriptions"
- `additionalRestrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `additionalRestrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `additionalRestrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `additionalRestrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `additionalRestrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `additionalRestrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `additionalRestrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `additionalRestrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `additionalRestrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `additionalRestrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.

## Response 201 fields

- `id` (string)
  Unique resource ID.
  Example: cpn_rdm_01HXC82EEPW6YD3MPWJY7151VR
- `couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `additionalRestrictions` (array)
  Additional coupon redemption restrictions.
- `additionalRestrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "restrict-to-subscriptions"
- `additionalRestrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `additionalRestrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `additionalRestrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `additionalRestrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `additionalRestrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `additionalRestrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `additionalRestrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `additionalRestrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `additionalRestrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `additionalRestrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `canceledTime` (string | null)
  Date and time when the coupon is canceled.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer", "coupon"

## 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.

# Cancel a coupon redemption

Cancels a coupon redemption with a specified ID.

Endpoint: POST /coupons-redemptions/{id}/cancel
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 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.

# Upsert a coupon

Creates or updates (upserts) a coupon with a specified coupon ID.

Endpoint: PUT /coupons/{id}
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `discount` (object, required)
  Coupon discount.
- `restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `expiredTime` (string | null)
  Date and time when the coupon expires.

## Response 200 fields

- `id` (string)
  ID of the coupon. This value is also known as the coupon redemption code.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discount` (object, required)
  Coupon discount.
- `restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `redemptionsCount` (integer)
  Total number of times that a coupon is redeemed.
- `status` (string)
  Specifies the current status of the coupon.
  Enum: "draft", "issued", "expired"
- `description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `expiredTime` (string | null)
  Date and time when the coupon expires.
- `revision` (integer)
  Number of times the coupon data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## Response 201 fields

- `id` (string)
  ID of the coupon. This value is also known as the coupon redemption code.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discount` (object, required)
  Coupon discount.
- `restrictions` (array)
  Coupon restrictions. All `type` values in this array must be unique.
- `restrictions.type` (string, required)
  Type of coupon restriction.
  Enum: "total-redemptions"
- `restrictions.quantity` (integer, required)
  Permitted number of discounts per redemption.
- `restrictions.amount` (number, required)
  Maximum order amount that is allowed to apply the coupon.
- `restrictions.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `restrictions.amount` (number, required)
  Minimum order quantity that is required to apply the coupon.
- `restrictions.time` (string, required)
  Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed.
- `restrictions.quantity` (integer, required)
  Permitted number of redemptions per customer.
- `restrictions.buy` (array, required)
  One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. All `planId` values in this array must be unique.
- `restrictions.buy.planId` (string, required)
  Plan ID of the item being purchased. This value must be unique within the `buy.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.buy.quantity` (integer, required)
  Total quantity of the associated plan ID that must be purchased for this restriction to apply.
- `restrictions.get` (array, required)
  One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. All `planId` values in this array must be unique.
- `restrictions.get.planId` (string, required)
  Plan ID of the item that is to be received by the customer. This value must be unique within the `get.items` array.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `restrictions.get.quantity` (integer, required)
  Total quantity of the associated plan ID that is to be received by the customer.
- `restrictions.countries` (array, required)
  Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
- `restrictions.tags` (array, required)
  Customer tags on which a coupon can be applied.
- `restrictions.requireAllTags` (boolean, required)
  Specifies if the customer must have all listed tags, or at least one of the listed tags, to redeem a coupon.
  Enum: true, false
- `restrictions.customerIds` (array, required)
  Customer IDs on which a coupon can be applied.
- `restrictions.invoiceIds` (array, required)
  Invoice IDs on which a coupon can be applied.
- `restrictions.planIds` (array, required)
  Plan IDs on which a coupon can be applied.
- `restrictions.minimumQuantity` (integer)
  Minimum quantity that is required to apply the restriction and subsequent discount.
- `restrictions.productIds` (array, required)
  Product IDs on which a coupon can be applied.
- `restrictions.subscriptionIds` (array, required)
  Subscription IDs on which a coupon can be applied.
- `restrictions.quantity` (integer, required)
  Permitted total number of redemptions.
- `redemptionsCount` (integer)
  Total number of times that a coupon is redeemed.
- `status` (string)
  Specifies the current status of the coupon.
  Enum: "draft", "issued", "expired"
- `description` (string)
  Description of the coupon. Use this field to provide a description for the invoice discount item. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`.
- `issuedTime` (string, required)
  Date and time when the coupon is issued. This value may also be described as start time of the coupon.
- `expiredTime` (string | null)
  Date and time when the coupon expires.
- `revision` (integer)
  Number of times the coupon data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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 409 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 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.

# Credit memos

Use credit memos to provide a customer with store credit.
A common use case for using a credit memo is to provide a customer with store credit,
rather than a refund, if the customer pays more than they owe or returns a product.
For information on the credit memo resource, see [Resources](https://www.rebilly.com/docs/dev-docs/concepts/#resources).

- [GET /credit-memos](/docs/dev-docs/api/credit-memos/getcreditmemocollection.md): Retrieves a list of credit memos.
- [POST /credit-memos](/docs/dev-docs/api/credit-memos/postcreditmemo.md): Creates a credit memo.
- [GET /credit-memos/{id}](/docs/dev-docs/api/credit-memos/getcreditmemo.md): Retrieves a credit memo with a specified ID.
- [PUT /credit-memos/{id}](/docs/dev-docs/api/credit-memos/putcreditmemo.md): Creates or updates (upserts) a credit memo with a specified ID.
- [PATCH /credit-memos/{id}](/docs/dev-docs/api/credit-memos/patchcreditmemo.md): Partially updates a credit memo with a specified ID.
- [POST /credit-memos/{id}/void](/docs/dev-docs/api/credit-memos/postcreditmemovoid.md): Voids a credit memo with a specified ID. Removes the invoice allocations of the credit memo and returns the allocated amounts to the invoices. If the credit memo is allocated to an invoice that is not
- [POST credit-memo-applied](/docs/dev-docs/api/credit-memos/credit-memo-applied.md)
- [POST credit-memo-created](/docs/dev-docs/api/credit-memos/credit-memo-created.md)
- [POST credit-memo-modified](/docs/dev-docs/api/credit-memos/credit-memo-modified.md)
- [POST credit-memo-partially-applied](/docs/dev-docs/api/credit-memos/credit-memo-partially-applied.md)
- [POST credit-memo-voided](/docs/dev-docs/api/credit-memos/credit-memo-voided.md)

# Credit memos timeline

Use credit memo timelines to maintain an audit trail of changes and activity for each credit memo.
Credit memos are a means of providing a customer with store credit.

- [GET /credit-memos/{id}/timeline](/docs/dev-docs/api/credit-memos-timeline/getcreditmemotimelinecollection.md): Retrieves a list of credit memo timeline messages.
- [POST /credit-memos/{id}/timeline](/docs/dev-docs/api/credit-memos-timeline/postcreditmemotimeline.md): Creates a credit memo timeline message.
- [GET /credit-memos/{id}/timeline/{messageId}](/docs/dev-docs/api/credit-memos-timeline/getcreditmemotimeline.md): Retrieves a credit memo timeline message with a specified ID.
- [DELETE /credit-memos/{id}/timeline/{messageId}](/docs/dev-docs/api/credit-memos-timeline/deletecreditmemotimeline.md): Deletes a credit memo timeline message with a specified ID.

# Delete a credit memo timeline message

Deletes a credit memo timeline message with a specified ID.

Endpoint: DELETE /credit-memos/{id}/timeline/{messageId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `messageId` (string, required)
  ID of the credit memo timeline message.

## 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 404 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 409 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 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.

# Retrieve a credit memo timeline message

Retrieves a credit memo timeline message with a specified ID.

Endpoint: GET /credit-memos/{id}/timeline/{messageId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `messageId` (string, required)
  ID of the credit memo timeline message.

## Response 200 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "credit-memo-created", "credit-memo-applied", "credit-memo-partially-applied", "credit-memo-voided"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Content of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve credit memo timeline messages

Retrieves a list of credit memo timeline messages.

Endpoint: GET /credit-memos/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "credit-memo-created", "credit-memo-applied", "credit-memo-partially-applied", "credit-memo-voided"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Content of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a credit memo timeline message

Creates a credit memo timeline message.

Endpoint: POST /credit-memos/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `message` (string)
  Content of the timeline message.

## Response 201 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "credit-memo-created", "credit-memo-applied", "credit-memo-partially-applied", "credit-memo-voided"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Content of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Credit memo applied

Endpoint: POST credit-memo-applied
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `creditMemoId` (string)
  ID of the credit memo.
  Example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided"
- `_embedded` (object)
  Embedded objects related to the credit memo event.
- `_embedded.creditMemo` (object)
  Credit memo object.
- `_embedded.creditMemo.allocations` (object)
  Allocations reduce the unused amount of a credit memo.
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.invoices.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.items` (array)
  Items of the credit memo.
- `_embedded.creditMemo.items.invoiceItemId` (string | null)
  ID of the invoice item to which the credit item is referenced.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.creditMemo.items.description` (string)
  Description of the credit memo item.
- `_embedded.creditMemo.items.unitPrice` (number, required)
  Price of the credit memo item.
- `_embedded.creditMemo.items.quantity` (integer, required)
  Quantity of the credit memo item.
- `_embedded.creditMemo.items.productId` (string | null)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.creditMemo.items.planId` (string | null)
  ID of the related plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.creditMemo.items.tax` (any)
  Credit memo item tax.
- `_embedded.creditMemo.reason` (string)
  Reason for the credit memo.
  Enum: "return", "product-unsatisfactory", "order-change", "order-cancellation", "chargeback", "write-off", "waiver", "customer-credit", "prepayment", "other"
- `_embedded.creditMemo.description` (string)
  Public description, that is visible to customers, which describes the purpose of the credit memo.
- `_embedded.creditMemo.shippingAmount` (number)
  Shipping amount of an invoice to credit.
- `_embedded.creditMemo.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.creditMemo.invoiceId` (string | null)
  ID of the invoice to which the credit memo is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "creditMemo"

# Credit memo created

Endpoint: POST credit-memo-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `creditMemoId` (string)
  ID of the credit memo.
  Example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided"
- `_embedded` (object)
  Embedded objects related to the credit memo event.
- `_embedded.creditMemo` (object)
  Credit memo object.
- `_embedded.creditMemo.allocations` (object)
  Allocations reduce the unused amount of a credit memo.
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.invoices.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.items` (array)
  Items of the credit memo.
- `_embedded.creditMemo.items.invoiceItemId` (string | null)
  ID of the invoice item to which the credit item is referenced.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.creditMemo.items.description` (string)
  Description of the credit memo item.
- `_embedded.creditMemo.items.unitPrice` (number, required)
  Price of the credit memo item.
- `_embedded.creditMemo.items.quantity` (integer, required)
  Quantity of the credit memo item.
- `_embedded.creditMemo.items.productId` (string | null)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.creditMemo.items.planId` (string | null)
  ID of the related plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.creditMemo.items.tax` (any)
  Credit memo item tax.
- `_embedded.creditMemo.reason` (string)
  Reason for the credit memo.
  Enum: "return", "product-unsatisfactory", "order-change", "order-cancellation", "chargeback", "write-off", "waiver", "customer-credit", "prepayment", "other"
- `_embedded.creditMemo.description` (string)
  Public description, that is visible to customers, which describes the purpose of the credit memo.
- `_embedded.creditMemo.shippingAmount` (number)
  Shipping amount of an invoice to credit.
- `_embedded.creditMemo.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.creditMemo.invoiceId` (string | null)
  ID of the invoice to which the credit memo is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "creditMemo"

# Credit memo modified

Endpoint: POST credit-memo-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `creditMemoId` (string)
  ID of the credit memo.
  Example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided"
- `_embedded` (object)
  Embedded objects related to the credit memo event.
- `_embedded.creditMemo` (object)
  Credit memo object.
- `_embedded.creditMemo.allocations` (object)
  Allocations reduce the unused amount of a credit memo.
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.invoices.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.items` (array)
  Items of the credit memo.
- `_embedded.creditMemo.items.invoiceItemId` (string | null)
  ID of the invoice item to which the credit item is referenced.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.creditMemo.items.description` (string)
  Description of the credit memo item.
- `_embedded.creditMemo.items.unitPrice` (number, required)
  Price of the credit memo item.
- `_embedded.creditMemo.items.quantity` (integer, required)
  Quantity of the credit memo item.
- `_embedded.creditMemo.items.productId` (string | null)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.creditMemo.items.planId` (string | null)
  ID of the related plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.creditMemo.items.tax` (any)
  Credit memo item tax.
- `_embedded.creditMemo.reason` (string)
  Reason for the credit memo.
  Enum: "return", "product-unsatisfactory", "order-change", "order-cancellation", "chargeback", "write-off", "waiver", "customer-credit", "prepayment", "other"
- `_embedded.creditMemo.description` (string)
  Public description, that is visible to customers, which describes the purpose of the credit memo.
- `_embedded.creditMemo.shippingAmount` (number)
  Shipping amount of an invoice to credit.
- `_embedded.creditMemo.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.creditMemo.invoiceId` (string | null)
  ID of the invoice to which the credit memo is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "creditMemo"

# Credit memo partially applied

Endpoint: POST credit-memo-partially-applied
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `creditMemoId` (string)
  ID of the credit memo.
  Example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided"
- `_embedded` (object)
  Embedded objects related to the credit memo event.
- `_embedded.creditMemo` (object)
  Credit memo object.
- `_embedded.creditMemo.allocations` (object)
  Allocations reduce the unused amount of a credit memo.
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.invoices.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.items` (array)
  Items of the credit memo.
- `_embedded.creditMemo.items.invoiceItemId` (string | null)
  ID of the invoice item to which the credit item is referenced.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.creditMemo.items.description` (string)
  Description of the credit memo item.
- `_embedded.creditMemo.items.unitPrice` (number, required)
  Price of the credit memo item.
- `_embedded.creditMemo.items.quantity` (integer, required)
  Quantity of the credit memo item.
- `_embedded.creditMemo.items.productId` (string | null)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.creditMemo.items.planId` (string | null)
  ID of the related plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.creditMemo.items.tax` (any)
  Credit memo item tax.
- `_embedded.creditMemo.reason` (string)
  Reason for the credit memo.
  Enum: "return", "product-unsatisfactory", "order-change", "order-cancellation", "chargeback", "write-off", "waiver", "customer-credit", "prepayment", "other"
- `_embedded.creditMemo.description` (string)
  Public description, that is visible to customers, which describes the purpose of the credit memo.
- `_embedded.creditMemo.shippingAmount` (number)
  Shipping amount of an invoice to credit.
- `_embedded.creditMemo.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.creditMemo.invoiceId` (string | null)
  ID of the invoice to which the credit memo is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "creditMemo"

# Credit memo voided

Endpoint: POST credit-memo-voided
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `creditMemoId` (string)
  ID of the credit memo.
  Example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided"
- `_embedded` (object)
  Embedded objects related to the credit memo event.
- `_embedded.creditMemo` (object)
  Credit memo object.
- `_embedded.creditMemo.allocations` (object)
  Allocations reduce the unused amount of a credit memo.
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.transactions.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.allocations.invoices.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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.
- `_embedded.creditMemo.items` (array)
  Items of the credit memo.
- `_embedded.creditMemo.items.invoiceItemId` (string | null)
  ID of the invoice item to which the credit item is referenced.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.creditMemo.items.description` (string)
  Description of the credit memo item.
- `_embedded.creditMemo.items.unitPrice` (number, required)
  Price of the credit memo item.
- `_embedded.creditMemo.items.quantity` (integer, required)
  Quantity of the credit memo item.
- `_embedded.creditMemo.items.productId` (string | null)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.creditMemo.items.planId` (string | null)
  ID of the related plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.creditMemo.items.tax` (any)
  Credit memo item tax.
- `_embedded.creditMemo.reason` (string)
  Reason for the credit memo.
  Enum: "return", "product-unsatisfactory", "order-change", "order-cancellation", "chargeback", "write-off", "waiver", "customer-credit", "prepayment", "other"
- `_embedded.creditMemo.description` (string)
  Public description, that is visible to customers, which describes the purpose of the credit memo.
- `_embedded.creditMemo.shippingAmount` (number)
  Shipping amount of an invoice to credit.
- `_embedded.creditMemo.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.creditMemo.invoiceId` (string | null)
  ID of the invoice to which the credit memo is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.creditMemo.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)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "creditMemo"

# Retrieve a credit memo

Retrieves a credit memo with a specified ID.

Endpoint: GET /credit-memos/{id}
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Header parameters

- `Accept` (string)
  Type of response media.

## Response 200 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 404 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.

# Retrieve credit memos

Retrieves a list of credit memos.

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

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 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.

# Partially update a credit memo

Partially updates a credit memo with a specified ID.

Endpoint: PATCH /credit-memos/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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.

## Response 200 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 404 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 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.

# 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.

# Void a credit memo

Voids a credit memo with a specified ID.
Removes the invoice allocations of the credit memo and returns the allocated amounts to the invoices.
If the credit memo is allocated to an invoice that is not payable, such as a paid invoice,
the request fails with a `409` response and the credit memo is not changed.

Endpoint: POST /credit-memos/{id}/void
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 409 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 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.

# Upsert a credit memo

Creates or updates (upserts) a credit memo with a specified ID.

Endpoint: PUT /credit-memos/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 200 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 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 404 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 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.

# Custom fields

Use custom fields to extend a resource scheme to include custom data that is not provided as a common field.
Depending on the resource on which the custom field is added, it may be available in the Rebilly UI.

Example: A custom field called `preferredCommunicationChannel` is added to the customer resource.
It has two allowed values, which are 'email' and 'phone'.

```js
{
  "customFields": {
      "preferredCommunicationChannel": "email"
  }
}
```

For detailed information on Rebilly resources, see [Resources](https://www.rebilly.com/docs/dev-docs/concepts/#resources).

- [GET /custom-fields/{resource}](/docs/dev-docs/api/custom-fields/getcustomfieldcollection.md): Retrieves the custom fields schema for a specified resource.
- [GET /custom-fields/{resource}/{name}](/docs/dev-docs/api/custom-fields/getcustomfield.md): Retrieves a specified custom field schema for a specified resource.
- [PUT /custom-fields/{resource}/{name}](/docs/dev-docs/api/custom-fields/putcustomfield.md): Creates or alters a specified custom field schema for a specified resource.

# Retrieve a custom field

Retrieves a specified custom field schema for a specified resource.

Endpoint: GET /custom-fields/{resource}/{name}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `resource` (string, required)
  Type of resource schema.
- `name` (string, required)
  ID of the custom field.

## Response 200 fields

- `name` (string)
  Name of the custom field.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Array of strings with up to 255 characters. The maximum size is 1000 elements.
  Enum: "array"
- `description` (string | null)
  Description of the custom field.
- `isEnabled` (boolean)
  Specifies if the custom field is enabled.
- `additionalSchema` (object | null)
  Additional schema which adds additional values constrains.
- `additionalSchema.allowedValues` (array)
  List of allowed values.
- `additionalSchema.required` (boolean)
  Specifies if this value is required. This value can be combined with any parameter and is available for custom fields of any type.
- `additionalSchema.default` (object)
  Default value.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Specifies a `true` or `false` value.
  Enum: "boolean"
- `isEnabled` (boolean)
  Specifies if custom field is enabled.
- `additionalSchema.required` (boolean)
  Specifies if this value is required.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [full-date](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DD).
  Enum: "date"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [date-time](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DDTHH:MM:SSZ).
  Enum: "datetime"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Cardinal value of between `-2^31` and `2^31-1`.
  Enum: "integer"
- `additionalSchema.minimum` (integer)
  Minimum allowed integer. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (integer)
  Maximum allowed integer. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Float value. This field also accepts cardinal values which are interpreted as float.
  Enum: "number"
- `additionalSchema.minimum` (number)
  Minimum allowed number. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (number)
  Maximum allowed number. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. Regular string of up to 255 characters.
  Enum: "string"
- `additionalSchema.maxLength` (integer)
  Maximum allowed string length . A maximum length of 4000 characters can be configured. By default, this value is set to 255.
- `additionalSchema.pattern` (string)
  Allowed regular expression of a string.
  Example: /^[0-9]+$/
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. A map of 3-letter currency, code, and amount. Example: `{"currency": "EUR", "amount": 25.30}`.
  Enum: "monetary"
- `additionalSchema.default.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `additionalSchema.default.amount` (number)

## 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 404 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.

# Retrieve custom fields

Retrieves the custom fields schema for a specified resource.

Endpoint: GET /custom-fields/{resource}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `resource` (string, required)
  Type of resource schema.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.

## Response 200 fields

- `name` (string)
  Name of the custom field.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Array of strings with up to 255 characters. The maximum size is 1000 elements.
  Enum: "array"
- `description` (string | null)
  Description of the custom field.
- `isEnabled` (boolean)
  Specifies if the custom field is enabled.
- `additionalSchema` (object | null)
  Additional schema which adds additional values constrains.
- `additionalSchema.allowedValues` (array)
  List of allowed values.
- `additionalSchema.required` (boolean)
  Specifies if this value is required. This value can be combined with any parameter and is available for custom fields of any type.
- `additionalSchema.default` (object)
  Default value.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Specifies a `true` or `false` value.
  Enum: "boolean"
- `isEnabled` (boolean)
  Specifies if custom field is enabled.
- `additionalSchema.required` (boolean)
  Specifies if this value is required.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [full-date](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DD).
  Enum: "date"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [date-time](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DDTHH:MM:SSZ).
  Enum: "datetime"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Cardinal value of between `-2^31` and `2^31-1`.
  Enum: "integer"
- `additionalSchema.minimum` (integer)
  Minimum allowed integer. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (integer)
  Maximum allowed integer. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Float value. This field also accepts cardinal values which are interpreted as float.
  Enum: "number"
- `additionalSchema.minimum` (number)
  Minimum allowed number. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (number)
  Maximum allowed number. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. Regular string of up to 255 characters.
  Enum: "string"
- `additionalSchema.maxLength` (integer)
  Maximum allowed string length . A maximum length of 4000 characters can be configured. By default, this value is set to 255.
- `additionalSchema.pattern` (string)
  Allowed regular expression of a string.
  Example: /^[0-9]+$/
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. A map of 3-letter currency, code, and amount. Example: `{"currency": "EUR", "amount": 25.30}`.
  Enum: "monetary"
- `additionalSchema.default.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `additionalSchema.default.amount` (number)

## 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.

# Create or alter a custom field

Creates or alters a specified custom field schema for a specified resource.

Endpoint: PUT /custom-fields/{resource}/{name}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `resource` (string, required)
  Type of resource schema.
- `name` (string, required)
  ID of the custom field.

## Request fields

- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Array of strings with up to 255 characters. The maximum size is 1000 elements.
  Enum: "array"
- `description` (string | null)
  Description of the custom field.
- `isEnabled` (boolean)
  Specifies if the custom field is enabled.
- `additionalSchema` (object | null)
  Additional schema which adds additional values constrains.
- `additionalSchema.allowedValues` (array)
  List of allowed values.
- `additionalSchema.required` (boolean)
  Specifies if this value is required. This value can be combined with any parameter and is available for custom fields of any type.
- `additionalSchema.default` (object)
  Default value.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Specifies a `true` or `false` value.
  Enum: "boolean"
- `isEnabled` (boolean)
  Specifies if custom field is enabled.
- `additionalSchema.required` (boolean)
  Specifies if this value is required.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [full-date](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DD).
  Enum: "date"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [date-time](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DDTHH:MM:SSZ).
  Enum: "datetime"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Cardinal value of between `-2^31` and `2^31-1`.
  Enum: "integer"
- `additionalSchema.minimum` (integer)
  Minimum allowed integer. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (integer)
  Maximum allowed integer. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Float value. This field also accepts cardinal values which are interpreted as float.
  Enum: "number"
- `additionalSchema.minimum` (number)
  Minimum allowed number. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (number)
  Maximum allowed number. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. Regular string of up to 255 characters.
  Enum: "string"
- `additionalSchema.maxLength` (integer)
  Maximum allowed string length . A maximum length of 4000 characters can be configured. By default, this value is set to 255.
- `additionalSchema.pattern` (string)
  Allowed regular expression of a string.
  Example: /^[0-9]+$/
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. A map of 3-letter currency, code, and amount. Example: `{"currency": "EUR", "amount": 25.30}`.
  Enum: "monetary"
- `additionalSchema.default.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `additionalSchema.default.amount` (number)

## Response 200 fields

- `name` (string)
  Name of the custom field.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Array of strings with up to 255 characters. The maximum size is 1000 elements.
  Enum: "array"
- `description` (string | null)
  Description of the custom field.
- `isEnabled` (boolean)
  Specifies if the custom field is enabled.
- `additionalSchema` (object | null)
  Additional schema which adds additional values constrains.
- `additionalSchema.allowedValues` (array)
  List of allowed values.
- `additionalSchema.required` (boolean)
  Specifies if this value is required. This value can be combined with any parameter and is available for custom fields of any type.
- `additionalSchema.default` (object)
  Default value.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Specifies a `true` or `false` value.
  Enum: "boolean"
- `isEnabled` (boolean)
  Specifies if custom field is enabled.
- `additionalSchema.required` (boolean)
  Specifies if this value is required.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [full-date](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DD).
  Enum: "date"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [date-time](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DDTHH:MM:SSZ).
  Enum: "datetime"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Cardinal value of between `-2^31` and `2^31-1`.
  Enum: "integer"
- `additionalSchema.minimum` (integer)
  Minimum allowed integer. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (integer)
  Maximum allowed integer. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Float value. This field also accepts cardinal values which are interpreted as float.
  Enum: "number"
- `additionalSchema.minimum` (number)
  Minimum allowed number. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (number)
  Maximum allowed number. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. Regular string of up to 255 characters.
  Enum: "string"
- `additionalSchema.maxLength` (integer)
  Maximum allowed string length . A maximum length of 4000 characters can be configured. By default, this value is set to 255.
- `additionalSchema.pattern` (string)
  Allowed regular expression of a string.
  Example: /^[0-9]+$/
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. A map of 3-letter currency, code, and amount. Example: `{"currency": "EUR", "amount": 25.30}`.
  Enum: "monetary"
- `additionalSchema.default.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `additionalSchema.default.amount` (number)

## Response 201 fields

- `name` (string)
  Name of the custom field.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Array of strings with up to 255 characters. The maximum size is 1000 elements.
  Enum: "array"
- `description` (string | null)
  Description of the custom field.
- `isEnabled` (boolean)
  Specifies if the custom field is enabled.
- `additionalSchema` (object | null)
  Additional schema which adds additional values constrains.
- `additionalSchema.allowedValues` (array)
  List of allowed values.
- `additionalSchema.required` (boolean)
  Specifies if this value is required. This value can be combined with any parameter and is available for custom fields of any type.
- `additionalSchema.default` (object)
  Default value.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Specifies a `true` or `false` value.
  Enum: "boolean"
- `isEnabled` (boolean)
  Specifies if custom field is enabled.
- `additionalSchema.required` (boolean)
  Specifies if this value is required.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [full-date](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DD).
  Enum: "date"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. String in [date-time](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DDTHH:MM:SSZ).
  Enum: "datetime"
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Cardinal value of between `-2^31` and `2^31-1`.
  Enum: "integer"
- `additionalSchema.minimum` (integer)
  Minimum allowed integer. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (integer)
  Maximum allowed integer. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type value cannot be changed. Float value. This field also accepts cardinal values which are interpreted as float.
  Enum: "number"
- `additionalSchema.minimum` (number)
  Minimum allowed number. This value can be combined with the `maximum` parameter.
- `additionalSchema.maximum` (number)
  Maximum allowed number. This value can be combined with the `minimum` parameter.
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. Regular string of up to 255 characters.
  Enum: "string"
- `additionalSchema.maxLength` (integer)
  Maximum allowed string length . A maximum length of 4000 characters can be configured. By default, this value is set to 255.
- `additionalSchema.pattern` (string)
  Allowed regular expression of a string.
  Example: /^[0-9]+$/
- `type` (string, required)
  Describes the data type. The custom field type cannot be changed. A map of 3-letter currency, code, and amount. Example: `{"currency": "EUR", "amount": 25.30}`.
  Enum: "monetary"
- `additionalSchema.default.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `additionalSchema.default.amount` (number)

## 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 409 fields

- `error` (string)

## 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.

# Customer authentication

Use these operations to validate the identity of users and manage authentication credentials.

- [GET /authentication-options](/docs/dev-docs/api/customer-authentication/getauthenticationoption.md): Retrieves customer authentication options.
- [PUT /authentication-options](/docs/dev-docs/api/customer-authentication/putauthenticationoption.md): Changes customer authentication options.
- [GET /authentication-tokens](/docs/dev-docs/api/customer-authentication/getauthenticationtokencollection.md): Retrieves a list of customer authentication tokens.
- [POST /authentication-tokens](/docs/dev-docs/api/customer-authentication/postauthenticationtoken.md): Logs in a customer.
- [GET /authentication-tokens/{token}](/docs/dev-docs/api/customer-authentication/getauthenticationtokenverification.md): Verifies a customer's authentication token.
- [DELETE /authentication-tokens/{token}](/docs/dev-docs/api/customer-authentication/deleteauthenticationtoken.md): Logs out a customer.
- [POST /authentication-tokens/{token}/exchange](/docs/dev-docs/api/customer-authentication/postauthenticationtokenexchange.md): Exchanges an authentication token for a JWT. By default, this operation invalidates the exchanged authentication token.
- [GET /credentials](/docs/dev-docs/api/customer-authentication/getcredentialcollection.md): Retrieves a list of authentication credentials.
- [POST /credentials](/docs/dev-docs/api/customer-authentication/postcredential.md): Creates an authentication credential.
- [GET /credentials/{id}](/docs/dev-docs/api/customer-authentication/getcredential.md): Retrieves a credential with a specified ID.
- [PUT /credentials/{id}](/docs/dev-docs/api/customer-authentication/putcredential.md): Creates or updates (upserts) an authentication credential with a specified ID.
- [GET /password-tokens](/docs/dev-docs/api/customer-authentication/getpasswordtokencollection.md): Retrieves a list of reset password tokens.
- [POST /password-tokens](/docs/dev-docs/api/customer-authentication/postpasswordtoken.md): Creates a reset password token.
- [GET /password-tokens/{id}](/docs/dev-docs/api/customer-authentication/getpasswordtoken.md): Retrieves a reset password token with a specified ID.

# Logout a customer

Logs out a customer.

Endpoint: DELETE /authentication-tokens/{token}
Version: latest
Security: SecretApiKey, JWT, PublishableApiKey

## Path parameters

- `token` (string, required)
  ID of the authentication token.

## 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 404 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 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.

# Retrieve authentication options

Retrieves customer authentication options.

Endpoint: GET /authentication-options
Version: latest
Security: SecretApiKey, JWT

## Response 200 fields

- `passwordPattern` (string | null)
  Allowed password pattern.
  Example: /^[0-9]+$/
- `credentialTtl` (integer)
  Default credential lifetime, in seconds.
- `authTokenTtl` (integer)
  Default auth-token lifetime, in seconds.
- `resetTokenTtl` (integer)
  Default reset-token lifetime, in seconds.
- `otpRequired` (boolean)
  Specifies if a One-Time Password (OTP) is required to exchange a token.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve authentication tokens

Retrieves a list of customer authentication tokens.

Endpoint: GET /authentication-tokens
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.

## Response 200 fields

- `username` (string, required)
  Username of the customer who is associated with the authentication token.
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `token` (string)
  ID of the authentication token.
- `otpRequired` (boolean)
  Specifies if a One-Time Password (OTP) is required to exchange the authentication token.
- `credentialId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `expiredTime` (string | null)
  Date and time when the token expired.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Verify an authentication token

Verifies a customer's authentication token.

Endpoint: GET /authentication-tokens/{token}
Version: latest
Security: SecretApiKey, JWT, PublishableApiKey

## Path parameters

- `token` (string, required)
  ID of the authentication token.

## Response 200 fields

- `username` (string, required)
  Username of the customer who is associated with the authentication token.
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `token` (string)
  ID of the authentication token.
- `otpRequired` (boolean)
  Specifies if a One-Time Password (OTP) is required to exchange the authentication token.
- `credentialId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `expiredTime` (string | null)
  Date and time when the token expired.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve a credential

Retrieves a credential with a specified ID.

Endpoint: GET /credentials/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the credential.
  Example: cus_crd_0YV9Y706QGCB39FQD380G1ZHZH
- `username` (string, required)
  Username associated with the credential.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `expiredTime` (string | null)
  Date and time when the credential expires.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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 404 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.

# Retrieve credentials

Retrieves a list of authentication credentials.

Endpoint: GET /credentials
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.

## Response 200 fields

- `id` (string)
  ID of the credential.
  Example: cus_crd_0YV9Y706QGCB39FQD380G1ZHZH
- `username` (string, required)
  Username associated with the credential.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `expiredTime` (string | null)
  Date and time when the credential expires.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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.

# Retrieve a reset password token

Retrieves a reset password token with a specified ID.

Endpoint: GET /password-tokens/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `token` (string)
  ID of the token.
- `username` (string, required)
  Username associated with the token.
- `credentialId` (string)
  Credential ID associated with the token.
- `expiredTime` (string | null)
  Date and time when the password expires.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve tokens

Retrieves a list of reset password tokens.

Endpoint: GET /password-tokens
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.

## Response 200 fields

- `token` (string)
  ID of the token.
- `username` (string, required)
  Username associated with the token.
- `credentialId` (string)
  Credential ID associated with the token.
- `expiredTime` (string | null)
  Date and time when the password expires.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Login a customer

Logs in a customer.

Endpoint: POST /authentication-tokens
Version: latest
Security: SecretApiKey, JWT, PublishableApiKey

## Request fields

- `username` (string, required)
  Username associated with the authentication token.
- `password` (string, required)
  Password associated with the authentication token.
- `mode` (string)
  Specifies the authentication verification method. The `password` token requires the user to enter a password to log in. The `passwordless` token, requires a secret API key to log in. To obtain an API key, see [Manage API keys](https://www.rebilly.com/docs/dev-docs/api-keys/#manage-api-keys).
  Enum: "passwordless"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `otpRequired` (boolean)
  Specifies if a One-Time Password (OTP) is required to exchange the authentication token.
- `credentialId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `expiredTime` (string)
  Date and time when the token expired.

## Response 201 fields

- `username` (string, required)
  Username of the customer who is associated with the authentication token.
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `token` (string)
  ID of the authentication token.
- `otpRequired` (boolean)
  Specifies if a One-Time Password (OTP) is required to exchange the authentication token.
- `credentialId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `expiredTime` (string | null)
  Date and time when the token expired.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Exchange an authentication token

Exchanges an authentication token for a JWT.


By default, this operation invalidates the exchanged authentication token.

Endpoint: POST /authentication-tokens/{token}/exchange
Version: latest
Security: SecretApiKey, JWT, PublishableApiKey

## Path parameters

- `token` (string, required)
  ID of the authentication token.

## Request fields

- `invalidate` (boolean)
  Specifies if the token must be invalidated after the exchange is performed.
  Example: true
- `oneTimePassword` (string)
  One-time password that is sent by email. This value must contain digits only.
  Example: 123456
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `acl` (array)
  Access Control List (ACL) information.
- `acl.scope` (object, required)
  Example: {"organizationId":["organizationId-id-1"]}
- `acl.scope.organizationId` (array)
  Array of account IDs.
- `acl.scope.productId` (array)
  Array of product IDs.
- `acl.scope.planId` (array)
  Array of plan IDs.
- `acl.scope.customFieldName` (array)
  Array of custom field names.
- `acl.permissions` (array, required)
  Example: ["PostFile","StorefrontGetAccount","StorefrontGetWebsite","StorefrontGetKycDocument","StorefrontPostKycDocument"]
- `expiredTime` (string)
  Date and time when the session expires. The default value is one hour after the `createdTime` value.

## Response 201 fields

- `id` (string)
  ID of the session.
  Example: jwt_0YV7DEJX80CDRAKVTV478ZNJDR
- `type` (string)
  Type of session.
  Enum: "customer"
- `token` (string)
  Token used for authentication.
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `acl` (array)
  Access Control List (ACL) information.
- `acl.scope` (object, required)
  Example: {"organizationId":["organizationId-id-1"]}
- `acl.scope.organizationId` (array)
  Array of account IDs.
- `acl.scope.productId` (array)
  Array of product IDs.
- `acl.scope.planId` (array)
  Array of plan IDs.
- `acl.scope.customFieldName` (array)
  Array of custom field names.
- `acl.permissions` (array, required)
  Example: ["PostFile","StorefrontGetAccount","StorefrontGetWebsite","StorefrontGetKycDocument","StorefrontPostKycDocument"]
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `expiredTime` (string)
  Date and time when the session expires. The default value is one hour after the `createdTime` value.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "customer"

## 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 404 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 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.

# Create a credential

Creates an authentication credential.

Endpoint: POST /credentials
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `username` (string, required)
  Username associated with the credential.
- `password` (string, required)
  Password associated with the credential.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `expiredTime` (string | null)
  Date and time when the credential expires.

## Response 201 fields

- `id` (string)
  ID of the credential.
  Example: cus_crd_0YV9Y706QGCB39FQD380G1ZHZH
- `username` (string, required)
  Username associated with the credential.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `expiredTime` (string | null)
  Date and time when the credential expires.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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.

# Create a reset password token

Creates a reset password token.

Endpoint: POST /password-tokens
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `username` (string, required)
  Username associated with the token.
- `expiredTime` (string | null)
  Date and time when the password expires.

## Response 201 fields

- `token` (string)
  ID of the token.
- `username` (string, required)
  Username associated with the token.
- `credentialId` (string)
  Credential ID associated with the token.
- `expiredTime` (string | null)
  Date and time when the password expires.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Change authentication options

Changes customer authentication options.

Endpoint: PUT /authentication-options
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `passwordPattern` (string | null)
  Allowed password pattern.
  Example: /^[0-9]+$/
- `credentialTtl` (integer)
  Default credential lifetime, in seconds.
- `authTokenTtl` (integer)
  Default auth-token lifetime, in seconds.
- `resetTokenTtl` (integer)
  Default reset-token lifetime, in seconds.
- `otpRequired` (boolean)
  Specifies if a One-Time Password (OTP) is required to exchange a token.

## Response 200 fields

- `passwordPattern` (string | null)
  Allowed password pattern.
  Example: /^[0-9]+$/
- `credentialTtl` (integer)
  Default credential lifetime, in seconds.
- `authTokenTtl` (integer)
  Default auth-token lifetime, in seconds.
- `resetTokenTtl` (integer)
  Default reset-token lifetime, in seconds.
- `otpRequired` (boolean)
  Specifies if a One-Time Password (OTP) is required to exchange a token.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Upsert a credential

Creates or updates (upserts) an authentication credential with a specified ID.

Endpoint: PUT /credentials/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `username` (string, required)
  Username associated with the credential.
- `password` (string, required)
  Password associated with the credential.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `expiredTime` (string | null)
  Date and time when the credential expires.

## Response 200 fields

- `id` (string)
  ID of the credential.
  Example: cus_crd_0YV9Y706QGCB39FQD380G1ZHZH
- `username` (string, required)
  Username associated with the credential.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `expiredTime` (string | null)
  Date and time when the credential expires.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## Response 201 fields

- `id` (string)
  ID of the credential.
  Example: cus_crd_0YV9Y706QGCB39FQD380G1ZHZH
- `username` (string, required)
  Username associated with the credential.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `expiredTime` (string | null)
  Date and time when the credential expires.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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 404 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 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.

# Customers

Use these operations to manage customers.
A customer is an entity that purchases goods or services from you (a merchant),
and is the payee in any transaction that is credited to you.
Customers are associated with payment instruments,
subscriptions, invoices, and other related resources.

In other systems, customers may be referred to as accounts,
clients, members, patrons, or players.
For information on the customer resource, see [Resources](https://www.rebilly.com/docs/dev-docs/concepts/#resources).

- [GET /customers](/docs/dev-docs/api/customers/getcustomercollection.md): Retrieves a list of customers.
- [POST /customers](/docs/dev-docs/api/customers/postcustomer.md): Creates a new customer and customer ID. The customer's primary address is used as the default address for payment instruments, subscriptions, and invoices if none are provided. If the customer already
- [GET /customers/{id}](/docs/dev-docs/api/customers/getcustomer.md): Retrieves a customer with a specified ID.
- [PUT /customers/{id}](/docs/dev-docs/api/customers/putcustomer.md): Creates or updates (upserts) a customer with a specified ID. If the customer already has an identifier within your system, and you want to create a customer with a specified ID — use this operation to
- [DELETE /customers/{id}](/docs/dev-docs/api/customers/deletecustomer.md): Merges one duplicate customer to another target customer and deletes the former.
- [GET /customers/{id}/lead-source](/docs/dev-docs/api/customers/getcustomerleadsource.md): Retrieves lead source data for a customer with a specified ID. A lead source is the marketing campaign that generates customer interaction, a sale, or a trial. For more information, see [Lead source a
- [PUT /customers/{id}/lead-source](/docs/dev-docs/api/customers/putcustomerleadsource.md): Creates a lead source for a customer with a specified ID. A lead source is the marketing campaign that generates customer interaction, a sale, or a trial. For more information, see [Lead source attrib
- [GET /customers/{id}/credit-balance](/docs/dev-docs/api/customers/getcustomercreditbalance.md): Retrieves a customer's credit balance grouped by currency.
- [POST /customers/{id}/compliance-screening-report](/docs/dev-docs/api/customers/postcustomercompliancescreeningreport.md): Creates a compliance screening report that includes Know Your Customer (KYC) and Anti-Money Laundering (AML) results for a customer. The report is stored as a PDF customer attachment. Requires the KYC
- [POST customer-created](/docs/dev-docs/api/customers/customer-created.md)
- [POST customer-merged](/docs/dev-docs/api/customers/customer-merged.md)
- [POST customer-one-time-password-requested](/docs/dev-docs/api/customers/customer-one-time-password-requested.md)
- [POST customer-tax-number-validated](/docs/dev-docs/api/customers/customer-tax-number-validated.md)
- [POST customer-updated](/docs/dev-docs/api/customers/customer-updated.md)
- [POST experian-check-performed](/docs/dev-docs/api/customers/experian-check-performed.md)
- [POST lead-source-changed](/docs/dev-docs/api/customers/lead-source-changed.md)

# Customers timeline

Use customer timelines to maintain an audit trail of changes and activity for each customer.

- [GET /customer-timeline-custom-events](/docs/dev-docs/api/customers-timeline/getcustomertimelinecustomeventtypecollection.md): Retrieves a list of customer timeline custom event types.
- [GET /customer-timeline-custom-events/{id}](/docs/dev-docs/api/customers-timeline/getcustomertimelinecustomeventtype.md): Retrieves a customer timeline custom event type with a specified ID.
- [GET /customers/{id}/timeline](/docs/dev-docs/api/customers-timeline/getcustomertimelinecollection.md): Retrieves customer timeline messages.
- [POST /customers/{id}/timeline](/docs/dev-docs/api/customers-timeline/postcustomertimeline.md): Creates a customer timeline comment or custom defined event.
- [GET /customers/{id}/timeline/{messageId}](/docs/dev-docs/api/customers-timeline/getcustomertimeline.md): Retrieves a customer message with a specified ID.

# Retrieve a customer timeline message

Retrieves a customer message with a specified ID.

Endpoint: GET /customers/{id}/timeline/{messageId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `messageId` (string, required)
  ID of the customer timeline message.

## Response 200 fields

- `id` (string)
  ID of the customer timeline custom event.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "account-password-reset-requested", "account-verification-requested", "aml-list-was-possibly-matched", "deposit-request-completed", "deposit-request-created", "deposit-request-expired", "deposit-request-started", "coupon-applied", "coupon-redeemed", "coupon-redemption-canceled", "custom-event", "custom-event-processed", "custom-fields-changed", "customer-bank-account-blocked", "customer-blocked", "customer-comment-created", "customer-created", "customer-merged", "customer-payment-card-blocked", "customer-requested-otp", "customer-tagged", "customer-untagged", "default-payment-instrument-changed", "email-message-sent", "experian-check-performed", "invoice-abandoned", "invoice-created", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-revenue-recognized", "invoice-voided", "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-fulfilled", "lead-source-changed", "order-activated", "order-canceled", "order-churned", "order-completed", "order-created", "order-downgraded", "order-change-applied", "order-change-canceled", "order-change-created", "order-paid-early", "order-reactivated", "order-renewed", "order-trial-ended", "order-upgraded", "payment-card-expiration-was-modified", "payment-card-expired", "payment-instrument-created", "payment-instrument-deactivated", "primary-address-changed", "quickbooks-customer-created", "quickbooks-customer-task-failed", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-order-attached", "quote-recalled", "quote-rejected", "quote-updated", "refund-was-reflected-in-invoices", "subscription-pause-created", "subscription-pause-revoked", "subscription-paused", "subscription-resumed", "subscription-trial-end-changed", "transaction-abandoned", "transaction-amount-discrepancy-found", "transaction-approved", "transaction-canceled", "transaction-declined", "transaction-discrepancy-found", "transaction-disputed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-voided", "transaction-waiting-gateway", "wallet-admin-credited", "wallet-admin-debited"
- `customEventType` (string | null)
  Timeline custom event type. Used with `custom-event` type. This value must be defined using the Create customer timeline custom event type operation.
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Detailed message description.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve customer timeline messages

Retrieves customer timeline messages.

Endpoint: GET /customers/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the customer timeline custom event.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "account-password-reset-requested", "account-verification-requested", "aml-list-was-possibly-matched", "deposit-request-completed", "deposit-request-created", "deposit-request-expired", "deposit-request-started", "coupon-applied", "coupon-redeemed", "coupon-redemption-canceled", "custom-event", "custom-event-processed", "custom-fields-changed", "customer-bank-account-blocked", "customer-blocked", "customer-comment-created", "customer-created", "customer-merged", "customer-payment-card-blocked", "customer-requested-otp", "customer-tagged", "customer-untagged", "default-payment-instrument-changed", "email-message-sent", "experian-check-performed", "invoice-abandoned", "invoice-created", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-revenue-recognized", "invoice-voided", "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-fulfilled", "lead-source-changed", "order-activated", "order-canceled", "order-churned", "order-completed", "order-created", "order-downgraded", "order-change-applied", "order-change-canceled", "order-change-created", "order-paid-early", "order-reactivated", "order-renewed", "order-trial-ended", "order-upgraded", "payment-card-expiration-was-modified", "payment-card-expired", "payment-instrument-created", "payment-instrument-deactivated", "primary-address-changed", "quickbooks-customer-created", "quickbooks-customer-task-failed", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-order-attached", "quote-recalled", "quote-rejected", "quote-updated", "refund-was-reflected-in-invoices", "subscription-pause-created", "subscription-pause-revoked", "subscription-paused", "subscription-resumed", "subscription-trial-end-changed", "transaction-abandoned", "transaction-amount-discrepancy-found", "transaction-approved", "transaction-canceled", "transaction-declined", "transaction-discrepancy-found", "transaction-disputed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-voided", "transaction-waiting-gateway", "wallet-admin-credited", "wallet-admin-debited"
- `customEventType` (string | null)
  Timeline custom event type. Used with `custom-event` type. This value must be defined using the Create customer timeline custom event type operation.
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Detailed message description.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve customer timeline custom event type

Retrieves a customer timeline custom event type with a specified ID.

Endpoint: GET /customer-timeline-custom-events/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the customer timeline custom event.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `name` (string, required)
  Name of the customer timeline custom event type. This value must not conflict with any system event name.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve customer timeline custom event types

Retrieves a list of customer timeline custom event types.

Endpoint: GET /customer-timeline-custom-events
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).

## Response 200 fields

- `id` (string)
  ID of the customer timeline custom event.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `name` (string, required)
  Name of the customer timeline custom event type. This value must not conflict with any system event name.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a customer timeline comment

Creates a customer timeline comment or custom defined event.

Endpoint: POST /customers/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `type` (string)
  Type of timeline message.
  Enum: "account-password-reset-requested", "account-verification-requested", "aml-list-was-possibly-matched", "deposit-request-completed", "deposit-request-created", "deposit-request-expired", "deposit-request-started", "coupon-applied", "coupon-redeemed", "coupon-redemption-canceled", "custom-event", "custom-event-processed", "custom-fields-changed", "customer-bank-account-blocked", "customer-blocked", "customer-comment-created", "customer-created", "customer-merged", "customer-payment-card-blocked", "customer-requested-otp", "customer-tagged", "customer-untagged", "default-payment-instrument-changed", "email-message-sent", "experian-check-performed", "invoice-abandoned", "invoice-created", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-revenue-recognized", "invoice-voided", "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-fulfilled", "lead-source-changed", "order-activated", "order-canceled", "order-churned", "order-completed", "order-created", "order-downgraded", "order-change-applied", "order-change-canceled", "order-change-created", "order-paid-early", "order-reactivated", "order-renewed", "order-trial-ended", "order-upgraded", "payment-card-expiration-was-modified", "payment-card-expired", "payment-instrument-created", "payment-instrument-deactivated", "primary-address-changed", "quickbooks-customer-created", "quickbooks-customer-task-failed", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-order-attached", "quote-recalled", "quote-rejected", "quote-updated", "refund-was-reflected-in-invoices", "subscription-pause-created", "subscription-pause-revoked", "subscription-paused", "subscription-resumed", "subscription-trial-end-changed", "transaction-abandoned", "transaction-amount-discrepancy-found", "transaction-approved", "transaction-canceled", "transaction-declined", "transaction-discrepancy-found", "transaction-disputed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-voided", "transaction-waiting-gateway", "wallet-admin-credited", "wallet-admin-debited"
- `customEventType` (string | null)
  Timeline custom event type. Used with `custom-event` type. This value must be defined using the Create customer timeline custom event type operation.
- `customData` (object)
  Timeline custom event data. Used with `custom-event` type. Transforms to `extraData` two-column table in response.
  Example: {"customAttribute":"customValue","otherAttribute":"otherValue"}
- `message` (string)
  Detailed message description.

## Response 201 fields

- `id` (string)
  ID of the customer timeline custom event.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "account-password-reset-requested", "account-verification-requested", "aml-list-was-possibly-matched", "deposit-request-completed", "deposit-request-created", "deposit-request-expired", "deposit-request-started", "coupon-applied", "coupon-redeemed", "coupon-redemption-canceled", "custom-event", "custom-event-processed", "custom-fields-changed", "customer-bank-account-blocked", "customer-blocked", "customer-comment-created", "customer-created", "customer-merged", "customer-payment-card-blocked", "customer-requested-otp", "customer-tagged", "customer-untagged", "default-payment-instrument-changed", "email-message-sent", "experian-check-performed", "invoice-abandoned", "invoice-created", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-revenue-recognized", "invoice-voided", "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-fulfilled", "lead-source-changed", "order-activated", "order-canceled", "order-churned", "order-completed", "order-created", "order-downgraded", "order-change-applied", "order-change-canceled", "order-change-created", "order-paid-early", "order-reactivated", "order-renewed", "order-trial-ended", "order-upgraded", "payment-card-expiration-was-modified", "payment-card-expired", "payment-instrument-created", "payment-instrument-deactivated", "primary-address-changed", "quickbooks-customer-created", "quickbooks-customer-task-failed", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-order-attached", "quote-recalled", "quote-rejected", "quote-updated", "refund-was-reflected-in-invoices", "subscription-pause-created", "subscription-pause-revoked", "subscription-paused", "subscription-resumed", "subscription-trial-end-changed", "transaction-abandoned", "transaction-amount-discrepancy-found", "transaction-approved", "transaction-canceled", "transaction-declined", "transaction-discrepancy-found", "transaction-disputed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-voided", "transaction-waiting-gateway", "wallet-admin-credited", "wallet-admin-debited"
- `customEventType` (string | null)
  Timeline custom event type. Used with `custom-event` type. This value must be defined using the Create customer timeline custom event type operation.
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Detailed message description.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Customer created

Endpoint: POST customer-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "aml-list-possibly-matched", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-updated"
- `_embedded` (object)
  Embedded objects related to the customer event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer"

# Customer merged

Endpoint: POST customer-merged
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `targetCustomerId` (string)
  ID of the customer that contains the merged data.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "customer-merged"
- `duplicatedCustomer` (object)
  Customer information.
- `duplicatedCustomer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `duplicatedCustomer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `duplicatedCustomer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `duplicatedCustomer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `duplicatedCustomer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `duplicatedCustomer.primaryAddress` (any)
  Customer's primary address.
- `duplicatedCustomer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `duplicatedCustomer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `duplicatedCustomer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `duplicatedCustomer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `duplicatedCustomer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `duplicatedCustomer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `duplicatedCustomer.leadSource` (object)
  Lead source information.
- `duplicatedCustomer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `duplicatedCustomer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `duplicatedCustomer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `duplicatedCustomer.leadSource.term` (string | null)
  Term associated with a lead source.
- `duplicatedCustomer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `duplicatedCustomer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `duplicatedCustomer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `duplicatedCustomer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `duplicatedCustomer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `duplicatedCustomer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `duplicatedCustomer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `duplicatedCustomer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `duplicatedCustomer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded` (object)
  Embedded objects related to the customer merge event.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer"

# Customer one-time-password requested

Endpoint: POST customer-one-time-password-requested
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "aml-list-possibly-matched", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-updated"
- `_embedded` (object)
  Embedded objects related to the customer event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer"

# Customer tax number validated

Endpoint: POST customer-tax-number-validated
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `taxIdNumber` (string)
  Value of the tax number.
  Example: GB980780684
- `taxIdType` (string)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `isValid` (boolean)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "customer-tax-number-validated"
- `_embedded` (object)
  Embedded objects related to the customer tax number validation event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer"

# Customer updated

Endpoint: POST customer-updated
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "aml-list-possibly-matched", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-updated"
- `_embedded` (object)
  Embedded objects related to the customer event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer"

# Merge and delete a customer

Merges one duplicate customer to another target customer and deletes the former.

Endpoint: DELETE /customers/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `targetCustomerId` (string, required)
  ID of the customer that you want to delete. This field is used to obtain the customer's data.

## 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 404 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 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.

# Experian check performed

Endpoint: POST experian-check-performed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `outcome` (integer)
  Check decision where `1` - record matches, `0` - no matches found, `-1` - record mismatches.
  Enum: -1, 0, 1
- `reason` (string)
  Text representation of the outcome.
  Example: Individual has a 90 percent or greater match to forename surname premise postcode with ID verified and DOB
- `errorCode` (string)
  Error code produced by the Experian system.
  Example: 001
- `errorMessage` (string)
  Error message produced by the Experian system.
  Example: Authentication Error: Bad Username or Password
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "experian-check-performed"
- `_embedded` (object)
  Embedded objects related to the Experian check event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer"

# Retrieve a customer

Retrieves a customer with a specified ID.

Endpoint: GET /customers/{id}
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).
- `fields` (string)
  Limits the returned fields to the specified list, each field separated by a comma. The ID value is always returned.

## Response 200 fields

- `id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `email` (string | null)
  Customer's email address.
- `firstName` (string | null)
  Customer's first name.
- `lastName` (string | null)
  Customer's last name.
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `primaryAddress` (any)
  Customer's primary address.
- `company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `company.name` (string | null)
  Name of the company.
- `company.domain` (string)
  Website domain of the company.
- `company.yearFounded` (number | null)
  Founding year of the company.
- `company.industry` (string | null)
  Industry the company is associated with.
- `company.employeesCount` (number | null)
  Number of employees in the company.
- `company.country` (string | null)
  Country where the company is based.
- `company.locality` (string | null)
  Locality or region where the company is based.
- `company._links` (array)
- `company._links.href` (string)
  Link URL.
- `company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `averageValue` (object)
  Average customer value.
- `averageValue.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `tags` (array)
  List of customer tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `taxNumbers` (array | null)
  Tax numbers of the customer.
- `taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `leadSource` (object)
  Lead source information.
- `leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `leadSource.term` (string | null)
  Term associated with a lead source.
- `leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `leadSource.path` (string | null)
  URL from which the lead source originates.
- `leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `leadSource._links` (array)
  Related links.
- `leadSource._links.href` (string)
  Link URL.
- `leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.defaultPaymentInstrument` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (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 404 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.

# Retrieve customers

Retrieves a list of customers.

Endpoint: GET /customers
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).
- `fields` (string)
  Limits the returned fields to the specified list, each field separated by a comma. The ID value is always returned.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `email` (string | null)
  Customer's email address.
- `firstName` (string | null)
  Customer's first name.
- `lastName` (string | null)
  Customer's last name.
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `primaryAddress` (any)
  Customer's primary address.
- `company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `company.name` (string | null)
  Name of the company.
- `company.domain` (string)
  Website domain of the company.
- `company.yearFounded` (number | null)
  Founding year of the company.
- `company.industry` (string | null)
  Industry the company is associated with.
- `company.employeesCount` (number | null)
  Number of employees in the company.
- `company.country` (string | null)
  Country where the company is based.
- `company.locality` (string | null)
  Locality or region where the company is based.
- `company._links` (array)
- `company._links.href` (string)
  Link URL.
- `company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `averageValue` (object)
  Average customer value.
- `averageValue.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `tags` (array)
  List of customer tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `taxNumbers` (array | null)
  Tax numbers of the customer.
- `taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `leadSource` (object)
  Lead source information.
- `leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `leadSource.term` (string | null)
  Term associated with a lead source.
- `leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `leadSource.path` (string | null)
  URL from which the lead source originates.
- `leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `leadSource._links` (array)
  Related links.
- `leadSource._links.href` (string)
  Link URL.
- `leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.defaultPaymentInstrument` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (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.

# Retrieve customer credit balance

Retrieves a customer's credit balance grouped by currency.

Endpoint: GET /customers/{id}/credit-balance
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `balances` (array, required)
  Customer credit balances grouped by currency.
- `balances.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `balances.unallocatedAmount` (number, required)
  Sum of unallocated credit memo amounts for the currency.

## 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 404 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.

# Retrieve a customer's lead source

Retrieves lead source data for a customer with a specified ID.

A lead source is the marketing campaign that generates customer interaction, a sale, or a trial.
For more information, see [Lead source attribution](https://www.rebilly.com/docs/dev-docs/customers/#lead-source-attribution).

Endpoint: GET /customers/{id}/lead-source
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `campaign` (string | null)
  Campaign name of the lead source.
- `term` (string | null)
  Term associated with a lead source.
- `content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `path` (string | null)
  URL from which the lead source originates.
- `referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `original` (object)
  Lead source information.
- `original.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `original.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `original.campaign` (string | null)
  Campaign name of the lead source.
- `original.term` (string | null)
  Term associated with a lead source.
- `original.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `original.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `original.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `original.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `original.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `original.path` (string | null)
  URL from which the lead source originates.
- `original.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `original._links` (array)
  Related links.
- `original._links.href` (string)
  Link URL.
- `original._links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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 404 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.

# Lead source changed

Endpoint: POST lead-source-changed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "aml-list-possibly-matched", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-updated"
- `_embedded` (object)
  Embedded objects related to the customer event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer"

# Create a customer

Creates a new customer and customer ID.

The customer's primary address is used as the default address for payment instruments,
subscriptions, and invoices if none are provided.

If the customer already has an identifier within your system,
and you want to create customer with a predefined ID —
to prevent duplicate customers, use the _Upsert a customer with predefined ID_ operation.
For more information, see [Prevent duplicate customers](/docs/dev-docs/customers#prevent-duplicate-customers).

Endpoint: POST /customers
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `primaryAddress` (any)
  Customer's primary address.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `taxNumbers` (array | null)
  Tax numbers of the customer.
- `taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `leadSource` (object)
  Lead source information.
- `leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `leadSource.term` (string | null)
  Term associated with a lead source.
- `leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `leadSource.path` (string | null)
  URL from which the lead source originates.
- `leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).

## Response 201 fields

- `id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `email` (string | null)
  Customer's email address.
- `firstName` (string | null)
  Customer's first name.
- `lastName` (string | null)
  Customer's last name.
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `primaryAddress` (any)
  Customer's primary address.
- `company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `company.name` (string | null)
  Name of the company.
- `company.domain` (string)
  Website domain of the company.
- `company.yearFounded` (number | null)
  Founding year of the company.
- `company.industry` (string | null)
  Industry the company is associated with.
- `company.employeesCount` (number | null)
  Number of employees in the company.
- `company.country` (string | null)
  Country where the company is based.
- `company.locality` (string | null)
  Locality or region where the company is based.
- `company._links` (array)
- `company._links.href` (string)
  Link URL.
- `company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `averageValue` (object)
  Average customer value.
- `averageValue.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `tags` (array)
  List of customer tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `taxNumbers` (array | null)
  Tax numbers of the customer.
- `taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `leadSource` (object)
  Lead source information.
- `leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `leadSource.term` (string | null)
  Term associated with a lead source.
- `leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `leadSource.path` (string | null)
  URL from which the lead source originates.
- `leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `leadSource._links` (array)
  Related links.
- `leadSource._links.href` (string)
  Link URL.
- `leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.defaultPaymentInstrument` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (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 409 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 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.

# Create a compliance screening report

Creates a compliance screening report that includes Know Your Customer (KYC) and Anti-Money Laundering (AML) results for a customer.
The report is stored as a PDF customer attachment.
Requires the KYC and AML products to be enabled for the organization.

Endpoint: POST /customers/{id}/compliance-screening-report
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the attachment.
  Example: att_0YV7J787J0DW0918MQQMDHWA7M
- `fileId` (string, required)
  ID of the linked file object.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `relatedType` (string, required)
  Linked object type.
  Enum: "credit-memo-timeline-comment", "customer", "customer-timeline-comment", "dispute", "gateway-timeline-comment", "invoice", "invoice-timeline-comment", "order-timeline-comment", "organization", "payment", "payout-request-timeline-comment", "plan", "product", "quote-timeline-comment", "subscription", "transaction", "transaction-timeline-comment"
- `relatedId` (string, required)
  ID of the linked object.
- `name` (string)
  Name of original attachment.
- `description` (string)
  Description of the attachment.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "file"

## 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 404 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 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.

# Upsert a customer

Creates or updates (upserts) a customer with a specified ID.

If the customer already has an identifier within your system,
and you want to create a customer with a specified ID — use this operation to prevent duplicate customers.
For more information, see [Prevent duplicate customers](https://www.rebilly.com/docs/dev-docs/customers#prevent-duplicate-customers).

Endpoint: PUT /customers/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `primaryAddress` (any)
  Customer's primary address.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `taxNumbers` (array | null)
  Tax numbers of the customer.
- `taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `leadSource` (object)
  Lead source information.
- `leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `leadSource.term` (string | null)
  Term associated with a lead source.
- `leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `leadSource.path` (string | null)
  URL from which the lead source originates.
- `leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).

## Response 200 fields

- `id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `email` (string | null)
  Customer's email address.
- `firstName` (string | null)
  Customer's first name.
- `lastName` (string | null)
  Customer's last name.
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `primaryAddress` (any)
  Customer's primary address.
- `company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `company.name` (string | null)
  Name of the company.
- `company.domain` (string)
  Website domain of the company.
- `company.yearFounded` (number | null)
  Founding year of the company.
- `company.industry` (string | null)
  Industry the company is associated with.
- `company.employeesCount` (number | null)
  Number of employees in the company.
- `company.country` (string | null)
  Country where the company is based.
- `company.locality` (string | null)
  Locality or region where the company is based.
- `company._links` (array)
- `company._links.href` (string)
  Link URL.
- `company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `averageValue` (object)
  Average customer value.
- `averageValue.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `tags` (array)
  List of customer tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `taxNumbers` (array | null)
  Tax numbers of the customer.
- `taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `leadSource` (object)
  Lead source information.
- `leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `leadSource.term` (string | null)
  Term associated with a lead source.
- `leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `leadSource.path` (string | null)
  URL from which the lead source originates.
- `leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `leadSource._links` (array)
  Related links.
- `leadSource._links.href` (string)
  Link URL.
- `leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.defaultPaymentInstrument` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (object)

## Response 201 fields

- `id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `email` (string | null)
  Customer's email address.
- `firstName` (string | null)
  Customer's first name.
- `lastName` (string | null)
  Customer's last name.
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `primaryAddress` (any)
  Customer's primary address.
- `company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `company.name` (string | null)
  Name of the company.
- `company.domain` (string)
  Website domain of the company.
- `company.yearFounded` (number | null)
  Founding year of the company.
- `company.industry` (string | null)
  Industry the company is associated with.
- `company.employeesCount` (number | null)
  Number of employees in the company.
- `company.country` (string | null)
  Country where the company is based.
- `company.locality` (string | null)
  Locality or region where the company is based.
- `company._links` (array)
- `company._links.href` (string)
  Link URL.
- `company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `averageValue` (object)
  Average customer value.
- `averageValue.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `tags` (array)
  List of customer tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `taxNumbers` (array | null)
  Tax numbers of the customer.
- `taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `leadSource` (object)
  Lead source information.
- `leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `leadSource.term` (string | null)
  Term associated with a lead source.
- `leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `leadSource.path` (string | null)
  URL from which the lead source originates.
- `leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `leadSource._links` (array)
  Related links.
- `leadSource._links.href` (string)
  Link URL.
- `leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.defaultPaymentInstrument` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (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 409 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 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.

# Create a customer's lead source

Creates a lead source for a customer with a specified ID.

A lead source is the marketing campaign that
generates customer interaction, a sale, or a trial.
For more information, see [Lead source attribution](/docs/dev-docs/lead-source-attribution).

Endpoint: PUT /customers/{id}/lead-source
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `campaign` (string | null)
  Campaign name of the lead source.
- `term` (string | null)
  Term associated with a lead source.
- `content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `path` (string | null)
  URL from which the lead source originates.
- `referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `original` (object)
  Lead source information.
- `original.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `original.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `original.campaign` (string | null)
  Campaign name of the lead source.
- `original.term` (string | null)
  Term associated with a lead source.
- `original.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `original.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `original.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `original.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `original.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `original.path` (string | null)
  URL from which the lead source originates.
- `original.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com

## Response 201 fields

- `medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `campaign` (string | null)
  Campaign name of the lead source.
- `term` (string | null)
  Term associated with a lead source.
- `content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `path` (string | null)
  URL from which the lead source originates.
- `referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `original` (object)
  Lead source information.
- `original.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `original.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `original.campaign` (string | null)
  Campaign name of the lead source.
- `original.term` (string | null)
  Term associated with a lead source.
- `original.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `original.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `original.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `original.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `original.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `original.path` (string | null)
  URL from which the lead source originates.
- `original.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `original._links` (array)
  Related links.
- `original._links.href` (string)
  Link URL.
- `original._links.rel` (string)
  Type of link.
  Enum: "self", "customer"

## 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.

# Disputes

Use these operations to manage disputes.
A dispute occurs when a customer contests a charge to their account.
The dispute and related information is made available to the merchant by the bank or credit card company.
The merchant then has the option to represent the charge and win the case.
This process is called dispute resolution.
If the merchant is unable to represent the charge, the card issuer typically reverses the sale and adds fees on top of the charge.
This process is called a chargeback.

- [GET /disputes](/docs/dev-docs/api/disputes/getdisputecollection.md): Retrieves a list of all disputes.
- [POST /disputes](/docs/dev-docs/api/disputes/postdispute.md): Creates a new dispute.
- [GET /disputes/{id}](/docs/dev-docs/api/disputes/getdispute.md): Retrieves a dispute with a specified ID.
- [PUT /disputes/{id}](/docs/dev-docs/api/disputes/putdispute.md): Creates or updates (upserts) a dispute with a specified ID.
- [POST dispute-created](/docs/dev-docs/api/disputes/dispute-created.md)
- [POST dispute-modified](/docs/dev-docs/api/disputes/dispute-modified.md)

# Dispute created

Endpoint: POST dispute-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `disputeId` (string)
  ID of the dispute.
  Example: dp_0YVCE8J5F2DE58FV0S8YASW4HK
- `transactionId` (string | null)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "dispute-created", "dispute-modified"
- `_embedded` (object)
  Embedded objects related to the dispute event.
- `_embedded.dispute` (object)
- `_embedded.dispute.transactionId` (string | null)
  ID of the disputed transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.dispute.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.dispute.amount` (number)
  Dispute amount.
- `_embedded.dispute.acquirerReferenceNumber` (string | null)
  Acquirer reference number for the dispute.
- `_embedded.dispute.caseId` (string | null)
  Case ID of the dispute.
- `_embedded.dispute.reasonCode` (string | null)
  Code used in the chargeback that describes the reason for the dispute.
- `_embedded.dispute.type` (string)
  Type of dispute.
  Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"
- `_embedded.dispute.status` (string)
  Status of the dispute.
  Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `_embedded.dispute.postedTime` (string)
  Date and time when the dispute is posted.
- `_embedded.dispute.deadlineTime` (string | null)
  Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute.
- `_embedded.transaction` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "dispute", "transaction"

# Dispute modified

Endpoint: POST dispute-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `disputeId` (string)
  ID of the dispute.
  Example: dp_0YVCE8J5F2DE58FV0S8YASW4HK
- `transactionId` (string | null)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "dispute-created", "dispute-modified"
- `_embedded` (object)
  Embedded objects related to the dispute event.
- `_embedded.dispute` (object)
- `_embedded.dispute.transactionId` (string | null)
  ID of the disputed transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.dispute.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.dispute.amount` (number)
  Dispute amount.
- `_embedded.dispute.acquirerReferenceNumber` (string | null)
  Acquirer reference number for the dispute.
- `_embedded.dispute.caseId` (string | null)
  Case ID of the dispute.
- `_embedded.dispute.reasonCode` (string | null)
  Code used in the chargeback that describes the reason for the dispute.
- `_embedded.dispute.type` (string)
  Type of dispute.
  Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"
- `_embedded.dispute.status` (string)
  Status of the dispute.
  Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `_embedded.dispute.postedTime` (string)
  Date and time when the dispute is posted.
- `_embedded.dispute.deadlineTime` (string | null)
  Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute.
- `_embedded.transaction` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "dispute", "transaction"

# Retrieve a dispute

Retrieves a dispute with a specified ID.

Endpoint: GET /disputes/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the dispute.
  Example: dp_0YVCE8J5F2DE58FV0S8YASW4HK
- `customerId` (string | null)
  ID of the customer who is disputing a transaction.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactionId` (string | null)
  ID of the disputed transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Dispute amount.
- `acquirerReferenceNumber` (string | null)
  Acquirer reference number for the dispute.
- `caseId` (string | null)
  Case ID of the dispute.
- `reasonCode` (string | null)
  Code used in the chargeback that describes the reason for the dispute.
- `reasonDescription` (string | null)
  Description of the reason for the dispute.
- `category` (string)
  Category of dispute.
  Enum: "fraud", "authorization", "processing-errors", "consumer-disputes", "uncategorized", "bank-return"
- `type` (string)
  Type of dispute.
  Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"
- `status` (string)
  Status of the dispute.
  Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `postedTime` (string)
  Date and time when the dispute is posted.
- `deadlineTime` (string | null)
  Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute.
- `rawResponse` (string | null)
  Raw response from the payment gateway that processed the disputed transaction.
- `resolvedTime` (string | null)
  Date and time when the dispute is resolved.
- `source` (string | null)
  Source of the dispute.
  Enum: null, "api", "manual", "sftp", "webhook"
- `revision` (integer)
  Number of times the dispute data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "customer", "attachments"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.transaction` (object)
- `_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 404 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.

# Retrieve disputes

Retrieves a list of all disputes.

Endpoint: GET /disputes
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the dispute.
  Example: dp_0YVCE8J5F2DE58FV0S8YASW4HK
- `customerId` (string | null)
  ID of the customer who is disputing a transaction.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactionId` (string | null)
  ID of the disputed transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Dispute amount.
- `acquirerReferenceNumber` (string | null)
  Acquirer reference number for the dispute.
- `caseId` (string | null)
  Case ID of the dispute.
- `reasonCode` (string | null)
  Code used in the chargeback that describes the reason for the dispute.
- `reasonDescription` (string | null)
  Description of the reason for the dispute.
- `category` (string)
  Category of dispute.
  Enum: "fraud", "authorization", "processing-errors", "consumer-disputes", "uncategorized", "bank-return"
- `type` (string)
  Type of dispute.
  Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"
- `status` (string)
  Status of the dispute.
  Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `postedTime` (string)
  Date and time when the dispute is posted.
- `deadlineTime` (string | null)
  Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute.
- `rawResponse` (string | null)
  Raw response from the payment gateway that processed the disputed transaction.
- `resolvedTime` (string | null)
  Date and time when the dispute is resolved.
- `source` (string | null)
  Source of the dispute.
  Enum: null, "api", "manual", "sftp", "webhook"
- `revision` (integer)
  Number of times the dispute data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "customer", "attachments"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.transaction` (object)
- `_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.

# Create a dispute

Creates a new dispute.

Endpoint: POST /disputes
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string, required)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number, required)
  Dispute amount.
- `acquirerReferenceNumber` (string | null)
  Acquirer reference number for the dispute.
- `caseId` (string | null)
  Case ID of the dispute.
- `reasonCode` (string, required)
  Code used in the chargeback that describes the reason for the dispute.
  Enum: "0", "00", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10.1", "10.2", "10.3", "10.4", "10.5", "11.1", "11.2", "11.3", "12", "12.1", "12.2", "12.3", "12.4", "12.5", "12.6", "12.6.1", "12.6.2", "12.7", "13.1", "13.2", "13.3", "13.4", "13.5", "13.6", "13.7", "13.8", "13.9", "30", "31", "34", "35", "37", "40", "41", "42", "46", "47", "49", "50", "51", "53", "54", "55", "56", "57", "59", "60", "62", "63", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "85", "86", "93", "98", "004", "021", "024", "059", "062", "063", "127", "154", "155", "158", "173", "175", "176", "193", "680", "684", "691", "693", "1000", "2001", "2002", "2003", "2004", "2005", "2008", "2011", "2700", "2701", "2702", "2703", "2704", "2705", "2706", "2707", "2708", "2709", "2710", "2713", "2870", "2871", "4807", "4808", "4812", "4831", "4834", "4837", "4840", "4841", "4842", "4846", "4849", "4850", "4853", "4854", "4855", "4859", "4860", "4863", "4870", "4871", "4901", "4902", "4903", "4904", "4905", "4908", "4999", "4534", "4541", "4542", "4550", "4553", "4586", "4752", "4753", "4755", "4865", "4866", "4867", "7010", "7030", "8002", "A", "A01", "A02", "A08", "AL", "AP", "AW", "B", "C", "C02", "C04", "C05", "C08", "C14", "C18", "C28", "C31", "C32", "CA", "CD", "CR", "D", "DA", "DP", "DP1", "EX", "F10", "F14", "F22", "F24", "F29", "F30", "F31", "FR1", "FR2", "FR4", "FR6", "IC", "IN", "IS", "ITA", "LP", "M01", "M10", "M49", "N", "NA", "NC", "P", "P01", "P03", "P04", "P05", "P07", "P08", "P22", "P23", "R03", "R13", "RG", "RM", "RN1", "RN2", "SV", "TF", "TNM", "UA01", "UA02", "UA03", "UA10", "UA11", "UA12", "UA18", "UA20", "UA21", "UA22", "UA23", "UA28", "UA30", "UA31", "UA32", "UA38", "UA99", "bank_cannot_process", "credit_not_processed", "customer_initiated", "debit_not_authorized", "duplicate", "fraudulent", "general", "incorrect_account_details", "insufficient_funds", "merchandise", "non_receipt", "not_as_described", "pre-chargeback-alert", "product_not_received", "product_unacceptable", "special", "subscription_canceled", "unauthorized", "unauthorized_claim", "unrecognized", "MERCHANDISE_OR_SERVICE_NOT_RECEIVED", "MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED", "UNAUTHORISED", "CREDIT_NOT_PROCESSED", "DUPLICATE_TRANSACTION", "INCORRECT_AMOUNT", "PAYMENT_BY_OTHER_MEANS", "CANCELED_RECURRING_BILLING", "PROBLEM_WITH_REMITTANCE", "OTHER"
- `type` (string, required)
  Type of dispute.
  Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"
- `status` (string, required)
  Status of the dispute.
  Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `postedTime` (string, required)
  Date and time when the dispute is posted.
- `deadlineTime` (string | null)
  Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute.

## Response 201 fields

- `id` (string)
  ID of the dispute.
  Example: dp_0YVCE8J5F2DE58FV0S8YASW4HK
- `customerId` (string | null)
  ID of the customer who is disputing a transaction.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactionId` (string | null)
  ID of the disputed transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Dispute amount.
- `acquirerReferenceNumber` (string | null)
  Acquirer reference number for the dispute.
- `caseId` (string | null)
  Case ID of the dispute.
- `reasonCode` (string | null)
  Code used in the chargeback that describes the reason for the dispute.
- `reasonDescription` (string | null)
  Description of the reason for the dispute.
- `category` (string)
  Category of dispute.
  Enum: "fraud", "authorization", "processing-errors", "consumer-disputes", "uncategorized", "bank-return"
- `type` (string)
  Type of dispute.
  Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"
- `status` (string)
  Status of the dispute.
  Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `postedTime` (string)
  Date and time when the dispute is posted.
- `deadlineTime` (string | null)
  Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute.
- `rawResponse` (string | null)
  Raw response from the payment gateway that processed the disputed transaction.
- `resolvedTime` (string | null)
  Date and time when the dispute is resolved.
- `source` (string | null)
  Source of the dispute.
  Enum: null, "api", "manual", "sftp", "webhook"
- `revision` (integer)
  Number of times the dispute data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "customer", "attachments"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.transaction` (object)
- `_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.

# Upsert a dispute

Creates or updates (upserts) a dispute with a specified ID.

Endpoint: PUT /disputes/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `transactionId` (string, required)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number, required)
  Dispute amount.
- `acquirerReferenceNumber` (string | null)
  Acquirer reference number for the dispute.
- `caseId` (string | null)
  Case ID of the dispute.
- `reasonCode` (string, required)
  Code used in the chargeback that describes the reason for the dispute.
  Enum: "0", "00", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10.1", "10.2", "10.3", "10.4", "10.5", "11.1", "11.2", "11.3", "12", "12.1", "12.2", "12.3", "12.4", "12.5", "12.6", "12.6.1", "12.6.2", "12.7", "13.1", "13.2", "13.3", "13.4", "13.5", "13.6", "13.7", "13.8", "13.9", "30", "31", "34", "35", "37", "40", "41", "42", "46", "47", "49", "50", "51", "53", "54", "55", "56", "57", "59", "60", "62", "63", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", "80", "81", "82", "83", "85", "86", "93", "98", "004", "021", "024", "059", "062", "063", "127", "154", "155", "158", "173", "175", "176", "193", "680", "684", "691", "693", "1000", "2001", "2002", "2003", "2004", "2005", "2008", "2011", "2700", "2701", "2702", "2703", "2704", "2705", "2706", "2707", "2708", "2709", "2710", "2713", "2870", "2871", "4807", "4808", "4812", "4831", "4834", "4837", "4840", "4841", "4842", "4846", "4849", "4850", "4853", "4854", "4855", "4859", "4860", "4863", "4870", "4871", "4901", "4902", "4903", "4904", "4905", "4908", "4999", "4534", "4541", "4542", "4550", "4553", "4586", "4752", "4753", "4755", "4865", "4866", "4867", "7010", "7030", "8002", "A", "A01", "A02", "A08", "AL", "AP", "AW", "B", "C", "C02", "C04", "C05", "C08", "C14", "C18", "C28", "C31", "C32", "CA", "CD", "CR", "D", "DA", "DP", "DP1", "EX", "F10", "F14", "F22", "F24", "F29", "F30", "F31", "FR1", "FR2", "FR4", "FR6", "IC", "IN", "IS", "ITA", "LP", "M01", "M10", "M49", "N", "NA", "NC", "P", "P01", "P03", "P04", "P05", "P07", "P08", "P22", "P23", "R03", "R13", "RG", "RM", "RN1", "RN2", "SV", "TF", "TNM", "UA01", "UA02", "UA03", "UA10", "UA11", "UA12", "UA18", "UA20", "UA21", "UA22", "UA23", "UA28", "UA30", "UA31", "UA32", "UA38", "UA99", "bank_cannot_process", "credit_not_processed", "customer_initiated", "debit_not_authorized", "duplicate", "fraudulent", "general", "incorrect_account_details", "insufficient_funds", "merchandise", "non_receipt", "not_as_described", "pre-chargeback-alert", "product_not_received", "product_unacceptable", "special", "subscription_canceled", "unauthorized", "unauthorized_claim", "unrecognized", "MERCHANDISE_OR_SERVICE_NOT_RECEIVED", "MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED", "UNAUTHORISED", "CREDIT_NOT_PROCESSED", "DUPLICATE_TRANSACTION", "INCORRECT_AMOUNT", "PAYMENT_BY_OTHER_MEANS", "CANCELED_RECURRING_BILLING", "PROBLEM_WITH_REMITTANCE", "OTHER"
- `type` (string, required)
  Type of dispute.
  Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"
- `status` (string, required)
  Status of the dispute.
  Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `postedTime` (string, required)
  Date and time when the dispute is posted.
- `deadlineTime` (string | null)
  Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute.

## Response 200 fields

- `id` (string)
  ID of the dispute.
  Example: dp_0YVCE8J5F2DE58FV0S8YASW4HK
- `customerId` (string | null)
  ID of the customer who is disputing a transaction.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactionId` (string | null)
  ID of the disputed transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Dispute amount.
- `acquirerReferenceNumber` (string | null)
  Acquirer reference number for the dispute.
- `caseId` (string | null)
  Case ID of the dispute.
- `reasonCode` (string | null)
  Code used in the chargeback that describes the reason for the dispute.
- `reasonDescription` (string | null)
  Description of the reason for the dispute.
- `category` (string)
  Category of dispute.
  Enum: "fraud", "authorization", "processing-errors", "consumer-disputes", "uncategorized", "bank-return"
- `type` (string)
  Type of dispute.
  Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"
- `status` (string)
  Status of the dispute.
  Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `postedTime` (string)
  Date and time when the dispute is posted.
- `deadlineTime` (string | null)
  Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute.
- `rawResponse` (string | null)
  Raw response from the payment gateway that processed the disputed transaction.
- `resolvedTime` (string | null)
  Date and time when the dispute is resolved.
- `source` (string | null)
  Source of the dispute.
  Enum: null, "api", "manual", "sftp", "webhook"
- `revision` (integer)
  Number of times the dispute data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "customer", "attachments"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.transaction` (object)
- `_embedded.customer` (object)

## Response 201 fields

- `id` (string)
  ID of the dispute.
  Example: dp_0YVCE8J5F2DE58FV0S8YASW4HK
- `customerId` (string | null)
  ID of the customer who is disputing a transaction.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactionId` (string | null)
  ID of the disputed transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Dispute amount.
- `acquirerReferenceNumber` (string | null)
  Acquirer reference number for the dispute.
- `caseId` (string | null)
  Case ID of the dispute.
- `reasonCode` (string | null)
  Code used in the chargeback that describes the reason for the dispute.
- `reasonDescription` (string | null)
  Description of the reason for the dispute.
- `category` (string)
  Category of dispute.
  Enum: "fraud", "authorization", "processing-errors", "consumer-disputes", "uncategorized", "bank-return"
- `type` (string)
  Type of dispute.
  Enum: "information-request", "first-chargeback", "second-chargeback", "arbitration", "fraud", "ethoca-alert", "verifi-alert", "bank-return", "paypal-claim", "representment", "inquiry", "forced-refund", "collaboration"
- `status` (string)
  Status of the dispute.
  Enum: "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `postedTime` (string)
  Date and time when the dispute is posted.
- `deadlineTime` (string | null)
  Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute.
- `rawResponse` (string | null)
  Raw response from the payment gateway that processed the disputed transaction.
- `resolvedTime` (string | null)
  Date and time when the dispute is resolved.
- `source` (string | null)
  Source of the dispute.
  Enum: null, "api", "manual", "sftp", "webhook"
- `revision` (integer)
  Number of times the dispute data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "customer", "attachments"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.transaction` (object)
- `_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.

# Files

Use the file entity to store files and related metadata.
Files can be sorted by size, MIME-type, user-defined tags, and description.

The following methods are available to upload files:
multipart/form-data encoded form, RAW POST —
by sending the file contents as the POST body, and fetching from URL —
by providing the file URL using the 'url' parameter.

Use the attachments entity to link a file to one or multiple objects, such as:
customer, dispute, transaction, order, plan, product, invoice, or timeline comment.
Attachments enable you to quickly find and use files related to specific entities.

- [GET /attachments](/docs/dev-docs/api/files/getattachmentcollection.md): Retrieves a list of attachments. You may sort attachments by: `id`, `name`, `relatedId`, `relatedType`, `fileId`, `createdTime`, and `updatedTime`.
- [POST /attachments](/docs/dev-docs/api/files/postattachment.md): Attaches a file to one or multiple objects, such as: customer, dispute, transaction, order, plan, product, invoice, or timeline comment. Attachments enable you to quickly find and use files related to
- [GET /attachments/{id}](/docs/dev-docs/api/files/getattachment.md): Retrieves an attachment with a specified ID.
- [DELETE /attachments/{id}](/docs/dev-docs/api/files/deleteattachment.md): Deletes an attachment with a specified ID.
- [GET /files](/docs/dev-docs/api/files/getfilecollection.md): Retrieves a list of files.
- [POST /files](/docs/dev-docs/api/files/postfile.md): Creates a file. Additionally, a file can be sent by: - Multipart/form-data POST request: In this request, the file is uploaded and all property names are the same as the JSON names. - File body reques
- [GET /files/{id}](/docs/dev-docs/api/files/getfile.md): Retrieves a file with a specified ID.
- [PUT /files/{id}](/docs/dev-docs/api/files/putfile.md): Updates a file with a specified ID. > **Note:** Files can only be uploaded by POST request. > For more information, see the Create a file operation.
- [DELETE /files/{id}](/docs/dev-docs/api/files/deletefile.md): Deletes a file with a specified ID.
- [GET /files/{id}/download](/docs/dev-docs/api/files/getfiledownload.md): Downloads a file with a specified ID.

# Delete an attachment

Deletes an attachment with a specified ID.

Endpoint: DELETE /attachments/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 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.

# Delete a file

Deletes a file with a specified ID.

Endpoint: DELETE /files/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 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.

# Retrieve an attachment

Retrieves an attachment with a specified ID.

Endpoint: GET /attachments/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the attachment.
  Example: att_0YV7J787J0DW0918MQQMDHWA7M
- `fileId` (string, required)
  ID of the linked file object.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `relatedType` (string, required)
  Linked object type.
  Enum: "credit-memo-timeline-comment", "customer", "customer-timeline-comment", "dispute", "gateway-timeline-comment", "invoice", "invoice-timeline-comment", "order-timeline-comment", "organization", "payment", "payout-request-timeline-comment", "plan", "product", "quote-timeline-comment", "subscription", "transaction", "transaction-timeline-comment"
- `relatedId` (string, required)
  ID of the linked object.
- `name` (string)
  Name of original attachment.
- `description` (string)
  Description of the attachment.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "file"

## 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 404 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.

# Retrieve attachments

Retrieves a list of attachments. You may sort attachments by: `id`,
`name`, `relatedId`, `relatedType`, `fileId`, `createdTime`,
and `updatedTime`.

Endpoint: GET /attachments
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.
- `fields` (string)
  Limits the returned fields to the specified list, each field separated by a comma. The ID value is always returned.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the attachment.
  Example: att_0YV7J787J0DW0918MQQMDHWA7M
- `fileId` (string, required)
  ID of the linked file object.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `relatedType` (string, required)
  Linked object type.
  Enum: "credit-memo-timeline-comment", "customer", "customer-timeline-comment", "dispute", "gateway-timeline-comment", "invoice", "invoice-timeline-comment", "order-timeline-comment", "organization", "payment", "payout-request-timeline-comment", "plan", "product", "quote-timeline-comment", "subscription", "transaction", "transaction-timeline-comment"
- `relatedId` (string, required)
  ID of the linked object.
- `name` (string)
  Name of original attachment.
- `description` (string)
  Description of the attachment.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "file"

## 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.

# Retrieve a file record

Retrieves a file with a specified ID.

Endpoint: GET /files/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `name` (string)
  Original file name.
- `extension` (string)
  File extension.
- `description` (string)
  Description of the file.
- `sourceType` (string | null)
  Source of the file.
  Enum: "upload", "camera", "organization-export", "organization-closure-export", null
- `tags` (array)
  List of tags associated with the file.
- `mime` (string)
  MIME type of the file.
  Enum: "image/png", "image/jpeg", "image/gif", "image/webp", "application/pdf", "application/json", "application/zip", "text/csv"
- `size` (integer)
  File size, in bytes.
- `width` (integer | null)
  Width of the image. This field is applicable to images only.
- `height` (integer | null)
  Height of the image. This field is applicable to images only.
- `sha1` (string)
  Hash sum of the file.
- `exifData` (object | null)
  Collection of EXIF tags contained in the image metadata. This field is applicable to images only.
  Example: {"FileSize":120,"Software":"GIMP 2.4.5"}
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `isPublic` (boolean)
  Specifies if the file is available publicly without authentication. If this value is `true`, the permalink in the `_links` section contains the public URL.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "download", "signedLink", "permalink"

## 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 404 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.

# Retrieve files

Retrieves a list of files.

Endpoint: GET /files
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.
- `fields` (string)
  Limits the returned fields to the specified list, each field separated by a comma. The ID value is always returned.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `name` (string)
  Original file name.
- `extension` (string)
  File extension.
- `description` (string)
  Description of the file.
- `sourceType` (string | null)
  Source of the file.
  Enum: "upload", "camera", "organization-export", "organization-closure-export", null
- `tags` (array)
  List of tags associated with the file.
- `mime` (string)
  MIME type of the file.
  Enum: "image/png", "image/jpeg", "image/gif", "image/webp", "application/pdf", "application/json", "application/zip", "text/csv"
- `size` (integer)
  File size, in bytes.
- `width` (integer | null)
  Width of the image. This field is applicable to images only.
- `height` (integer | null)
  Height of the image. This field is applicable to images only.
- `sha1` (string)
  Hash sum of the file.
- `exifData` (object | null)
  Collection of EXIF tags contained in the image metadata. This field is applicable to images only.
  Example: {"FileSize":120,"Software":"GIMP 2.4.5"}
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `isPublic` (boolean)
  Specifies if the file is available publicly without authentication. If this value is `true`, the permalink in the `_links` section contains the public URL.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "download", "signedLink", "permalink"

## 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.

# Download a file

Downloads a file with a specified ID.

Endpoint: GET /files/{id}/download
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `imageSize` (string)
  Resize image to specified size. Supports any sizes from 10x10 to 2000x2000, in the following format: `{width}x{height}`. If the value is invalid, the image returns the original size. This parameter is ignored for non-image files.

## 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 404 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.

# Create an attachment

Attaches a file to one or multiple objects, such as: customer,
dispute, transaction, order, plan, product, invoice, or timeline
comment. Attachments enable you to quickly find and use files
related to specific entities.

Endpoint: POST /attachments
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `fileId` (string, required)
  ID of the linked file object.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `relatedType` (string, required)
  Linked object type.
  Enum: "credit-memo-timeline-comment", "customer", "customer-timeline-comment", "dispute", "gateway-timeline-comment", "invoice", "invoice-timeline-comment", "order-timeline-comment", "organization", "payment", "payout-request-timeline-comment", "plan", "product", "quote-timeline-comment", "subscription", "transaction", "transaction-timeline-comment"
- `relatedId` (string, required)
  ID of the linked object.
- `name` (string)
  Name of original attachment.
- `description` (string)
  Description of the attachment.

## Response 201 fields

- `id` (string)
  ID of the attachment.
  Example: att_0YV7J787J0DW0918MQQMDHWA7M
- `fileId` (string, required)
  ID of the linked file object.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `relatedType` (string, required)
  Linked object type.
  Enum: "credit-memo-timeline-comment", "customer", "customer-timeline-comment", "dispute", "gateway-timeline-comment", "invoice", "invoice-timeline-comment", "order-timeline-comment", "organization", "payment", "payout-request-timeline-comment", "plan", "product", "quote-timeline-comment", "subscription", "transaction", "transaction-timeline-comment"
- `relatedId` (string, required)
  ID of the linked object.
- `name` (string)
  Name of original attachment.
- `description` (string)
  Description of the attachment.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "file"

## 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 409 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 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.

# Create a file

Creates a file.

Additionally, a file can be sent by:

- Multipart/form-data POST request: In this request,
  the file is uploaded and all property names are the same as the JSON names.
- File body request: In this request,
  the file body is sent as the request body, with the appropriate `Content-Type`.
  No additional properties can be set with the request data.

Permitted file types: `.jpg`, `.png`, `.gif`, `.webp`, and `.pdf`.

When using a publishable API key, only private files can be created.
The files can be modified at a later point or time,
or can be accessed using a secret API key.

Endpoint: POST /files
Version: latest
Security: SecretApiKey, JWT, PublishableApiKey

## Request fields

- `file` (string, required)
  File in base64 encoded format.
  Example: R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=
- `isPublic` (boolean)
  Specifies if the file is available publicly without authentication. If this value is `true`, the permalink in the `_links` section contains the public URL.
  Example: false
- `name` (string)
  File name used for downloading.
  Example: logo.png
- `description` (string)
  Description of the file.
  Example: My file description
- `sourceType` (string | null)
  Source of the file.
  Enum: "upload", "camera", "organization-export", "organization-closure-export", null
- `tags` (array)
  List of tags associated with the file.
  Example: ["test","tags"]
- `url` (string, required)
  URL of the file to upload.
  Example: https://app.rebilly.com/static/gateways/Stripe.png

## Response 201 fields

- `id` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `name` (string)
  Original file name.
- `extension` (string)
  File extension.
- `description` (string)
  Description of the file.
- `sourceType` (string | null)
  Source of the file.
  Enum: "upload", "camera", "organization-export", "organization-closure-export", null
- `tags` (array)
  List of tags associated with the file.
- `mime` (string)
  MIME type of the file.
  Enum: "image/png", "image/jpeg", "image/gif", "image/webp", "application/pdf", "application/json", "application/zip", "text/csv"
- `size` (integer)
  File size, in bytes.
- `width` (integer | null)
  Width of the image. This field is applicable to images only.
- `height` (integer | null)
  Height of the image. This field is applicable to images only.
- `sha1` (string)
  Hash sum of the file.
- `exifData` (object | null)
  Collection of EXIF tags contained in the image metadata. This field is applicable to images only.
  Example: {"FileSize":120,"Software":"GIMP 2.4.5"}
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `isPublic` (boolean)
  Specifies if the file is available publicly without authentication. If this value is `true`, the permalink in the `_links` section contains the public URL.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "download", "signedLink", "permalink"

## 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.

# Update a file

Updates a file with a specified ID.

> **Note:** Files can only be uploaded by POST request.
> For more information, see the Create a file operation.

Endpoint: PUT /files/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `name` (string)
  Original file name.
- `extension` (string)
  File extension.
- `description` (string)
  Description of the file.
- `sourceType` (string | null)
  Source of the file.
  Enum: "upload", "camera", "organization-export", "organization-closure-export", null
- `tags` (array)
  List of tags associated with the file.
- `isPublic` (boolean)
  Specifies if the file is available publicly without authentication. If this value is `true`, the permalink in the `_links` section contains the public URL.

## Response 200 fields

- `id` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `name` (string)
  Original file name.
- `extension` (string)
  File extension.
- `description` (string)
  Description of the file.
- `sourceType` (string | null)
  Source of the file.
  Enum: "upload", "camera", "organization-export", "organization-closure-export", null
- `tags` (array)
  List of tags associated with the file.
- `mime` (string)
  MIME type of the file.
  Enum: "image/png", "image/jpeg", "image/gif", "image/webp", "application/pdf", "application/json", "application/zip", "text/csv"
- `size` (integer)
  File size, in bytes.
- `width` (integer | null)
  Width of the image. This field is applicable to images only.
- `height` (integer | null)
  Height of the image. This field is applicable to images only.
- `sha1` (string)
  Hash sum of the file.
- `exifData` (object | null)
  Collection of EXIF tags contained in the image metadata. This field is applicable to images only.
  Example: {"FileSize":120,"Software":"GIMP 2.4.5"}
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `isPublic` (boolean)
  Specifies if the file is available publicly without authentication. If this value is `true`, the permalink in the `_links` section contains the public URL.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "download", "signedLink", "permalink"

## 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 404 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 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.

# Invoices

Use invoices to bill for the goods or services that you provide.
If your invoice includes subscription items, it also includes the corresponding service periods and prices.

- [GET /invoices](/docs/dev-docs/api/invoices/getinvoicecollection.md): Retrieves a list of invoices. Each invoice in the list includes up to 10 of the most recent transactions in `transactions`. To retrieve transactions for an invoice, use [Retrieve transactions](https:/
- [POST /invoices](/docs/dev-docs/api/invoices/postinvoice.md): Creates an invoice.
- [GET /invoices/{id}](/docs/dev-docs/api/invoices/getinvoice.md): Retrieves an invoice with a specified ID.
- [PUT /invoices/{id}](/docs/dev-docs/api/invoices/putinvoice.md): Creates or updates (upserts) an invoice with a specified ID. Returns a conflict error if the specified ID belongs to an upcoming invoice.
- [GET /invoices/{id}/items](/docs/dev-docs/api/invoices/getinvoiceitemcollection.md): Retrieves invoice items with a specified invoice ID.
- [POST /invoices/{id}/items](/docs/dev-docs/api/invoices/postinvoiceitem.md): Creates an invoice item.
- [GET /invoices/{id}/items/{itemId}](/docs/dev-docs/api/invoices/getinvoiceitem.md): Retrieves an invoice item.
- [PUT /invoices/{id}/items/{itemId}](/docs/dev-docs/api/invoices/putinvoiceitem.md): Updates an invoice item.
- [DELETE /invoices/{id}/items/{itemId}](/docs/dev-docs/api/invoices/deleteinvoiceitem.md): Deletes an invoice item.
- [POST /invoices/{id}/issue](/docs/dev-docs/api/invoices/postinvoiceissuance.md): Issues an invoice with a specified ID. The invoice must be in `draft` status.
- [POST /invoices/{id}/abandon](/docs/dev-docs/api/invoices/postinvoiceabandonment.md): Abandons an invoice with a specified ID. This operation removes credit memo allocations from the invoice. Unused credit returns to the credit memo.
- [POST /invoices/{id}/void](/docs/dev-docs/api/invoices/postinvoicevoid.md): Voids an invoice with a specified ID. This operation removes credit memo allocations from the invoice. Unused credit returns to the credit memo.
- [POST /invoices/{id}/recalculate](/docs/dev-docs/api/invoices/postinvoicerecalculation.md): Recalculates shipping rates, taxes, and discounts on an invoice with a specified ID. One use case for this operation to apply a revoked coupon, or coupon that is redeemed by a customer after the invoi
- [POST /invoices/{id}/reissue](/docs/dev-docs/api/invoices/postinvoicereissuance.md): Reissues an invoice with a specified ID. The status of the invoice must be `unpaid`, `partially paid`, `past due` or `abandoned`.
- [GET /invoices/{id}/transaction-allocations](/docs/dev-docs/api/invoices/getinvoicetransactionallocationcollection.md): Retrieves amounts from a transaction that are allocated as invoice payments.
- [POST /invoices/{id}/allocate-credit-balance](/docs/dev-docs/api/invoices/postinvoiceallocatecreditbalance.md): Allocates existing allocatable credit memos related to the invoice customer. Specific credit memos cannot be provided in the request and are selected automatically. Allocation can be capped with `amou
- [POST invoice-tax-calculation-failed](/docs/dev-docs/api/invoices/invoice-tax-calculation-failed.md)
- [POST invoice-abandoned](/docs/dev-docs/api/invoices/invoice-abandoned.md)
- [POST invoice-created](/docs/dev-docs/api/invoices/invoice-created.md)
- [POST invoice-issued](/docs/dev-docs/api/invoices/invoice-issued.md)
- [POST invoice-modified](/docs/dev-docs/api/invoices/invoice-modified.md)
- [POST invoice-paid](/docs/dev-docs/api/invoices/invoice-paid.md)
- [POST invoice-partially-paid](/docs/dev-docs/api/invoices/invoice-partially-paid.md)
- [POST invoice-refunded](/docs/dev-docs/api/invoices/invoice-refunded.md)
- [POST invoice-partially-refunded](/docs/dev-docs/api/invoices/invoice-partially-refunded.md)
- [POST invoice-past-due](/docs/dev-docs/api/invoices/invoice-past-due.md)
- [POST invoice-past-due-reminder-15-days](/docs/dev-docs/api/invoices/invoice-past-due-reminder-15-days.md): Sends a reminder when an unpaid renewal invoice is 15 days past its due date. The reminder is sent once for that due date, and remains available until 30 days after the due date. For more information,
- [POST invoice-past-due-reminder-30-days](/docs/dev-docs/api/invoices/invoice-past-due-reminder-30-days.md): Sends a reminder when an unpaid renewal invoice is 30 days past its due date. The reminder is sent once for that due date, and remains available until 60 days after the due date. For more information,
- [POST invoice-past-due-reminder-60-days](/docs/dev-docs/api/invoices/invoice-past-due-reminder-60-days.md): Sends a reminder when an unpaid renewal invoice is 60 days past its due date. The reminder is sent once for that due date, and remains available until 90 days after the due date. For more information,
- [POST invoice-past-due-reminder-90-days](/docs/dev-docs/api/invoices/invoice-past-due-reminder-90-days.md): Sends a reminder when an unpaid renewal invoice is 90 days past its due date. The reminder is sent once for that due date, and remains available until 120 days after the due date. For more information
- [POST invoice-reissued](/docs/dev-docs/api/invoices/invoice-reissued.md)
- [POST invoice-voided](/docs/dev-docs/api/invoices/invoice-voided.md)
- [POST renewal-invoice-payment-canceled](/docs/dev-docs/api/invoices/renewal-invoice-payment-canceled.md)
- [POST renewal-invoice-payment-declined](/docs/dev-docs/api/invoices/renewal-invoice-payment-declined.md)
- [POST invoice-past-due-reminder](/docs/dev-docs/api/invoices/invoice-past-due-reminder.md)

# Invoices timeline

Use invoice timelines to maintain an audit trail of changes and activity for each invoice.

- [GET /invoices/{id}/timeline](/docs/dev-docs/api/invoices-timeline/getinvoicetimelinecollection.md): Retrieves a list of invoice timeline messages.
- [POST /invoices/{id}/timeline](/docs/dev-docs/api/invoices-timeline/postinvoicetimeline.md): Creates an invoice timeline comment.
- [GET /invoices/{id}/timeline/{messageId}](/docs/dev-docs/api/invoices-timeline/getinvoicetimeline.md): Retrieves an invoice timeline message with a specified ID.
- [DELETE /invoices/{id}/timeline/{messageId}](/docs/dev-docs/api/invoices-timeline/deleteinvoicetimeline.md): Deletes an invoice timeline message with a specified ID.

# Delete an invoice timeline message

Deletes an invoice timeline message with a specified ID.

Endpoint: DELETE /invoices/{id}/timeline/{messageId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `messageId` (string, required)
  ID of the invoice timeline message.

## 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 404 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 409 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 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.

# Retrieve an invoice timeline message

Retrieves an invoice timeline message with a specified ID.

Endpoint: GET /invoices/{id}/timeline/{messageId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `messageId` (string, required)
  ID of the invoice timeline message.

## Response 200 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "coupon-applied", "email-message-sent", "invoice-abandoned", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-renewal-payment-declined", "invoice-restored", "invoice-revenue-recognized", "invoice-tax-calculation-failed", "invoice-voided", "quickbooks-credit-memo-created", "quickbooks-credit-memo-voided", "quickbooks-invoice-created", "quickbooks-invoice-task-failed", "quickbooks-invoice-updated", "quickbooks-invoice-voided", "quickbooks-revenue-recognition-created", "timeline-comment-created", "transaction-abandoned", "transaction-approved", "transaction-canceled", "transaction-declined", "transaction-initiated", "transaction-partially-refunded", "transaction-refunded", "transaction-voided"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Describes the message details.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve invoice timeline messages

Retrieves a list of invoice timeline messages.

Endpoint: GET /invoices/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "coupon-applied", "email-message-sent", "invoice-abandoned", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-renewal-payment-declined", "invoice-restored", "invoice-revenue-recognized", "invoice-tax-calculation-failed", "invoice-voided", "quickbooks-credit-memo-created", "quickbooks-credit-memo-voided", "quickbooks-invoice-created", "quickbooks-invoice-task-failed", "quickbooks-invoice-updated", "quickbooks-invoice-voided", "quickbooks-revenue-recognition-created", "timeline-comment-created", "transaction-abandoned", "transaction-approved", "transaction-canceled", "transaction-declined", "transaction-initiated", "transaction-partially-refunded", "transaction-refunded", "transaction-voided"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Describes the message details.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create an invoice timeline comment

Creates an invoice timeline comment.

Endpoint: POST /invoices/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `message` (string)
  Describes the message details.

## Response 201 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "coupon-applied", "email-message-sent", "invoice-abandoned", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-renewal-payment-declined", "invoice-restored", "invoice-revenue-recognized", "invoice-tax-calculation-failed", "invoice-voided", "quickbooks-credit-memo-created", "quickbooks-credit-memo-voided", "quickbooks-invoice-created", "quickbooks-invoice-task-failed", "quickbooks-invoice-updated", "quickbooks-invoice-voided", "quickbooks-revenue-recognition-created", "timeline-comment-created", "transaction-abandoned", "transaction-approved", "transaction-canceled", "transaction-declined", "transaction-initiated", "transaction-partially-refunded", "transaction-refunded", "transaction-voided"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Describes the message details.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Delete an invoice item

Deletes an invoice item.

Endpoint: DELETE /invoices/{id}/items/{itemId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `itemId` (string, required)
  ID of the invoice item.

## 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 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.

# Retrieve an invoice

Retrieves an invoice with a specified ID.

Endpoint: GET /invoices/{id}
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Header parameters

- `Accept` (string)
  Type of response media.

## Response 200 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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 404 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.

# Retrieve invoices

Retrieves a list of invoices.
Each invoice in the list includes up to 10 of the most recent transactions in `transactions`.
To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter.
Search results can lag briefly behind a write.

Endpoint: GET /invoices
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of invoices to return. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`. Values greater than `100` are treated as `100`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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.

# Retrieve an invoice item

Retrieves an invoice item.

Endpoint: GET /invoices/{id}/items/{itemId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `itemId` (string, required)
  ID of the invoice item.

## Response 200 fields

- `id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `description` (string)
  Description of the invoice item.
- `unitPrice` (number, required)
  Unit price of the invoice item.
- `quantity` (integer)
  Quantity of the invoice item.
- `price` (number)
  Total price of the invoice item.
- `productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `periodStartTime` (string | null)
  Date and time when the billing period starts.
- `periodEndTime` (string | null)
  Date and time when the billing period ends.
- `periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `tax` (any)
  Invoice item tax.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.product` (object)
- `_embedded.plan` (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.

# Retrieve invoice items

Retrieves invoice items with a specified invoice ID.

Endpoint: GET /invoices/{id}/items
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `description` (string)
  Description of the invoice item.
- `unitPrice` (number, required)
  Unit price of the invoice item.
- `quantity` (integer)
  Quantity of the invoice item.
- `price` (number)
  Total price of the invoice item.
- `productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `periodStartTime` (string | null)
  Date and time when the billing period starts.
- `periodEndTime` (string | null)
  Date and time when the billing period ends.
- `periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `tax` (any)
  Invoice item tax.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.product` (object)
- `_embedded.plan` (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 404 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.

# Retrieve transaction amounts allocations

Retrieves amounts from a transaction that are allocated as invoice payments.

Endpoint: GET /invoices/{id}/transaction-allocations
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.

## Response 200 fields

- `invoiceId` (string)
  Unique resource ID.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `amount` (number)
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "invoice", "transaction"

## 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 404 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.

# Invoice abandoned

Endpoint: POST invoice-abandoned
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice created

Endpoint: POST invoice-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice issued

Endpoint: POST invoice-issued
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice modified

Endpoint: POST invoice-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice paid

Endpoint: POST invoice-paid
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice partially paid

Endpoint: POST invoice-partially-paid
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice partially refunded

Endpoint: POST invoice-partially-refunded
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice past due

Endpoint: POST invoice-past-due
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice past due reminder (deprecated)

Endpoint: POST invoice-past-due-reminder
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Renewal invoice reminder, 15 days past due

Sends a reminder when an unpaid renewal invoice is 15 days past its due date.
The reminder is sent once for that due date,
and remains available until 30 days after the due date.
For more information, see [Invoice past due reminders](https://www.rebilly.com/docs/dev-docs/invoices/#invoice-past-due-reminders).

Endpoint: POST invoice-past-due-reminder-15-days
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days"
- `_embedded` (object)
  Embedded objects related to the invoice event.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Renewal invoice reminder, 30 days past due

Sends a reminder when an unpaid renewal invoice is 30 days past its due date.
The reminder is sent once for that due date,
and remains available until 60 days after the due date.
For more information, see [Invoice past due reminders](https://www.rebilly.com/docs/dev-docs/invoices/#invoice-past-due-reminders).

Endpoint: POST invoice-past-due-reminder-30-days
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days"
- `_embedded` (object)
  Embedded objects related to the invoice event.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Renewal invoice reminder, 60 days past due

Sends a reminder when an unpaid renewal invoice is 60 days past its due date.
The reminder is sent once for that due date,
and remains available until 90 days after the due date.
For more information, see [Invoice past due reminders](https://www.rebilly.com/docs/dev-docs/invoices/#invoice-past-due-reminders).

Endpoint: POST invoice-past-due-reminder-60-days
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days"
- `_embedded` (object)
  Embedded objects related to the invoice event.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Renewal invoice reminder, 90 days past due

Sends a reminder when an unpaid renewal invoice is 90 days past its due date.
The reminder is sent once for that due date,
and remains available until 120 days after the due date.
For more information, see [Invoice past due reminders](https://www.rebilly.com/docs/dev-docs/invoices/#invoice-past-due-reminders).

Endpoint: POST invoice-past-due-reminder-90-days
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days"
- `_embedded` (object)
  Embedded objects related to the invoice event.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice refunded

Endpoint: POST invoice-refunded
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice reissued

Endpoint: POST invoice-reissued
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice tax calculation failed

Endpoint: POST invoice-tax-calculation-failed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `reason` (string)
  Error message explaining tax calculation failure.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-tax-calculation-failed"
- `_embedded` (object)
  Embedded objects related to the invoice tax calculation event.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Invoice voided

Endpoint: POST invoice-voided
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided"
- `_embedded` (object)
  Available embedded objects that are requested by the expand query parameter.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "invoice"

# Create an invoice

Creates an invoice.

Endpoint: POST /invoices
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.

## Response 201 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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.

# Abandon an invoice

Abandons an invoice with a specified ID.
This operation removes credit memo allocations from the invoice.
Unused credit returns to the credit memo.

Endpoint: POST /invoices/{id}/abandon
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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 404 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 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.

# Allocate customer credit balance to an invoice

Allocates existing allocatable credit memos related to the invoice customer.
Specific credit memos cannot be provided in the request and are selected automatically.
Allocation can be capped with `amount`.
Credit memos are applied automatically in the specified allocation order.
If no order is specified, `oldest-first` is used.

Endpoint: POST /invoices/{id}/allocate-credit-balance
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `amount` (number)
  Optional maximum amount to allocate from customer credit memos to the invoice. If provided, allocation is capped at this value. If omitted, the allocated amount is the lesser of: - Invoice unpaid amount. - Available allocatable credit memo balance.
- `allocationOrder` (string)
  Credit memo application order.
  Enum: "oldest-first", "newest-first"

## Response 200 fields

- `invoiceId` (string, required)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `appliedCreditMemos` (array, required)
  List of credit memos applied to the invoice and the amount allocated from each.
- `appliedCreditMemos.creditMemoId` (string, required)
  ID of the credit memo.
  Example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG
- `appliedCreditMemos.amount` (number, required)
  Amount allocated from the credit memo to the invoice.
- `remainingInvoiceAmount` (number, required)
  Remaining amount due on the invoice after credit memo allocation.

## 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 404 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 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.

# Issue an invoice

Issues an invoice with a specified ID.
The invoice must be in `draft` status.

Endpoint: POST /invoices/{id}/issue
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `issuedTime` (string | null)
  Date and time when the invoice is issued. If this field is `null` or omitted, the invoice is issued immediately.
- `dueTime` (string | null)
  Date and time when the invoice is due for payment. If this field is `null` or omitted, this value is set to the `issuedTime` value.

## Response 201 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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 404 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 409 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 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.

# Create an invoice item

Creates an invoice item.

Endpoint: POST /invoices/{id}/items
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `description` (string)
  Description of the invoice item.
- `unitPrice` (number, required)
  Unit price of the invoice item.
- `quantity` (integer)
  Quantity of the invoice item.
- `productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `periodStartTime` (string | null)
  Date and time when the billing period starts.
- `periodEndTime` (string | null)
  Date and time when the billing period ends.
- `periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.

## Response 201 fields

- `id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `description` (string)
  Description of the invoice item.
- `unitPrice` (number, required)
  Unit price of the invoice item.
- `quantity` (integer)
  Quantity of the invoice item.
- `price` (number)
  Total price of the invoice item.
- `productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `periodStartTime` (string | null)
  Date and time when the billing period starts.
- `periodEndTime` (string | null)
  Date and time when the billing period ends.
- `periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `tax` (any)
  Invoice item tax.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.product` (object)
- `_embedded.plan` (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 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.

# Recalculate an invoice

Recalculates shipping rates, taxes, and discounts on an invoice with a specified ID.

One use case for this operation to apply a revoked coupon,
or coupon that is redeemed by a customer after the invoice is issued.

Endpoint: POST /invoices/{id}/recalculate
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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 404 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 409 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 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.

# Reissue an invoice

Reissues an invoice with a specified ID.
The status of the invoice must be `unpaid`, `partially paid`, `past due` or `abandoned`.

Endpoint: POST /invoices/{id}/reissue
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `dueTime` (string | null)
  Date and time when the invoice is due for payment. If this field is `null` or omitted, this value is set to the current date-time.

## Response 201 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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 404 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 409 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 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.

# Void an invoice

Voids an invoice with a specified ID.
This operation removes credit memo allocations from the invoice.
Unused credit returns to the credit memo.

Endpoint: POST /invoices/{id}/void
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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 404 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 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.

# Upsert an invoice

Creates or updates (upserts) an invoice with a specified ID.
Returns a conflict error if the specified ID belongs to an upcoming invoice.

Endpoint: PUT /invoices/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.

## Response 200 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (object)

## Response 201 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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 404 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 409 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 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.

# Update an invoice item

Updates an invoice item.

Endpoint: PUT /invoices/{id}/items/{itemId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `itemId` (string, required)
  ID of the invoice item.

## Request fields

- `type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `description` (string)
  Description of the invoice item.
- `unitPrice` (number, required)
  Unit price of the invoice item.
- `quantity` (integer)
  Quantity of the invoice item.
- `productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `periodStartTime` (string | null)
  Date and time when the billing period starts.
- `periodEndTime` (string | null)
  Date and time when the billing period ends.
- `periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.

## Response 200 fields

- `id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `description` (string)
  Description of the invoice item.
- `unitPrice` (number, required)
  Unit price of the invoice item.
- `quantity` (integer)
  Quantity of the invoice item.
- `price` (number)
  Total price of the invoice item.
- `productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `periodStartTime` (string | null)
  Date and time when the billing period starts.
- `periodEndTime` (string | null)
  Date and time when the billing period ends.
- `periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `tax` (any)
  Invoice item tax.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.product` (object)
- `_embedded.plan` (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 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.

# Renewal invoice payment canceled

Endpoint: POST renewal-invoice-payment-canceled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "renewal-invoice-payment-canceled", "renewal-invoice-payment-declined"
- `_embedded` (object)
  Embedded objects related to the invoice and transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction", "invoice"

# Renewal invoice payment declined

Endpoint: POST renewal-invoice-payment-declined
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "renewal-invoice-payment-canceled", "renewal-invoice-payment-declined"
- `_embedded` (object)
  Embedded objects related to the invoice and transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction", "invoice"

# KYC documents

Use Know Your Customer (KYC) documents to verify your customers identity.
The KYC document operations generate a signed link to the Rebilly [KYC document gatherer](https://www.rebilly.com/docs/kyc-and-aml/kyc-document-gatherer/).

Document types:

- `identity-proof`: Validates a customer's identity.
- `address-proof`: Validates a customer's address.
- `purchase-proof`: Validates a customer's purchase.
- `funds-proof`: Validates that a customer has funds.
- `credit-file-proof`: Verifies that there is an existing credit file with two sources that match the customer's name, DOB, and address.

Rebilly parses and analyzes the documents and accepts or rejects them according to a configurable scoring algorithm.
When all document types in a KYC request are accepted, the status is fulfilled, and the [KYC request fulfilled webhook](https://www.rebilly.com/docs/dev-docs/api/kyc-documents/kyc-request-fulfilled/) is sent.

- [Credit file proof](/docs/dev-docs/api/kyc-documents/credit-file-proof.md): ### Credit file proof The `credit-file-proof` KYC document request type is only available in the API, this option is not available in the [KYC document gatherer](https://www.rebilly.com/docs/kyc-and-a
- [POST /kyc-requests](/docs/dev-docs/api/kyc-documents/postkycrequest.md): Creates a KYC request. The customer is redirected to the `kycGatherer` link. After the customer completes the KYC process, they are redirected back to the `redirectUrl` link. Corresponding webhooks, s
- [GET /kyc-requests](/docs/dev-docs/api/kyc-documents/getkycrequestcollection.md): Retrieves a list of KYC requests.
- [GET /kyc-requests/{id}](/docs/dev-docs/api/kyc-documents/getkycrequest.md): Retrieves a KYC request with a specified ID.
- [GET /kyc-documents](/docs/dev-docs/api/kyc-documents/getkycdocumentcollection.md): Retrieves a list of KYC documents.
- [POST /kyc-documents](/docs/dev-docs/api/kyc-documents/postkycdocument.md): Creates a KYC document.
- [GET /kyc-documents/{id}](/docs/dev-docs/api/kyc-documents/getkycdocument.md): Retrieves a KYC document with a specified ID.
- [PUT /kyc-documents/{id}](/docs/dev-docs/api/kyc-documents/putkycdocument.md): Creates or updates (upserts) a KYC document with a specified ID.
- [POST /kyc-documents/{id}/acceptance](/docs/dev-docs/api/kyc-documents/postkycdocumentacceptance.md): Accepts a KYC document and changes the documents `status` to `accepted`. The review time and reviewer information is also updated. > **Note:** Use this operation for manual overrides.
- [POST /kyc-documents/{id}/matches](/docs/dev-docs/api/kyc-documents/postkycdocumentmatches.md): Updates the document matches of a KYC document with a specified ID. > **Note:** Use this operation for manual overrides. The request body schema depends on the KYC document `documentType`. The operati
- [POST /kyc-documents/{id}/rejection](/docs/dev-docs/api/kyc-documents/postkycdocumentrejection.md): Rejects a KYC document and changes the `status` to `rejected`. The review time and reviewer information is also updated. > **Note:** Use this operation for manual overrides.
- [POST /kyc-documents/{id}/review](/docs/dev-docs/api/kyc-documents/postkycdocumentreview.md): Updates the `reviewTime` and `reviewerId` of a KYC document with a specified ID.
- [POST /kyc-documents/{id}/start-review](/docs/dev-docs/api/kyc-documents/postkycdocumentstartreview.md): Starts the review process of a KYC document with a specified ID. This operation also sets the KYC document `reviewStartTime` to the current date-time, and updates the review information.
- [POST /kyc-documents/{id}/stop-review](/docs/dev-docs/api/kyc-documents/postkycdocumentstopreview.md): Stops the review of a KYC document with a specified ID. This operation also sets the KYC document `reviewStartTime` and the reviewer information to null. Use this operation when the reviewer must stop
- [GET /kyc-settings](/docs/dev-docs/api/kyc-documents/getkycsettings.md): Retrieves KYC settings.
- [PUT /kyc-settings](/docs/dev-docs/api/kyc-documents/putkycsettings.md): Updates KYC settings.
- [POST kyc-document-accepted](/docs/dev-docs/api/kyc-documents/kyc-document-accepted.md)
- [POST kyc-document-created](/docs/dev-docs/api/kyc-documents/kyc-document-created.md)
- [POST kyc-document-modified](/docs/dev-docs/api/kyc-documents/kyc-document-modified.md)
- [POST kyc-document-rejected](/docs/dev-docs/api/kyc-documents/kyc-document-rejected.md)
- [POST kyc-document-reviewed](/docs/dev-docs/api/kyc-documents/kyc-document-reviewed.md)
- [POST kyc-document-archived](/docs/dev-docs/api/kyc-documents/kyc-document-archived.md)
- [POST kyc-request-attempted](/docs/dev-docs/api/kyc-documents/kyc-request-attempted.md)
- [POST kyc-request-failed](/docs/dev-docs/api/kyc-documents/kyc-request-failed.md)
- [POST kyc-request-fulfilled](/docs/dev-docs/api/kyc-documents/kyc-request-fulfilled.md)
- [POST kyc-request-partially-fulfilled](/docs/dev-docs/api/kyc-documents/kyc-request-partially-fulfilled.md)

# Credit file proof

### Credit file proof

The `credit-file-proof` KYC document request type is only available in the API,
this option is not available in the [KYC document gatherer](https://www.rebilly.com/docs/kyc-and-aml/kyc-document-gatherer/).
This request verifies that there is an existing credit file with two sources that match the person's name, date of birth, and address.

In Canada, to meet FINTRAC requirements, the `credit-file-proof` KYC document request verifies the customer's name, address, and date of birth with a credit agency.

If `credit-file-proof` is requested in combination with `identity-proof` and `address-proof`,
`credit-file-proof` is attempted first.
If `credit-file-proof` validates the identity and address,
the KYC request is considered fulfilled.
If the request is not fulfilled,
redirect your customer to the KYC document gatherer to collect their KYC documents.

Version: latest
Security: SecretApiKey, JWT

# Retrieve a KYC document

Retrieves a KYC document with a specified ID.

Endpoint: GET /kyc-documents/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## 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 404 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.

# Retrieve KYC documents

Retrieves a list of KYC documents.

Endpoint: GET /kyc-documents
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## 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.

# Retrieve a KYC request

Retrieves a KYC request with a specified ID.

Endpoint: GET /kyc-requests/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the KYC request.
  Example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `documents` (array, required)
  Documents to request from the customer.
- `documents.type` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documents.subtypes` (array | null)
  Permitted document subtype.
- `documents.maxAttempts` (integer)
  Total number of allowed document upload attempts. Use `0` to allow unlimited upload attempts.
- `documents.faceProofRequired` (boolean)
  Specifies if the customer must upload a photo of their face (selfie) that matches a provided KYC document.
- `documents.faceLivenessRequired` (boolean)
  Specifies if the customer must use the face liveness feature when uploading a selfie. For more information, see [Facial recognition and identity verification](https://www.rebilly.com/docs/kyc-and-aml/kyc#facial-recognition-identity-verification).
- `status` (string)
  Status of the request.
  Enum: "gathering", "attempted", "partial", "pending-review", "fulfilled", "failed", "abandoned", "expired"
- `redirectUrl` (string | null)
  URL where the customer is redirected when a KYC document upload is complete. When the customer is redirected, Rebilly appends an `info` query parameter that has one of the following values: - `back`: Customer clicked the `back to website` link. - `token_expired`: Customer's token expired. - `success`: Customer uploaded KYC documents that have been analyzed. - `manual`: Customer uploaded KYC documents that require a manual review. This is because the analyzer rejected the documents or could not process them. - `partial`: Some of the customer's KYC documents have been analyzed, but other documents have not. For example, this may occur when a proof of address document is analyzed but proof of ID is not. Example: `https://example.com?info=success`.
- `reason` (string | null)
  Reason for uploading.
  Example: spend limit
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC request data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `expirationTime` (string)
  Date and time when the request expires. The default value is one hour in the future.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "documents", "gatherer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.documents` (array)

## 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 404 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.

# Retrieve KYC requests

Retrieves a list of KYC requests.

Endpoint: GET /kyc-requests
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the KYC request.
  Example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `documents` (array, required)
  Documents to request from the customer.
- `documents.type` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documents.subtypes` (array | null)
  Permitted document subtype.
- `documents.maxAttempts` (integer)
  Total number of allowed document upload attempts. Use `0` to allow unlimited upload attempts.
- `documents.faceProofRequired` (boolean)
  Specifies if the customer must upload a photo of their face (selfie) that matches a provided KYC document.
- `documents.faceLivenessRequired` (boolean)
  Specifies if the customer must use the face liveness feature when uploading a selfie. For more information, see [Facial recognition and identity verification](https://www.rebilly.com/docs/kyc-and-aml/kyc#facial-recognition-identity-verification).
- `status` (string)
  Status of the request.
  Enum: "gathering", "attempted", "partial", "pending-review", "fulfilled", "failed", "abandoned", "expired"
- `redirectUrl` (string | null)
  URL where the customer is redirected when a KYC document upload is complete. When the customer is redirected, Rebilly appends an `info` query parameter that has one of the following values: - `back`: Customer clicked the `back to website` link. - `token_expired`: Customer's token expired. - `success`: Customer uploaded KYC documents that have been analyzed. - `manual`: Customer uploaded KYC documents that require a manual review. This is because the analyzer rejected the documents or could not process them. - `partial`: Some of the customer's KYC documents have been analyzed, but other documents have not. For example, this may occur when a proof of address document is analyzed but proof of ID is not. Example: `https://example.com?info=success`.
- `reason` (string | null)
  Reason for uploading.
  Example: spend limit
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC request data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `expirationTime` (string)
  Date and time when the request expires. The default value is one hour in the future.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "documents", "gatherer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.documents` (array)

## 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.

# Retrieve KYC settings

Retrieves KYC settings.

Endpoint: GET /kyc-settings
Version: latest
Security: SecretApiKey, JWT

## Response 200 fields

- `identityProof` (object)
  Identity proof settings.
- `identityProof.weights` (object)
  Property weights that are used for the KYC document verification process. All KYC documents start the verification process with a score of 100. If a check fails, the score is reduced by the corresponding weight. For example, if the `firstName` check weight is set to `5`, and the check fails, the KYC document score becomes `95`.
- `identityProof.weights.containsImage` (integer)
  Weight added if the document does not include an image that contains a face.
- `identityProof.weights.isIdentityDocument` (integer)
  Weight added if the document does not resemble an ID.
- `identityProof.weights.isPublishedOnline` (integer)
  Weight added if an exact match of the document is not found online.
- `identityProof.weights.firstName` (integer)
  Weight added if the customer's first name is not matched.
- `identityProof.weights.lastName` (integer)
  Weight added if the customer's last name is not matched.
- `identityProof.weights.expirationDate` (integer)
  Weight added if an expiration date is not detected on the document.
- `identityProof.weights.dateOfBirth` (integer)
  Weight added if a date of birth is not detected on the document, or if the date of birth detected on the document is not matched.
- `identityProof.weights.issueDate` (integer)
  Weight added if an issue date is not detected on the document.
- `identityProof.weights.hasMinimalAge` (integer)
  Weight added if the document does not verify the minimal age limit. Minimal age is 21+ the for USA and 18+ for all other countries.
- `identityProof.weights.hasMatchingFaceProof` (integer)
  Weight added if an identity document does not have matching face proof.
- `identityProof.weights.nationality` (integer)
  Weight added if a nationality is not detected on the document.
- `identityProof.weights.documentSubtype` (integer)
  Weight added if the document is not one of the recognized document subtypes.
- `identityProof.weights.isTampered` (integer)
  Weight added if the document has been tampered with.
- `identityProof.weights.isPhotocopy` (integer)
  Weight added if the document is detected as a photocopy.
- `identityProof.weights.mrzChecksum` (integer)
  Weight added when MRZ check digits fail validation.
- `identityProof.weights.documentNumber` (integer)
  Weight added if a document number is not detected on the document.
- `identityProof.weights.issuanceCountry` (integer)
  Weight added if the country that issued the document is not detected.
- `identityProof.weights.issuanceRegion` (integer)
  Weight added if the region, state, province, or territory that issued the document is not detected.
- `identityProof.thresholds` (object)
  Pass and fail threshold definition for the document verification process.
- `identityProof.thresholds.rejectBelow` (integer)
  Overall score by which an identity proof document fails the verification process.
- `identityProof.thresholds.acceptAbove` (integer)
  Overall score by which an identity proof document passes the verification process.
- `identityProof.minimumAgeSettings` (object)
  Minimum age settings for identity proof documents.
- `identityProof.minimumAgeSettings.defaultMinimumAge` (integer)
  Default minimum age requirement for identity proof documents. This is used when no location-specific override is configured.
- `identityProof.minimumAgeSettings.locationOverrides` (array)
  Location-specific minimum age. Each item specifies a minimum age for a specific location. For country-wide rules, omit the state field. For state-specific rules, include the state field.
  Example: [{"country":"US","minimumAge":21},{"country":"US","state":"AL","minimumAge":19}]
- `identityProof.minimumAgeSettings.locationOverrides.country` (string, required)
  Country code in ISO 3166 alpha-2 format.
  Example: US
- `identityProof.minimumAgeSettings.locationOverrides.state` (string)
  Name or code of the state or region.
  Example: AZ
- `identityProof.minimumAgeSettings.locationOverrides.minimumAge` (integer, required)
  Minimum age requirement for this location.
  Example: 21
- `identityProof.faceProofSettings` (object)
  Quality requirements for the face proof image of an identity proof document.
- `identityProof.faceProofSettings.minimumBrightness` (integer)
  Minimum brightness of the lighting in the detected face area of the face proof image. The brightness scale ranges from `0` to `100`. A higher value indicates brighter lighting. If the detected brightness is below this value, the `hasMatchingFaceProof` check fails with the `face_match_low_brightness` reason. Use `0` to disable the brightness requirement.
- `addressProof` (object)
  Address proof settings.
- `addressProof.weights` (object)
  Property weights that are used for the KYC document verification process. All KYC documents start the verification process with a score of 100. If a check fails, the score is reduced by the corresponding weight. For example, if the `firstName` check weight is set to `5`, and the check fails, the KYC document score becomes `95`.
- `addressProof.weights.firstName` (integer)
  Weight added if the customer's first name is not matched.
- `addressProof.weights.lastName` (integer)
  Weight added if the customer's last name is not matched.
- `addressProof.weights.line1` (integer)
  Weight added if the customer's address is not matched.
- `addressProof.weights.city` (integer)
  Weight added if the customer's city is not matched.
- `addressProof.weights.region` (integer)
  Weight added if the customer's region is not matched.
- `addressProof.weights.postalCode` (integer)
  Weight added if the customer's postal code is not matched.
- `addressProof.weights.date` (integer)
  Weight added if a date is not detected on the document.
- `addressProof.weights.phone` (integer)
  Weight added if a phone number is not detected on the document.
- `addressProof.weights.documentSubtype` (integer)
  Weight added if the document is not one of the recognized document subtypes.
- `addressProof.weights.isTampered` (integer)
  Weight added if the document has been tampered with.
- `addressProof.thresholds` (object)
  Pass and fail threshold definition for the document verification process.
- `addressProof.thresholds.rejectBelow` (integer)
  Overall score by which an identity proof document fails the verification process.
- `addressProof.thresholds.acceptAbove` (integer)
  Overall score by which an identity proof document passes the verification process.
- `uiVersion` (string | null)
  Version of the KYC document gatherer UI.
  Enum: "1", "2"

## 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 404 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.

# KYC document accepted

Endpoint: POST kyc-document-accepted
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycDocumentId` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileId` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-document-archived"
- `_embedded` (object)
  Embedded objects related to the KYC document event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycDocument` (object)
  KYC document information.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "file", "kycDocument"

# KYC document archived

Endpoint: POST kyc-document-archived
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycDocumentId` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileId` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-document-archived"
- `_embedded` (object)
  Embedded objects related to the KYC document event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycDocument` (object)
  KYC document information.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "file", "kycDocument"

# KYC document created

Endpoint: POST kyc-document-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycDocumentId` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileId` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-document-archived"
- `_embedded` (object)
  Embedded objects related to the KYC document event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycDocument` (object)
  KYC document information.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "file", "kycDocument"

# KYC document modified

Endpoint: POST kyc-document-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycDocumentId` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileId` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-document-archived"
- `_embedded` (object)
  Embedded objects related to the KYC document event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycDocument` (object)
  KYC document information.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "file", "kycDocument"

# KYC document rejected

Endpoint: POST kyc-document-rejected
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycDocumentId` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileId` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-document-archived"
- `_embedded` (object)
  Embedded objects related to the KYC document event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycDocument` (object)
  KYC document information.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "file", "kycDocument"

# KYC document reviewed

Endpoint: POST kyc-document-reviewed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycDocumentId` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileId` (string)
  ID of the file.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-document-accepted", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-document-archived"
- `_embedded` (object)
  Embedded objects related to the KYC document event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycDocument` (object)
  KYC document information.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "file", "kycDocument"

# KYC request attempted

Endpoint: POST kyc-request-attempted
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycRequestId` (string)
  ID of the KYC request.
  Example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled"
- `_embedded` (object)
  Embedded objects related to the KYC request event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycRequest` (object)
  KYC request information.
- `_embedded.kycRequest.documents` (array, required)
  Documents to request from the customer.
- `_embedded.kycRequest.documents.type` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `_embedded.kycRequest.documents.subtypes` (array | null)
  Permitted document subtype.
- `_embedded.kycRequest.documents.maxAttempts` (integer)
  Total number of allowed document upload attempts. Use `0` to allow unlimited upload attempts.
- `_embedded.kycRequest.documents.faceProofRequired` (boolean)
  Specifies if the customer must upload a photo of their face (selfie) that matches a provided KYC document.
- `_embedded.kycRequest.documents.faceLivenessRequired` (boolean)
  Specifies if the customer must use the face liveness feature when uploading a selfie. For more information, see [Facial recognition and identity verification](https://www.rebilly.com/docs/kyc-and-aml/kyc#facial-recognition-identity-verification).
- `_embedded.kycRequest.redirectUrl` (string | null)
  URL where the customer is redirected when a KYC document upload is complete. When the customer is redirected, Rebilly appends an `info` query parameter that has one of the following values: - `back`: Customer clicked the `back to website` link. - `token_expired`: Customer's token expired. - `success`: Customer uploaded KYC documents that have been analyzed. - `manual`: Customer uploaded KYC documents that require a manual review. This is because the analyzer rejected the documents or could not process them. - `partial`: Some of the customer's KYC documents have been analyzed, but other documents have not. For example, this may occur when a proof of address document is analyzed but proof of ID is not. Example: `https://example.com?info=success`.
- `_embedded.kycRequest.reason` (string | null)
  Reason for uploading.
  Example: spend limit
- `_embedded.kycRequest.matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `_embedded.kycRequest.expirationTime` (string)
  Date and time when the request expires. The default value is one hour in the future.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "kycRequest"

# KYC request failed

Endpoint: POST kyc-request-failed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycRequestId` (string)
  ID of the KYC request.
  Example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled"
- `_embedded` (object)
  Embedded objects related to the KYC request event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycRequest` (object)
  KYC request information.
- `_embedded.kycRequest.documents` (array, required)
  Documents to request from the customer.
- `_embedded.kycRequest.documents.type` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `_embedded.kycRequest.documents.subtypes` (array | null)
  Permitted document subtype.
- `_embedded.kycRequest.documents.maxAttempts` (integer)
  Total number of allowed document upload attempts. Use `0` to allow unlimited upload attempts.
- `_embedded.kycRequest.documents.faceProofRequired` (boolean)
  Specifies if the customer must upload a photo of their face (selfie) that matches a provided KYC document.
- `_embedded.kycRequest.documents.faceLivenessRequired` (boolean)
  Specifies if the customer must use the face liveness feature when uploading a selfie. For more information, see [Facial recognition and identity verification](https://www.rebilly.com/docs/kyc-and-aml/kyc#facial-recognition-identity-verification).
- `_embedded.kycRequest.redirectUrl` (string | null)
  URL where the customer is redirected when a KYC document upload is complete. When the customer is redirected, Rebilly appends an `info` query parameter that has one of the following values: - `back`: Customer clicked the `back to website` link. - `token_expired`: Customer's token expired. - `success`: Customer uploaded KYC documents that have been analyzed. - `manual`: Customer uploaded KYC documents that require a manual review. This is because the analyzer rejected the documents or could not process them. - `partial`: Some of the customer's KYC documents have been analyzed, but other documents have not. For example, this may occur when a proof of address document is analyzed but proof of ID is not. Example: `https://example.com?info=success`.
- `_embedded.kycRequest.reason` (string | null)
  Reason for uploading.
  Example: spend limit
- `_embedded.kycRequest.matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `_embedded.kycRequest.expirationTime` (string)
  Date and time when the request expires. The default value is one hour in the future.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "kycRequest"

# KYC request fulfilled

Endpoint: POST kyc-request-fulfilled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycRequestId` (string)
  ID of the KYC request.
  Example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled"
- `_embedded` (object)
  Embedded objects related to the KYC request event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycRequest` (object)
  KYC request information.
- `_embedded.kycRequest.documents` (array, required)
  Documents to request from the customer.
- `_embedded.kycRequest.documents.type` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `_embedded.kycRequest.documents.subtypes` (array | null)
  Permitted document subtype.
- `_embedded.kycRequest.documents.maxAttempts` (integer)
  Total number of allowed document upload attempts. Use `0` to allow unlimited upload attempts.
- `_embedded.kycRequest.documents.faceProofRequired` (boolean)
  Specifies if the customer must upload a photo of their face (selfie) that matches a provided KYC document.
- `_embedded.kycRequest.documents.faceLivenessRequired` (boolean)
  Specifies if the customer must use the face liveness feature when uploading a selfie. For more information, see [Facial recognition and identity verification](https://www.rebilly.com/docs/kyc-and-aml/kyc#facial-recognition-identity-verification).
- `_embedded.kycRequest.redirectUrl` (string | null)
  URL where the customer is redirected when a KYC document upload is complete. When the customer is redirected, Rebilly appends an `info` query parameter that has one of the following values: - `back`: Customer clicked the `back to website` link. - `token_expired`: Customer's token expired. - `success`: Customer uploaded KYC documents that have been analyzed. - `manual`: Customer uploaded KYC documents that require a manual review. This is because the analyzer rejected the documents or could not process them. - `partial`: Some of the customer's KYC documents have been analyzed, but other documents have not. For example, this may occur when a proof of address document is analyzed but proof of ID is not. Example: `https://example.com?info=success`.
- `_embedded.kycRequest.reason` (string | null)
  Reason for uploading.
  Example: spend limit
- `_embedded.kycRequest.matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `_embedded.kycRequest.expirationTime` (string)
  Date and time when the request expires. The default value is one hour in the future.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "kycRequest"

# KYC request partially fulfilled

Endpoint: POST kyc-request-partially-fulfilled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `kycRequestId` (string)
  ID of the KYC request.
  Example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled"
- `_embedded` (object)
  Embedded objects related to the KYC request event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.kycRequest` (object)
  KYC request information.
- `_embedded.kycRequest.documents` (array, required)
  Documents to request from the customer.
- `_embedded.kycRequest.documents.type` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `_embedded.kycRequest.documents.subtypes` (array | null)
  Permitted document subtype.
- `_embedded.kycRequest.documents.maxAttempts` (integer)
  Total number of allowed document upload attempts. Use `0` to allow unlimited upload attempts.
- `_embedded.kycRequest.documents.faceProofRequired` (boolean)
  Specifies if the customer must upload a photo of their face (selfie) that matches a provided KYC document.
- `_embedded.kycRequest.documents.faceLivenessRequired` (boolean)
  Specifies if the customer must use the face liveness feature when uploading a selfie. For more information, see [Facial recognition and identity verification](https://www.rebilly.com/docs/kyc-and-aml/kyc#facial-recognition-identity-verification).
- `_embedded.kycRequest.redirectUrl` (string | null)
  URL where the customer is redirected when a KYC document upload is complete. When the customer is redirected, Rebilly appends an `info` query parameter that has one of the following values: - `back`: Customer clicked the `back to website` link. - `token_expired`: Customer's token expired. - `success`: Customer uploaded KYC documents that have been analyzed. - `manual`: Customer uploaded KYC documents that require a manual review. This is because the analyzer rejected the documents or could not process them. - `partial`: Some of the customer's KYC documents have been analyzed, but other documents have not. For example, this may occur when a proof of address document is analyzed but proof of ID is not. Example: `https://example.com?info=success`.
- `_embedded.kycRequest.reason` (string | null)
  Reason for uploading.
  Example: spend limit
- `_embedded.kycRequest.matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `_embedded.kycRequest.expirationTime` (string)
  Date and time when the request expires. The default value is one hour in the future.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "kycRequest"

# Create a KYC document

Creates a KYC document.

Endpoint: POST /kyc-documents
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `notes` (string | null)
  Reviewer notes.
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `settings` (object | null)
  Settings used to score the document.

## Response 201 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## 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.

# Accept a KYC document

Accepts a KYC document and changes the documents `status` to `accepted`.
The review time and reviewer information is also updated.

> **Note:** Use this operation for manual overrides.

Endpoint: POST /kyc-documents/{id}/acceptance
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## 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 404 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 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.

# Update KYC document matches

Updates the document matches of a KYC document with a specified ID.

> **Note:** Use this operation for manual overrides.

The request body schema depends on the KYC document `documentType`.
The operation rejects unknown fields.

Send `type` with one of:
`identity-proof`, `address-proof`, `purchase-proof`, or `funds-proof`.
The specified value identifies the `type` of the document match.

Endpoint: POST /kyc-documents/{id}/matches
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `type` (string, required)
  Type of KYC document matches. This value identifies the document match type as `identity-proof`.
  Enum: "identity-proof"
- `containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `expiryDate` (string | null)
  Use `expirationDate` field instead.
- `type` (string, required)
  Type of KYC document matches. This value identifies the document match type as `address-proof`.
  Enum: "address-proof"
- `line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `type` (string, required)
  Type of KYC document matches. This value identifies the document match type as `purchase-proof`.
  Enum: "purchase-proof"
- `firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `type` (string, required)
  Type of KYC document matches. This value identifies the document match type as `funds-proof`.
  Enum: "funds-proof"

## 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 404 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 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.

# Reject a KYC document

Rejects a KYC document and changes the `status` to `rejected`.
The review time and reviewer information is also updated.

> **Note:** Use this operation for manual overrides.

Endpoint: POST /kyc-documents/{id}/rejection
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable

## Response 201 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## 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 404 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 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.

# Review a KYC document

Updates the `reviewTime` and `reviewerId` of a KYC document with a specified ID.

Endpoint: POST /kyc-documents/{id}/review
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## 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 404 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 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.

# Start review of a KYC document

Starts the review process of a KYC document with a specified ID.

This operation also sets the KYC document `reviewStartTime` to the current date-time,
and updates the review information.

Endpoint: POST /kyc-documents/{id}/start-review
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## 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 404 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 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.

# Stop review of a KYC document

Stops the review of a KYC document with a specified ID.

This operation also sets the KYC document `reviewStartTime` and the reviewer information to null.
Use this operation when the reviewer must stop the review.
For example, if the reviewer must take a break, or ends a shift.

Endpoint: POST /kyc-documents/{id}/stop-review
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## 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 404 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 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.

# Create a KYC request

Creates a KYC request.

The customer is redirected to the `kycGatherer` link.
After the customer completes the KYC process,
they are redirected back to the `redirectUrl` link.

Corresponding webhooks, such as: KYC document accepted and KYC document rejected,
are sent to the subscribers.

When the complete list of documents is received and accepted,
the KYC request fulfilled webhook is sent to subscribers.

If a `credit-file-proof` request is successful,
it returns a `decision` value of `single-source` or `dual-source`.
The corresponding `identity-proof` and `address-proof` documents are not requested.

Endpoint: POST /kyc-requests
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `documents` (array, required)
  Documents to request from the customer.
- `documents.type` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documents.subtypes` (array | null)
  Permitted document subtype.
- `documents.maxAttempts` (integer)
  Total number of allowed document upload attempts. Use `0` to allow unlimited upload attempts.
- `documents.faceProofRequired` (boolean)
  Specifies if the customer must upload a photo of their face (selfie) that matches a provided KYC document.
- `documents.faceLivenessRequired` (boolean)
  Specifies if the customer must use the face liveness feature when uploading a selfie. For more information, see [Facial recognition and identity verification](https://www.rebilly.com/docs/kyc-and-aml/kyc#facial-recognition-identity-verification).
- `redirectUrl` (string | null)
  URL where the customer is redirected when a KYC document upload is complete. When the customer is redirected, Rebilly appends an `info` query parameter that has one of the following values: - `back`: Customer clicked the `back to website` link. - `token_expired`: Customer's token expired. - `success`: Customer uploaded KYC documents that have been analyzed. - `manual`: Customer uploaded KYC documents that require a manual review. This is because the analyzer rejected the documents or could not process them. - `partial`: Some of the customer's KYC documents have been analyzed, but other documents have not. For example, this may occur when a proof of address document is analyzed but proof of ID is not. Example: `https://example.com?info=success`.
- `reason` (string | null)
  Reason for uploading.
  Example: spend limit
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `expirationTime` (string)
  Date and time when the request expires. The default value is one hour in the future.

## Response 201 fields

- `id` (string)
  ID of the KYC request.
  Example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `documents` (array, required)
  Documents to request from the customer.
- `documents.type` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documents.subtypes` (array | null)
  Permitted document subtype.
- `documents.maxAttempts` (integer)
  Total number of allowed document upload attempts. Use `0` to allow unlimited upload attempts.
- `documents.faceProofRequired` (boolean)
  Specifies if the customer must upload a photo of their face (selfie) that matches a provided KYC document.
- `documents.faceLivenessRequired` (boolean)
  Specifies if the customer must use the face liveness feature when uploading a selfie. For more information, see [Facial recognition and identity verification](https://www.rebilly.com/docs/kyc-and-aml/kyc#facial-recognition-identity-verification).
- `status` (string)
  Status of the request.
  Enum: "gathering", "attempted", "partial", "pending-review", "fulfilled", "failed", "abandoned", "expired"
- `redirectUrl` (string | null)
  URL where the customer is redirected when a KYC document upload is complete. When the customer is redirected, Rebilly appends an `info` query parameter that has one of the following values: - `back`: Customer clicked the `back to website` link. - `token_expired`: Customer's token expired. - `success`: Customer uploaded KYC documents that have been analyzed. - `manual`: Customer uploaded KYC documents that require a manual review. This is because the analyzer rejected the documents or could not process them. - `partial`: Some of the customer's KYC documents have been analyzed, but other documents have not. For example, this may occur when a proof of address document is analyzed but proof of ID is not. Example: `https://example.com?info=success`.
- `reason` (string | null)
  Reason for uploading.
  Example: spend limit
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC request data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `expirationTime` (string)
  Date and time when the request expires. The default value is one hour in the future.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "documents", "gatherer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.documents` (array)

## 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.

# Upsert a KYC document

Creates or updates (upserts) a KYC document with a specified ID.

Endpoint: PUT /kyc-documents/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `notes` (string | null)
  Reviewer notes.
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `settings` (object | null)
  Settings used to score the document.

## Response 200 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## Response 201 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## 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 404 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 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.

# Update KYC settings

Updates KYC settings.

Endpoint: PUT /kyc-settings
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `identityProof` (object)
  Identity proof settings.
- `identityProof.weights` (object)
  Property weights that are used for the KYC document verification process. All KYC documents start the verification process with a score of 100. If a check fails, the score is reduced by the corresponding weight. For example, if the `firstName` check weight is set to `5`, and the check fails, the KYC document score becomes `95`.
- `identityProof.weights.containsImage` (integer)
  Weight added if the document does not include an image that contains a face.
- `identityProof.weights.isIdentityDocument` (integer)
  Weight added if the document does not resemble an ID.
- `identityProof.weights.isPublishedOnline` (integer)
  Weight added if an exact match of the document is not found online.
- `identityProof.weights.firstName` (integer)
  Weight added if the customer's first name is not matched.
- `identityProof.weights.lastName` (integer)
  Weight added if the customer's last name is not matched.
- `identityProof.weights.expirationDate` (integer)
  Weight added if an expiration date is not detected on the document.
- `identityProof.weights.dateOfBirth` (integer)
  Weight added if a date of birth is not detected on the document, or if the date of birth detected on the document is not matched.
- `identityProof.weights.issueDate` (integer)
  Weight added if an issue date is not detected on the document.
- `identityProof.weights.hasMinimalAge` (integer)
  Weight added if the document does not verify the minimal age limit. Minimal age is 21+ the for USA and 18+ for all other countries.
- `identityProof.weights.hasMatchingFaceProof` (integer)
  Weight added if an identity document does not have matching face proof.
- `identityProof.weights.nationality` (integer)
  Weight added if a nationality is not detected on the document.
- `identityProof.weights.documentSubtype` (integer)
  Weight added if the document is not one of the recognized document subtypes.
- `identityProof.weights.isTampered` (integer)
  Weight added if the document has been tampered with.
- `identityProof.weights.isPhotocopy` (integer)
  Weight added if the document is detected as a photocopy.
- `identityProof.weights.mrzChecksum` (integer)
  Weight added when MRZ check digits fail validation.
- `identityProof.weights.documentNumber` (integer)
  Weight added if a document number is not detected on the document.
- `identityProof.weights.issuanceCountry` (integer)
  Weight added if the country that issued the document is not detected.
- `identityProof.weights.issuanceRegion` (integer)
  Weight added if the region, state, province, or territory that issued the document is not detected.
- `identityProof.thresholds` (object)
  Pass and fail threshold definition for the document verification process.
- `identityProof.thresholds.rejectBelow` (integer)
  Overall score by which an identity proof document fails the verification process.
- `identityProof.thresholds.acceptAbove` (integer)
  Overall score by which an identity proof document passes the verification process.
- `identityProof.minimumAgeSettings` (object)
  Minimum age settings for identity proof documents.
- `identityProof.minimumAgeSettings.defaultMinimumAge` (integer)
  Default minimum age requirement for identity proof documents. This is used when no location-specific override is configured.
- `identityProof.minimumAgeSettings.locationOverrides` (array)
  Location-specific minimum age. Each item specifies a minimum age for a specific location. For country-wide rules, omit the state field. For state-specific rules, include the state field.
  Example: [{"country":"US","minimumAge":21},{"country":"US","state":"AL","minimumAge":19}]
- `identityProof.minimumAgeSettings.locationOverrides.country` (string, required)
  Country code in ISO 3166 alpha-2 format.
  Example: US
- `identityProof.minimumAgeSettings.locationOverrides.state` (string)
  Name or code of the state or region.
  Example: AZ
- `identityProof.minimumAgeSettings.locationOverrides.minimumAge` (integer, required)
  Minimum age requirement for this location.
  Example: 21
- `identityProof.faceProofSettings` (object)
  Quality requirements for the face proof image of an identity proof document.
- `identityProof.faceProofSettings.minimumBrightness` (integer)
  Minimum brightness of the lighting in the detected face area of the face proof image. The brightness scale ranges from `0` to `100`. A higher value indicates brighter lighting. If the detected brightness is below this value, the `hasMatchingFaceProof` check fails with the `face_match_low_brightness` reason. Use `0` to disable the brightness requirement.
- `addressProof` (object)
  Address proof settings.
- `addressProof.weights` (object)
  Property weights that are used for the KYC document verification process. All KYC documents start the verification process with a score of 100. If a check fails, the score is reduced by the corresponding weight. For example, if the `firstName` check weight is set to `5`, and the check fails, the KYC document score becomes `95`.
- `addressProof.weights.firstName` (integer)
  Weight added if the customer's first name is not matched.
- `addressProof.weights.lastName` (integer)
  Weight added if the customer's last name is not matched.
- `addressProof.weights.line1` (integer)
  Weight added if the customer's address is not matched.
- `addressProof.weights.city` (integer)
  Weight added if the customer's city is not matched.
- `addressProof.weights.region` (integer)
  Weight added if the customer's region is not matched.
- `addressProof.weights.postalCode` (integer)
  Weight added if the customer's postal code is not matched.
- `addressProof.weights.date` (integer)
  Weight added if a date is not detected on the document.
- `addressProof.weights.phone` (integer)
  Weight added if a phone number is not detected on the document.
- `addressProof.weights.documentSubtype` (integer)
  Weight added if the document is not one of the recognized document subtypes.
- `addressProof.weights.isTampered` (integer)
  Weight added if the document has been tampered with.
- `addressProof.thresholds` (object)
  Pass and fail threshold definition for the document verification process.
- `addressProof.thresholds.rejectBelow` (integer)
  Overall score by which an identity proof document fails the verification process.
- `addressProof.thresholds.acceptAbove` (integer)
  Overall score by which an identity proof document passes the verification process.
- `uiVersion` (string | null)
  Version of the KYC document gatherer UI.
  Enum: "1", "2"

## Response 200 fields

- `identityProof` (object)
  Identity proof settings.
- `identityProof.weights` (object)
  Property weights that are used for the KYC document verification process. All KYC documents start the verification process with a score of 100. If a check fails, the score is reduced by the corresponding weight. For example, if the `firstName` check weight is set to `5`, and the check fails, the KYC document score becomes `95`.
- `identityProof.weights.containsImage` (integer)
  Weight added if the document does not include an image that contains a face.
- `identityProof.weights.isIdentityDocument` (integer)
  Weight added if the document does not resemble an ID.
- `identityProof.weights.isPublishedOnline` (integer)
  Weight added if an exact match of the document is not found online.
- `identityProof.weights.firstName` (integer)
  Weight added if the customer's first name is not matched.
- `identityProof.weights.lastName` (integer)
  Weight added if the customer's last name is not matched.
- `identityProof.weights.expirationDate` (integer)
  Weight added if an expiration date is not detected on the document.
- `identityProof.weights.dateOfBirth` (integer)
  Weight added if a date of birth is not detected on the document, or if the date of birth detected on the document is not matched.
- `identityProof.weights.issueDate` (integer)
  Weight added if an issue date is not detected on the document.
- `identityProof.weights.hasMinimalAge` (integer)
  Weight added if the document does not verify the minimal age limit. Minimal age is 21+ the for USA and 18+ for all other countries.
- `identityProof.weights.hasMatchingFaceProof` (integer)
  Weight added if an identity document does not have matching face proof.
- `identityProof.weights.nationality` (integer)
  Weight added if a nationality is not detected on the document.
- `identityProof.weights.documentSubtype` (integer)
  Weight added if the document is not one of the recognized document subtypes.
- `identityProof.weights.isTampered` (integer)
  Weight added if the document has been tampered with.
- `identityProof.weights.isPhotocopy` (integer)
  Weight added if the document is detected as a photocopy.
- `identityProof.weights.mrzChecksum` (integer)
  Weight added when MRZ check digits fail validation.
- `identityProof.weights.documentNumber` (integer)
  Weight added if a document number is not detected on the document.
- `identityProof.weights.issuanceCountry` (integer)
  Weight added if the country that issued the document is not detected.
- `identityProof.weights.issuanceRegion` (integer)
  Weight added if the region, state, province, or territory that issued the document is not detected.
- `identityProof.thresholds` (object)
  Pass and fail threshold definition for the document verification process.
- `identityProof.thresholds.rejectBelow` (integer)
  Overall score by which an identity proof document fails the verification process.
- `identityProof.thresholds.acceptAbove` (integer)
  Overall score by which an identity proof document passes the verification process.
- `identityProof.minimumAgeSettings` (object)
  Minimum age settings for identity proof documents.
- `identityProof.minimumAgeSettings.defaultMinimumAge` (integer)
  Default minimum age requirement for identity proof documents. This is used when no location-specific override is configured.
- `identityProof.minimumAgeSettings.locationOverrides` (array)
  Location-specific minimum age. Each item specifies a minimum age for a specific location. For country-wide rules, omit the state field. For state-specific rules, include the state field.
  Example: [{"country":"US","minimumAge":21},{"country":"US","state":"AL","minimumAge":19}]
- `identityProof.minimumAgeSettings.locationOverrides.country` (string, required)
  Country code in ISO 3166 alpha-2 format.
  Example: US
- `identityProof.minimumAgeSettings.locationOverrides.state` (string)
  Name or code of the state or region.
  Example: AZ
- `identityProof.minimumAgeSettings.locationOverrides.minimumAge` (integer, required)
  Minimum age requirement for this location.
  Example: 21
- `identityProof.faceProofSettings` (object)
  Quality requirements for the face proof image of an identity proof document.
- `identityProof.faceProofSettings.minimumBrightness` (integer)
  Minimum brightness of the lighting in the detected face area of the face proof image. The brightness scale ranges from `0` to `100`. A higher value indicates brighter lighting. If the detected brightness is below this value, the `hasMatchingFaceProof` check fails with the `face_match_low_brightness` reason. Use `0` to disable the brightness requirement.
- `addressProof` (object)
  Address proof settings.
- `addressProof.weights` (object)
  Property weights that are used for the KYC document verification process. All KYC documents start the verification process with a score of 100. If a check fails, the score is reduced by the corresponding weight. For example, if the `firstName` check weight is set to `5`, and the check fails, the KYC document score becomes `95`.
- `addressProof.weights.firstName` (integer)
  Weight added if the customer's first name is not matched.
- `addressProof.weights.lastName` (integer)
  Weight added if the customer's last name is not matched.
- `addressProof.weights.line1` (integer)
  Weight added if the customer's address is not matched.
- `addressProof.weights.city` (integer)
  Weight added if the customer's city is not matched.
- `addressProof.weights.region` (integer)
  Weight added if the customer's region is not matched.
- `addressProof.weights.postalCode` (integer)
  Weight added if the customer's postal code is not matched.
- `addressProof.weights.date` (integer)
  Weight added if a date is not detected on the document.
- `addressProof.weights.phone` (integer)
  Weight added if a phone number is not detected on the document.
- `addressProof.weights.documentSubtype` (integer)
  Weight added if the document is not one of the recognized document subtypes.
- `addressProof.weights.isTampered` (integer)
  Weight added if the document has been tampered with.
- `addressProof.thresholds` (object)
  Pass and fail threshold definition for the document verification process.
- `addressProof.thresholds.rejectBelow` (integer)
  Overall score by which an identity proof document fails the verification process.
- `addressProof.thresholds.acceptAbove` (integer)
  Overall score by which an identity proof document passes the verification process.
- `uiVersion` (string | null)
  Version of the KYC document gatherer UI.
  Enum: "1", "2"

## 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 404 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 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.

# Orders

Use these operations to manage orders that include items with mixed recurring subscription plans.

- [GET /orders](/docs/dev-docs/api/orders/getordercollection.md): Retrieves a collection of orders.
- [POST /orders](/docs/dev-docs/api/orders/postorder.md): Creates an order.
- [GET /orders/{id}](/docs/dev-docs/api/orders/getorder.md): Retrieves an order with a specified ID.
- [PUT /orders/{id}](/docs/dev-docs/api/orders/putorder.md): Creates or updates (upserts) an order with a specified ID.
- [GET /orders/{id}/upcoming-invoice](/docs/dev-docs/api/orders/getorderupcominginvoice.md): Retrieves an upcoming invoice for a specified order. An upcoming invoice is an invoice that has not been issued. It functions as a preview of the next invoice for the order. For more information, see 
- [GET /order-pauses](/docs/dev-docs/api/orders/getorderpausecollection.md): Retrieves a list of order pauses.
- [POST /order-pauses](/docs/dev-docs/api/orders/postorderpause.md): Pauses an order with a specified ID.
- [GET /order-pauses/{id}](/docs/dev-docs/api/orders/getorderpause.md): Retrieves an order pause with a specified ID.
- [PUT /order-pauses/{id}](/docs/dev-docs/api/orders/putorderpause.md): Updates an order pause with a specified ID.
- [DELETE /order-pauses/{id}](/docs/dev-docs/api/orders/deleteorderpause.md): Deletes an order pause with a specified ID. If the specified pause is `pending`, it is `revoked`. If the specified pause is `ongoing`, it is `finished`.
- [GET /order-changes](/docs/dev-docs/api/orders/getorderchangecollection.md): Retrieves a list of order changes. To find the pending change of an order, use `filter=orderId:{orderId};status:pending`.
- [POST /order-changes](/docs/dev-docs/api/orders/postorderchange.md): Changes the items of an order immediately, or schedules the change for the next renewal.
- [GET /order-changes/{id}](/docs/dev-docs/api/orders/getorderchange.md): Retrieves an order change with a specified ID.
- [PUT /order-changes/{id}](/docs/dev-docs/api/orders/putorderchange.md): Creates an order change with a specified ID, or replaces the items of a pending order change. A change that is not pending cannot be updated.
- [DELETE /order-changes/{id}](/docs/dev-docs/api/orders/deleteorderchange.md): Cancels a pending order change with a specified ID. The current items of the order stay as they are. A change cannot be canceled after it is locked by an issued invoice, applied, canceled, or supersed
- [GET /order-cancellations](/docs/dev-docs/api/orders/getordercancellationcollection.md): Retrieves a list of order cancellations.
- [POST /order-cancellations](/docs/dev-docs/api/orders/postordercancellation.md): Cancels an order.
- [GET /order-cancellations/{id}](/docs/dev-docs/api/orders/getordercancellation.md): Retrieves an order cancellation with a specified ID.
- [GET /order-reactivations](/docs/dev-docs/api/orders/getorderreactivationcollection.md): Retrieves a list of order reactivations.
- [GET /order-reactivations/{id}](/docs/dev-docs/api/orders/getorderreactivation.md): Retrieves an order reactivation with a specified ID.
- [POST /orders/{id}/void](/docs/dev-docs/api/orders/postordervoid.md): Voids a pending order with a specified ID.
- [POST /orders/{id}/change-items](/docs/dev-docs/api/orders/postorderitemschange.md): Changes order items or quantities and specifies if and when to give pro rata credits. To change the items at the next renewal, use the `POST /order-changes` operation with `applyAt` set to `nextRenewa
- [PATCH /orders/{id}/items/{itemId}](/docs/dev-docs/api/orders/patchorderitem.md): Updates an order item. This is an experimental endpoint and may be changed or removed in the future.
- [POST /orders/{id}/interim-invoice](/docs/dev-docs/api/orders/postorderinteriminvoice.md): Issues an interim invoice for an order. Use this operation for plan changes and pro rata adjustments. This process: - Creates an invoice. - Adds the order line items to the invoice. - Issues the invoi
- [POST /orders/{id}/upcoming-invoice/issue](/docs/dev-docs/api/orders/postorderupcominginvoiceissuance.md): Issues an upcoming invoice, for an order with a specified ID, for early pay.
- [POST orders-experimental-hard-usage-limit-reached](/docs/dev-docs/api/orders/orders-experimental-hard-usage-limit-reached.md)
- [POST orders-experimental-order-abandoned](/docs/dev-docs/api/orders/orders-experimental-order-abandoned.md)
- [POST orders-experimental-order-completed](/docs/dev-docs/api/orders/orders-experimental-order-completed.md)
- [POST orders-experimental-renewal-invoice-issued](/docs/dev-docs/api/orders/orders-experimental-renewal-invoice-issued.md)
- [POST orders-experimental-soft-usage-limit-reached](/docs/dev-docs/api/orders/orders-experimental-soft-usage-limit-reached.md)
- [POST orders-experimental-subscription-activated](/docs/dev-docs/api/orders/orders-experimental-subscription-activated.md)
- [POST orders-experimental-subscription-canceled](/docs/dev-docs/api/orders/orders-experimental-subscription-canceled.md)
- [POST orders-experimental-subscription-churned](/docs/dev-docs/api/orders/orders-experimental-subscription-churned.md)
- [POST orders-experimental-subscription-created](/docs/dev-docs/api/orders/orders-experimental-subscription-created.md)
- [POST orders-experimental-subscription-downgraded](/docs/dev-docs/api/orders/orders-experimental-subscription-downgraded.md)
- [POST orders-experimental-subscription-items-changed](/docs/dev-docs/api/orders/orders-experimental-subscription-items-changed.md)
- [POST orders-experimental-subscription-modified](/docs/dev-docs/api/orders/orders-experimental-subscription-modified.md)
- [POST orders-experimental-subscription-quantity-filled-limit-reached](/docs/dev-docs/api/orders/orders-experimental-subscription-quantity-filled-limit-reached.md)
- [POST orders-experimental-subscription-reactivated](/docs/dev-docs/api/orders/orders-experimental-subscription-reactivated.md)
- [POST subscription-renewal-reminder-30-days](/docs/dev-docs/api/orders/subscription-renewal-reminder-30-days.md): Sends a reminder when an active order that contains subscription items is 30 days from renewal. The reminder is sent only when the recurring interval of the order is 90 days or more. The reminder is n
- [POST subscription-renewal-reminder-7-days](/docs/dev-docs/api/orders/subscription-renewal-reminder-7-days.md): Sends a reminder when an active order that contains subscription items is 7 days from renewal. The reminder is sent only when the recurring interval of the order is 14 days or more. The reminder is no
- [POST subscription-renewal-reminder-1-day](/docs/dev-docs/api/orders/subscription-renewal-reminder-1-day.md): Sends a reminder when an active order that contains subscription items is 1 day from renewal. The reminder is sent only when the recurring interval of the order is longer than 1 day. The reminder is n
- [POST orders-experimental-subscription-renewed](/docs/dev-docs/api/orders/orders-experimental-subscription-renewed.md)
- [POST orders-experimental-subscription-trial-converted](/docs/dev-docs/api/orders/orders-experimental-subscription-trial-converted.md)
- [POST orders-experimental-subscription-trial-end-reminder](/docs/dev-docs/api/orders/orders-experimental-subscription-trial-end-reminder.md)
- [POST orders-experimental-subscription-trial-ended](/docs/dev-docs/api/orders/orders-experimental-subscription-trial-ended.md)
- [POST orders-experimental-subscription-upgraded](/docs/dev-docs/api/orders/orders-experimental-subscription-upgraded.md)
- [POST orders-experimental-subscription-paused](/docs/dev-docs/api/orders/orders-experimental-subscription-paused.md)
- [POST orders-experimental-subscription-pause-created](/docs/dev-docs/api/orders/orders-experimental-subscription-pause-created.md)
- [POST orders-experimental-subscription-pause-modified](/docs/dev-docs/api/orders/orders-experimental-subscription-pause-modified.md)
- [POST orders-experimental-subscription-pause-revoked](/docs/dev-docs/api/orders/orders-experimental-subscription-pause-revoked.md)
- [POST orders-experimental-order-change-created](/docs/dev-docs/api/orders/orders-experimental-order-change-created.md)
- [POST orders-experimental-order-change-canceled](/docs/dev-docs/api/orders/orders-experimental-order-change-canceled.md)
- [POST orders-experimental-order-change-applied](/docs/dev-docs/api/orders/orders-experimental-order-change-applied.md)
- [POST orders-experimental-subscription-resumed](/docs/dev-docs/api/orders/orders-experimental-subscription-resumed.md)
- [POST orders-experimental-trial-usage-limit-reached](/docs/dev-docs/api/orders/orders-experimental-trial-usage-limit-reached.md)
- [POST orders-experimental-order-delinquency-reached](/docs/dev-docs/api/orders/orders-experimental-order-delinquency-reached.md)
- [POST orders-experimental-order-abandon-reminder](/docs/dev-docs/api/orders/orders-experimental-order-abandon-reminder.md)

# Orders (legacy)

Use these operations to manage customer orders.

This is the legacy order model.
If you are new to Rebilly, use [these order operations](#tag/orders).
Organizations that use the current order model cannot create legacy orders.
For these organizations, the operations that create a legacy order return a validation error.

For information on the legacy order model, and how to upgrade to the current order model, see [Legacy orders model](https://www.rebilly.com/docs/glossary#legacy-orders-model).

An order is a customer's request to purchase items.
It can contain subscription and one-time sale items.
When an order contains one or more subscription items, it is a subscription order.

An order generates an invoice.
A subscription order generates an invoice for each service period.
For more information, see [Orders](https://www.rebilly.com/docs/dev-docs/concepts/#orders).

- [GET /subscriptions](/docs/dev-docs/api/orders-(legacy)/getsubscriptioncollection.md): Retrieves a list of orders.
- [POST /subscriptions](/docs/dev-docs/api/orders-(legacy)/postsubscription.md): Creates an order. To create or update an order with a specified ID, use the [`PUT /subscriptions/{id}`](https://www.rebilly.com/catalog/all/orders-(legacy)/putsubscription) operation. Organizations th
- [GET /subscriptions/{id}](/docs/dev-docs/api/orders-(legacy)/getsubscription.md): Retrieves an order with a specified ID.
- [PUT /subscriptions/{id}](/docs/dev-docs/api/orders-(legacy)/putsubscription.md): Creates or updates (upserts) an order with a specified ID. Organizations that use the current order model cannot create legacy orders. For these organizations, this operation only updates an existing 
- [DELETE /subscriptions/{id}](/docs/dev-docs/api/orders-(legacy)/deletesubscription.md): Deletes a pending order with a specified ID.
- [POST /subscriptions/{id}/void](/docs/dev-docs/api/orders-(legacy)/postsubscriptionvoid.md): Voids a pending order with a specified ID.
- [POST /subscriptions/{id}/change-items](/docs/dev-docs/api/orders-(legacy)/postsubscriptionitemschange.md): Changes the items or quantities of an order that contains subscription items and specifies if and when to give pro rata credits. To change the items at the next renewal, use the `POST /order-changes` 
- [POST /subscriptions/{id}/interim-invoice](/docs/dev-docs/api/orders-(legacy)/postsubscriptioninteriminvoice.md): Issues an interim invoice for a subscription order. Use this operation for plan changes and pro rata adjustments. This process: - Creates an invoice. - Adds the subscription line items to the invoice.
- [GET /subscription-pauses](/docs/dev-docs/api/orders-(legacy)/getsubscriptionpausecollection.md): Retrieves a list of subscription order pauses.
- [POST /subscription-pauses](/docs/dev-docs/api/orders-(legacy)/postsubscriptionpause.md): Pauses a subscription order with a specified ID.
- [GET /subscription-pauses/{id}](/docs/dev-docs/api/orders-(legacy)/getsubscriptionpause.md): Retrieves a subscription order pause with a specified ID.
- [PUT /subscription-pauses/{id}](/docs/dev-docs/api/orders-(legacy)/putsubscriptionpause.md): Updates a subscription order pause.
- [DELETE /subscription-pauses/{id}](/docs/dev-docs/api/orders-(legacy)/deletesubscriptionpause.md): Deletes a subscription order pause with a specified ID. If the specified pause is `pending`, it is `revoked`. If the specified pause is `ongoing`, it is `finished`.
- [GET /subscription-cancellations](/docs/dev-docs/api/orders-(legacy)/getsubscriptioncancellationcollection.md): Retrieves a list of subscription order cancellations.
- [POST /subscription-cancellations](/docs/dev-docs/api/orders-(legacy)/postsubscriptioncancellation.md): Cancels a subscription order.
- [GET /subscription-cancellations/{id}](/docs/dev-docs/api/orders-(legacy)/getsubscriptioncancellation.md): Retrieves a subscription order cancellation with a specified ID.
- [PUT /subscription-cancellations/{id}](/docs/dev-docs/api/orders-(legacy)/putsubscriptioncancellation.md): Creates or updates (upserts) a subscription order cancellation with a specified ID.
- [PATCH /subscription-cancellations/{id}](/docs/dev-docs/api/orders-(legacy)/patchsubscriptioncancellation.md): Updates a subscription order cancellation with a specified ID. Use this operation to update a cancellation reason and description.
- [DELETE /subscription-cancellations/{id}](/docs/dev-docs/api/orders-(legacy)/deletesubscriptioncancellation.md): Deletes a subscription order cancellation with a specified ID. > **Important:** Only subscription order cancellations with a `status` of `draft` can be deleted.
- [GET /subscription-reactivations](/docs/dev-docs/api/orders-(legacy)/getsubscriptionreactivationcollection.md): Retrieves a list of subscription order reactivations.
- [POST /subscription-reactivations](/docs/dev-docs/api/orders-(legacy)/postsubscriptionreactivation.md): Reactivates a subscription order with a specified ID.
- [GET /subscription-reactivations/{id}](/docs/dev-docs/api/orders-(legacy)/getsubscriptionreactivation.md): Retrieves a subscription order reactivation with a specified ID.
- [GET /subscriptions/{id}/upcoming-invoice](/docs/dev-docs/api/orders-(legacy)/getsubscriptionupcominginvoice.md): Retrieves an upcoming invoice for a specified subscription order. An upcoming invoice is an invoice that has not been issued. It functions as a preview of the next invoice for the order. For more info
- [POST /subscriptions/{id}/upcoming-invoice/issue](/docs/dev-docs/api/orders-(legacy)/postsubscriptionupcominginvoiceissuance.md): Issues an upcoming invoice, for a subscription order with a specified ID, for early pay.
- [POST /previews/orders](/docs/dev-docs/api/orders-(legacy)/postprevieworder.md): Previews an order. Use this operation to preview a draft order before making an order.
- [GET /subscriptions/{id}/upcoming-invoices](/docs/dev-docs/api/orders-(legacy)/getsubscriptionupcominginvoicecollection.md): Retrieves an upcoming invoice for a specified subscription order. This endpoint is deprecated. Use [Retrieve an upcoming subscription order invoice](https://www.rebilly.com/catalog/all/orders-(legacy)
- [POST /subscriptions/{id}/upcoming-invoices/{invoiceId}/issue](/docs/dev-docs/api/orders-(legacy)/postupcominginvoiceissuance.md): Issues an upcoming invoice with a specified ID for early pay. This endpoint is deprecated. Use [Issue an upcoming invoice for early pay](https://www.rebilly.com/catalog/all/orders-(legacy)/postsubscri
- [POST hard-usage-limit-reached](/docs/dev-docs/api/orders-(legacy)/hard-usage-limit-reached.md)
- [POST order-abandoned](/docs/dev-docs/api/orders-(legacy)/order-abandoned.md)
- [POST order-completed](/docs/dev-docs/api/orders-(legacy)/order-completed.md)
- [POST renewal-invoice-issued](/docs/dev-docs/api/orders-(legacy)/renewal-invoice-issued.md)
- [POST soft-usage-limit-reached](/docs/dev-docs/api/orders-(legacy)/soft-usage-limit-reached.md)
- [POST subscription-activated](/docs/dev-docs/api/orders-(legacy)/subscription-activated.md)
- [POST subscription-canceled](/docs/dev-docs/api/orders-(legacy)/subscription-canceled.md)
- [POST subscription-churned](/docs/dev-docs/api/orders-(legacy)/subscription-churned.md)
- [POST subscription-created](/docs/dev-docs/api/orders-(legacy)/subscription-created.md)
- [POST subscription-downgraded](/docs/dev-docs/api/orders-(legacy)/subscription-downgraded.md)
- [POST subscription-items-changed](/docs/dev-docs/api/orders-(legacy)/subscription-items-changed.md)
- [POST subscription-modified](/docs/dev-docs/api/orders-(legacy)/subscription-modified.md)
- [POST subscription-quantity-filled-limit-reached](/docs/dev-docs/api/orders-(legacy)/subscription-quantity-filled-limit-reached.md)
- [POST subscription-reactivated](/docs/dev-docs/api/orders-(legacy)/subscription-reactivated.md)
- [POST subscription-renewed](/docs/dev-docs/api/orders-(legacy)/subscription-renewed.md)
- [POST subscription-trial-converted](/docs/dev-docs/api/orders-(legacy)/subscription-trial-converted.md)
- [POST subscription-trial-end-reminder](/docs/dev-docs/api/orders-(legacy)/subscription-trial-end-reminder.md)
- [POST subscription-trial-ended](/docs/dev-docs/api/orders-(legacy)/subscription-trial-ended.md)
- [POST subscription-upgraded](/docs/dev-docs/api/orders-(legacy)/subscription-upgraded.md)
- [POST subscription-paused](/docs/dev-docs/api/orders-(legacy)/subscription-paused.md)
- [POST subscription-pause-created](/docs/dev-docs/api/orders-(legacy)/subscription-pause-created.md)
- [POST subscription-pause-modified](/docs/dev-docs/api/orders-(legacy)/subscription-pause-modified.md)
- [POST subscription-pause-revoked](/docs/dev-docs/api/orders-(legacy)/subscription-pause-revoked.md)
- [POST subscription-resumed](/docs/dev-docs/api/orders-(legacy)/subscription-resumed.md)
- [POST trial-usage-limit-reached](/docs/dev-docs/api/orders-(legacy)/trial-usage-limit-reached.md)
- [POST order-delinquency-reached](/docs/dev-docs/api/orders-(legacy)/order-delinquency-reached.md)
- [POST order-abandon-reminder](/docs/dev-docs/api/orders-(legacy)/order-abandon-reminder.md)
- [POST subscription-renewal-reminder](/docs/dev-docs/api/orders-(legacy)/subscription-renewal-reminder.md)

# Delete a pending order

Deletes a pending order with a specified ID.

Endpoint: DELETE /subscriptions/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 409 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 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.

# Delete a subscription order cancellation

Deletes a subscription order cancellation with a specified ID.

> **Important:** Only subscription order cancellations with a `status` of `draft` can be deleted.

Endpoint: DELETE /subscription-cancellations/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 409 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 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.

# Delete a subscription order pause

Deletes a subscription order pause with a specified ID.
If the specified pause is `pending`, it is `revoked`.
If the specified pause is `ongoing`, it is `finished`.

Endpoint: DELETE /subscription-pauses/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 409 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 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.

# Retrieve an order

Retrieves an order with a specified ID.

Endpoint: GET /subscriptions/{id}
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=recentInvoice,initialInvoice`. Available arguments are: - `customer` - `leadSource` - `website` - `shippingRate` - `initialInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase. > **Note:** The order type cannot be changed after creation.
  Enum: "subscription-order"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `status` (string)
  Status of the subscription service. A subscription starts in the `pending` status, and becomes `active` when the service period begins.
  Enum: "pending", "active", "abandoned", "canceled", "churned", "paused", "voided", "completed", "trial-ended"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `churnTime` (string | null)
  Date and time when the subscription is deactivated.
- `renewalTime` (string | null)
  Date and time when the subscription renews.
- `currentPeriodStart` (string)
  Date and time of the current service period start.
- `currentPeriodEnd` (string)
  Date and time of the current service period end.
- `rebillNumber` (integer | null)
  Current billing period number.
- `lineItems` (array)
  Subscription line items which queue until the next renewal, or interim, invoice is issued for the subscription.
- `lineItems.type` (string)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItems.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `lineItems.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lineItemSubtotal` (object)
  Subtotal of line items in this subscription (signed value). If credits exceed debits, this value is a negative number.
- `lineItemSubtotal.amount` (number)
  Amount of the subtotal.
  Example: 49.95
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `billingStatus` (string)
  Billing status of the most recent invoice. This value may help you to determine if you should change the service status of the service, such as suspending the service.
  Enum: "draft", "unpaid", "past-due", "abandoned", "paid", "voided", "refunded", "disputed", "partially-refunded", "partially-paid"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). > **Note:** The ID of the website cannot be changed after creation.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `items` (array, required)
  Details of items in the order.
- `items.id` (string)
  ID of the order item.
- `items.planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.plan` (any, required)
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific plan item.
- `items.isModified` (boolean)
  Specifies if the plan information is modified for this subscription.
- `items.isGrandfathered` (boolean)
  Specifies if the current plan revision number is greater than the plan item revision number.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `activationTime` (string | null)
  Date and time when the order is activated.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. - If the `delinquencyPeriod` value is `null`, the order does not change state and remains active. You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders. - If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime). If this value is not passed during order creation, an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
  Example: P7D
- `poNumber` (string | null)
  Purchase order number displayed on the issued invoices.
  Example: PO123456
- `shipping` (object)
  Shipping settings.
- `notes` (string)
  Notes for the customer displayed on the order invoice.
- `canceledTime` (string | null)
  Date and time when a subscription is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "delinquency", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "organization-deactivated", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "initialInvoice", "recentInvoice", "approvalUrl", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.recentInvoice` (object)
- `_embedded.initialInvoice` (object)
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (object)
- `_embedded.paymentInstrument` (object)
- `_embedded.upcomingInvoice` (object)
- `id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase.
  Enum: "one-time-order"
- `status` (string)
  Status of the one-time order.
  Enum: "pending", "abandoned", "completed", "canceled"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice (`null` for one-time orders).
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `deliveryAddress` (any)
  Delivery address of the order.
- `billingAddress` (any)
  Billing address of the order.

## 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 404 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.

# Retrieve a subscription order cancellation

Retrieves a subscription order cancellation with a specified ID.

Endpoint: GET /subscription-cancellations/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `subscriptionId` (string, required)
  ID of the canceled subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `proratedInvoiceId` (string | null)
  ID of the invoice on which the cancellation proration is calculated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `appliedInvoiceId` (string | null)
  ID of the invoice on which the cancellation fees or credits are applied.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time.
- `status` (string)
  Status of the subscription order.
  Enum: "draft", "confirmed", "completed", "revoked"
- `canceledTime` (string | null)
  Date and time when a subscription is canceled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `churnTime` (string)
  Date and time when the subscription is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: "null", "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the period ends for this item.
- `lineItemSubtotal` (object)
  Subtotal of the line items added after the subscription cancellation.
- `lineItemSubtotal.amount` (number)
  Subtotal amount of the line items.
  Example: 49.95
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve subscription order cancellations

Retrieves a list of subscription order cancellations.

Endpoint: GET /subscription-cancellations
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `subscriptionId` (string, required)
  ID of the canceled subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `proratedInvoiceId` (string | null)
  ID of the invoice on which the cancellation proration is calculated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `appliedInvoiceId` (string | null)
  ID of the invoice on which the cancellation fees or credits are applied.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time.
- `status` (string)
  Status of the subscription order.
  Enum: "draft", "confirmed", "completed", "revoked"
- `canceledTime` (string | null)
  Date and time when a subscription is canceled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `churnTime` (string)
  Date and time when the subscription is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: "null", "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the period ends for this item.
- `lineItemSubtotal` (object)
  Subtotal of the line items added after the subscription cancellation.
- `lineItemSubtotal.amount` (number)
  Subtotal amount of the line items.
  Example: 49.95
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve orders

Retrieves a list of orders.

Endpoint: GET /subscriptions
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of subscriptions to return. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`. When `expand` includes `initialInvoice` or `recentInvoice`, cap values greater than `100` at `100`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.
- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=recentInvoice,initialInvoice`. Available arguments are: - `customer` - `leadSource` - `website` - `shippingRate` - `initialInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase. > **Note:** The order type cannot be changed after creation.
  Enum: "subscription-order"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `status` (string)
  Status of the subscription service. A subscription starts in the `pending` status, and becomes `active` when the service period begins.
  Enum: "pending", "active", "abandoned", "canceled", "churned", "paused", "voided", "completed", "trial-ended"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `churnTime` (string | null)
  Date and time when the subscription is deactivated.
- `renewalTime` (string | null)
  Date and time when the subscription renews.
- `currentPeriodStart` (string)
  Date and time of the current service period start.
- `currentPeriodEnd` (string)
  Date and time of the current service period end.
- `rebillNumber` (integer | null)
  Current billing period number.
- `lineItems` (array)
  Subscription line items which queue until the next renewal, or interim, invoice is issued for the subscription.
- `lineItems.type` (string)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItems.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `lineItems.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lineItemSubtotal` (object)
  Subtotal of line items in this subscription (signed value). If credits exceed debits, this value is a negative number.
- `lineItemSubtotal.amount` (number)
  Amount of the subtotal.
  Example: 49.95
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `billingStatus` (string)
  Billing status of the most recent invoice. This value may help you to determine if you should change the service status of the service, such as suspending the service.
  Enum: "draft", "unpaid", "past-due", "abandoned", "paid", "voided", "refunded", "disputed", "partially-refunded", "partially-paid"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). > **Note:** The ID of the website cannot be changed after creation.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `items` (array, required)
  Details of items in the order.
- `items.id` (string)
  ID of the order item.
- `items.planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.plan` (any, required)
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific plan item.
- `items.isModified` (boolean)
  Specifies if the plan information is modified for this subscription.
- `items.isGrandfathered` (boolean)
  Specifies if the current plan revision number is greater than the plan item revision number.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `activationTime` (string | null)
  Date and time when the order is activated.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. - If the `delinquencyPeriod` value is `null`, the order does not change state and remains active. You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders. - If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime). If this value is not passed during order creation, an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
  Example: P7D
- `poNumber` (string | null)
  Purchase order number displayed on the issued invoices.
  Example: PO123456
- `shipping` (object)
  Shipping settings.
- `notes` (string)
  Notes for the customer displayed on the order invoice.
- `canceledTime` (string | null)
  Date and time when a subscription is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "delinquency", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "organization-deactivated", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "initialInvoice", "recentInvoice", "approvalUrl", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.recentInvoice` (object)
- `_embedded.initialInvoice` (object)
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (object)
- `_embedded.paymentInstrument` (object)
- `_embedded.upcomingInvoice` (object)
- `id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase.
  Enum: "one-time-order"
- `status` (string)
  Status of the one-time order.
  Enum: "pending", "abandoned", "completed", "canceled"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice (`null` for one-time orders).
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `deliveryAddress` (any)
  Delivery address of the order.
- `billingAddress` (any)
  Billing address of the order.

## 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.

# Retrieve a subscription order pause

Retrieves a subscription order pause with a specified ID.

Endpoint: GET /subscription-pauses/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the subscription pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve subscription order pauses

Retrieves a list of subscription order pauses.

Endpoint: GET /subscription-pauses
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the subscription pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve a subscription order reactivation

Retrieves a subscription order reactivation with a specified ID.

Endpoint: GET /subscription-reactivations/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the reactivation.
  Example: sub_rct_0YVJ62AF5XCFCA6EBFAAA3Z7E0
- `subscriptionId` (string, required)
  ID of the reactivated subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `cancellationId` (string)
  ID of the related cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `description` (string | null)
  Description of the reactivation reason in free form.
- `renewalTime` (string)
  Date and time of the next subscription renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the subscription is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve subscription order reactivations

Retrieves a list of subscription order reactivations.

Endpoint: GET /subscription-reactivations
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the reactivation.
  Example: sub_rct_0YVJ62AF5XCFCA6EBFAAA3Z7E0
- `subscriptionId` (string, required)
  ID of the reactivated subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `cancellationId` (string)
  ID of the related cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `description` (string | null)
  Description of the reactivation reason in free form.
- `renewalTime` (string)
  Date and time of the next subscription renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the subscription is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve an upcoming subscription order invoice

Retrieves an upcoming invoice for a specified subscription order.

An upcoming invoice is an invoice that has not been issued.
It functions as a preview of the next invoice for the order.
For more information, see [Invoices](https://www.rebilly.com/docs/dev-docs/invoices/).

Endpoint: GET /subscriptions/{id}/upcoming-invoice
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the upcoming invoice, which is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `subscriptionId` (string)
  ID of the related subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `items` (array)
  Upcoming invoice items array.
- `items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `items.description` (string)
  Description of the upcoming invoice item.
- `items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `items.price` (number)
  Total price of the upcoming invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string)
  Date and time when the billing period starts.
- `items.periodEndTime` (string)
  Date and time when the billing period ends.
- `items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (object)
- `items.tax.amount` (number, required)
  Amount of the tax.
- `items.tax.description` (string, required)
  Description of the tax.
- `items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "plan", "subscription"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "subscription", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (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 404 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.

# Retrieve upcoming subscription order invoice (deprecated)

Retrieves an upcoming invoice for a specified subscription order.

This endpoint is deprecated.
Use [Retrieve an upcoming subscription order invoice](https://www.rebilly.com/catalog/all/orders-(legacy)/getsubscriptionupcominginvoice) instead.

Endpoint: GET /subscriptions/{id}/upcoming-invoices
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the upcoming invoice, which is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `subscriptionId` (string)
  ID of the related subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `items` (array)
  Upcoming invoice items array.
- `items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `items.description` (string)
  Description of the upcoming invoice item.
- `items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `items.price` (number)
  Total price of the upcoming invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string)
  Date and time when the billing period starts.
- `items.periodEndTime` (string)
  Date and time when the billing period ends.
- `items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (object)
- `items.tax.amount` (number, required)
  Amount of the tax.
- `items.tax.description` (string, required)
  Description of the tax.
- `items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "plan", "subscription"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "subscription", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (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 404 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.

# Hard usage limit reached

Endpoint: POST hard-usage-limit-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionItemId` (string)
  ID of the subscription item.
  Example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS
- `planId` (string)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `usageQuantity` (integer)
  Reported usage quantity.
- `usageAmount` (number)
  Billed usage amount.
- `currency` (string)
  Currency of the billed usage amount.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "soft-usage-limit-reached", "hard-usage-limit-reached", "trial-usage-limit-reached"
- `_embedded` (object)
  Embedded objects related to the usage limit event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order abandoned reminder (deprecated)

Endpoint: POST order-abandon-reminder
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `scheduleNumber` (integer)
  Number of triggered abandon reminder events.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-abandon-reminder"
- `_embedded` (object)
  Embedded objects related to the order abandon reminder event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order abandoned

Endpoint: POST order-abandoned
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order completed

Endpoint: POST order-completed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order delinquency time reached

Endpoint: POST order-delinquency-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Update a subscription order cancellation

Updates a subscription order cancellation with a specified ID.
Use this operation to update a cancellation reason and description.

Endpoint: PATCH /subscription-cancellations/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `status` (string)
  Status of the subscription order.
  Enum: "draft", "confirmed", "completed", "revoked"
- `subscriptionId` (string, required)
  ID of the canceled subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time.
- `churnTime` (string)
  Date and time when the subscription is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: "null", "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the period ends for this item.

## Response 200 fields

- `id` (string)
  ID of the cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `subscriptionId` (string, required)
  ID of the canceled subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `proratedInvoiceId` (string | null)
  ID of the invoice on which the cancellation proration is calculated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `appliedInvoiceId` (string | null)
  ID of the invoice on which the cancellation fees or credits are applied.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time.
- `status` (string)
  Status of the subscription order.
  Enum: "draft", "confirmed", "completed", "revoked"
- `canceledTime` (string | null)
  Date and time when a subscription is canceled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `churnTime` (string)
  Date and time when the subscription is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: "null", "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the period ends for this item.
- `lineItemSubtotal` (object)
  Subtotal of the line items added after the subscription cancellation.
- `lineItemSubtotal.amount` (number)
  Subtotal amount of the line items.
  Example: 49.95
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Preview an order

Previews an order.
Use this operation to preview a draft order before making an order.

Endpoint: POST /previews/orders
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `items` (array, required)
  Items details.
- `items.planId` (any)
- `items.plan` (any)
- `billingAddress` (any)
  Billing address details.
- `deliveryAddress` (any)
  Delivery address details.
- `couponIds` (array)
  List of coupons that are applied to the order.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.

## Response 200 fields

- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `billingAddress` (any)
  Billing address details.
- `deliveryAddress` (any)
  Delivery address details.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems` (array)
  List of purchase items.
- `lineItems.type` (string)
  Type of transaction.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the purchase item.
- `lineItems.unitPrice` (number)
  Unit price of the purchase item.
  Example: 49.95
- `lineItems.quantity` (number)
  Total quantity of the purchase item.
- `lineItems.price` (number)
  Total cost of the purchase item.
- `lineItems.planId` (string)
  ID of the related plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `lineItems.productId` (string)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `shippingRates` (array)
  Available shipping rates.
- `shippingRates.id` (string)
  ID of the shipping rate.
  Example: ship_rate_0YVDN408G4DQE9G1RV1QCFHJ3P
- `shippingRates.name` (string, required)
  Name of the shipping rate.
- `shippingRates.description` (string | null)
  Description of the shipping rate.
- `shippingRates.price` (number, required)
  Price of the shipping rate. If `price` is `0`, shipping is free.
- `taxes` (array)
  Taxes applied to the purchase.
- `taxes.amount` (number)
  Amount of tax that is due.
- `taxes.description` (string)
  Description of the tax.
- `discounts` (array)
  Discounts applied to the purchase.
- `discounts.couponId` (string)
  ID of a coupon that is associated with the purchase.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.amount` (number)
  Total amount of discount from the coupon.
- `discounts.description` (string)
  Description of the discount.
- `subtotalAmount` (number)
  Subtotal amount of the purchase.
- `taxAmount` (number)
  Tax amount of the purchase.
- `shippingAmount` (number)
  Shipping amount of the purchase.
- `discountsAmount` (number)
  Total discount amount of the purchase.
- `total` (number)
  Total amount of the purchase.
- `initialAmounts` (object)
  Total amounts of the initial invoice. This displays the amount the customer pays initially.
- `initialAmounts.amount` (number)
  Total amount of the initial invoice.
- `initialAmounts.subtotalAmount` (number)
  Subtotal amount of the initial invoice.
- `initialAmounts.discountAmount` (number)
  Discount amount applied to the initial invoice.
- `initialAmounts.shippingAmount` (number)
  Shipping amount applied to the initial invoice.
- `initialAmounts.taxAmount` (number)
  Tax amount applied to the initial invoice.
- `recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the order does not have recurring items, the value of this field is `null`.
- `recurringAmounts.amount` (number)
  Total amount of the recurring invoice.
- `recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the recurring invoice.
- `recurringAmounts.discountAmount` (number)
  Discount amount applied to the recurring invoice.
- `recurringAmounts.shippingAmount` (number)
  Shipping amount applied to the recurring invoice.
- `recurringAmounts.taxAmount` (number)
  Tax amount applied to the recurring invoice.
- `shipping` (object)
  Shipping settings.

## 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.

# Create an order

Creates an order.

To create or update an order with a specified ID, use the [`PUT /subscriptions/{id}`](https://www.rebilly.com/catalog/all/orders-(legacy)/putsubscription) operation.

Organizations that use the current order model cannot create legacy orders, and this operation returns a validation error for them.
To create an order with the current order model, use the [`POST /orders`](https://www.rebilly.com/catalog/all/orders/postorder) operation.

Endpoint: POST /subscriptions
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=recentInvoice,initialInvoice`. Available arguments are: - `customer` - `leadSource` - `website` - `shippingRate` - `initialInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Request fields

- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase. > **Note:** The order type cannot be changed after creation.
  Enum: "subscription-order"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `renewalTime` (string | null)
  Date and time when the subscription renews.
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). > **Note:** The ID of the website cannot be changed after creation.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `items` (array, required)
  Details of items in the order.
- `items.planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.plan` (any, required)
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. - If the `delinquencyPeriod` value is `null`, the order does not change state and remains active. You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders. - If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime). If this value is not passed during order creation, an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
  Example: P7D
- `couponIds` (array | null)
  List of coupons to redeem on the customer and restrict to this order. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). This parameter uses the following logic: - If this parameter is not supplied, applied coupons are not changed. - If an empty array is supplied, all applied coupon redemptions are canceled. - If a list of coupons is supplied, unapplied coupons in the list are applied. Coupons that have already been applied do not change state. Applied coupons that are not supplied in list are canceled. If the list of applied coupons on a pending order is changed by this parameter during an order update, the invoice for the order is reissued.
- `poNumber` (string | null)
  Purchase order number displayed on the issued invoices.
  Example: PO123456
- `shipping` (object)
  Shipping settings.
- `notes` (string)
  Notes for the customer displayed on the order invoice.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase.
  Enum: "one-time-order"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `deliveryAddress` (any)
  Delivery address of the order.
- `billingAddress` (any)
  Billing address of the order.

## Response 201 fields

- `id` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase. > **Note:** The order type cannot be changed after creation.
  Enum: "subscription-order"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `status` (string)
  Status of the subscription service. A subscription starts in the `pending` status, and becomes `active` when the service period begins.
  Enum: "pending", "active", "abandoned", "canceled", "churned", "paused", "voided", "completed", "trial-ended"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `churnTime` (string | null)
  Date and time when the subscription is deactivated.
- `renewalTime` (string | null)
  Date and time when the subscription renews.
- `currentPeriodStart` (string)
  Date and time of the current service period start.
- `currentPeriodEnd` (string)
  Date and time of the current service period end.
- `rebillNumber` (integer | null)
  Current billing period number.
- `lineItems` (array)
  Subscription line items which queue until the next renewal, or interim, invoice is issued for the subscription.
- `lineItems.type` (string)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItems.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `lineItems.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lineItemSubtotal` (object)
  Subtotal of line items in this subscription (signed value). If credits exceed debits, this value is a negative number.
- `lineItemSubtotal.amount` (number)
  Amount of the subtotal.
  Example: 49.95
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `billingStatus` (string)
  Billing status of the most recent invoice. This value may help you to determine if you should change the service status of the service, such as suspending the service.
  Enum: "draft", "unpaid", "past-due", "abandoned", "paid", "voided", "refunded", "disputed", "partially-refunded", "partially-paid"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). > **Note:** The ID of the website cannot be changed after creation.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `items` (array, required)
  Details of items in the order.
- `items.id` (string)
  ID of the order item.
- `items.planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.plan` (any, required)
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific plan item.
- `items.isModified` (boolean)
  Specifies if the plan information is modified for this subscription.
- `items.isGrandfathered` (boolean)
  Specifies if the current plan revision number is greater than the plan item revision number.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `activationTime` (string | null)
  Date and time when the order is activated.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. - If the `delinquencyPeriod` value is `null`, the order does not change state and remains active. You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders. - If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime). If this value is not passed during order creation, an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
  Example: P7D
- `poNumber` (string | null)
  Purchase order number displayed on the issued invoices.
  Example: PO123456
- `shipping` (object)
  Shipping settings.
- `notes` (string)
  Notes for the customer displayed on the order invoice.
- `canceledTime` (string | null)
  Date and time when a subscription is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "delinquency", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "organization-deactivated", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "initialInvoice", "recentInvoice", "approvalUrl", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.recentInvoice` (object)
- `_embedded.initialInvoice` (object)
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (object)
- `_embedded.paymentInstrument` (object)
- `_embedded.upcomingInvoice` (object)
- `id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase.
  Enum: "one-time-order"
- `status` (string)
  Status of the one-time order.
  Enum: "pending", "abandoned", "completed", "canceled"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice (`null` for one-time orders).
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `deliveryAddress` (any)
  Delivery address of the order.
- `billingAddress` (any)
  Billing address of the order.

## 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.

# Cancel a subscription order

Cancels a subscription order.

Endpoint: POST /subscription-cancellations
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string, required)
  ID of the canceled subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time.
- `status` (string)
  Status of the subscription order.
  Enum: "draft", "confirmed", "completed", "revoked"
- `churnTime` (string)
  Date and time when the subscription is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: "null", "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the period ends for this item.

## Response 201 fields

- `id` (string)
  ID of the cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `subscriptionId` (string, required)
  ID of the canceled subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `proratedInvoiceId` (string | null)
  ID of the invoice on which the cancellation proration is calculated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `appliedInvoiceId` (string | null)
  ID of the invoice on which the cancellation fees or credits are applied.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time.
- `status` (string)
  Status of the subscription order.
  Enum: "draft", "confirmed", "completed", "revoked"
- `canceledTime` (string | null)
  Date and time when a subscription is canceled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `churnTime` (string)
  Date and time when the subscription is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: "null", "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the period ends for this item.
- `lineItemSubtotal` (object)
  Subtotal of the line items added after the subscription cancellation.
- `lineItemSubtotal.amount` (number)
  Subtotal amount of the line items.
  Example: 49.95
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Issue an interim invoice

Issues an interim invoice for a subscription order.
Use this operation for plan changes and pro rata adjustments.

This process:

- Creates an invoice.
- Adds the subscription line items to the invoice.
- Issues the invoice.
- Optionally, applies payment to the invoice if a `transactionId` is supplied.

Endpoint: POST /subscriptions/{id}/interim-invoice
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0

## Response 201 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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.

# Change subscription order items

Changes the items or quantities of an order that contains subscription items and specifies if and when to give pro rata credits.
To change the items at the next renewal, use the `POST /order-changes` operation with `applyAt` set to `nextRenewal`.

Endpoint: POST /subscriptions/{id}/change-items
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=recentInvoice,initialInvoice`. Available arguments are: - `customer` - `leadSource` - `website` - `shippingRate` - `initialInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Request fields

- `items` (array, required)
  Details of items in the order.
- `items.plan` (any, required)
  Plan details.
- `items.quantity` (integer)
  Number of units of the product on the given plan.
- `items.usageLimits` (object)
  Specifies the soft and hard usage limit thresholds for an item with a metered billing plan. This value is ignored when the plan is not metered.
- `items.usageLimits.softLimit` (object)
  Defines thresholds for notification purposes. For example, to notify the customer that their usage is near the hard limit of their metered billing plan. This notification informs the customer so that they can upgrade their plan before the hard limit is reached. When metered usage equals or exceeds the configured soft limit, the `soft-usage-limit-reached` event is triggered. The quantity limit applies to the larger of the reported and billed quantity. If a minimum billable quantity results in a billed quantity that is higher than the reported quantity, the billed quantity applies to the limit. If a maximum billable quantity results in a billed quantity that is lower than the reported quantity, the reported quantity applies to the limit. The amount limit applies to the billed amount. To notify the customer, a webhook and notification can be configured for this event. This field is useful for accounting and customer success purposes. The usage of metered billing plans can still be reported if the soft limit is reached.
- `items.usageLimits.softLimit.quantity` (integer)
  Usage limit quantity.
- `items.usageLimits.softLimit.amount` (number)
  Usage limit amount in the currency of the order.
- `items.usageLimits.hardLimit` (object)
  Defines a limit where the customer can no longer use the service. Hard limits are used in addition to soft limits. When a soft limit is reached, a customer may receive a notification but the service can still be provided up to the hard limit value so that the customer can upgrade their plan. When the reported usage reaches the configured limit, a specific event is triggered. To notify the customer in the merchant system, or block a service, a webhook and notification can be configured for this event. When the total usage reaches the hard limit quantity, or amount values, metered billing plan usages can no longer be reported. Plans with a minimum quantity, fixed fee, or flat stairstep bracket set a minimum billable quantity and amount. A `quantity` value below the minimum billable quantity is invalid. An `amount` value below the minimum billable amount is invalid. A `0` value remains valid even on plans with minimum billing.
- `items.usageLimits.hardLimit.quantity` (integer)
  Usage limit quantity.
- `items.usageLimits.hardLimit.amount` (number)
  Usage limit amount in the currency of the order.
- `items.usageLimits.trialLimit` (any)
  Defines a usage cap during the trial period of a subscription. This limit is enforced only while the subscription is in its trial phase. When the reported usage reaches the configured trial limit, an event called 'trial-usage-limit-reached' is triggered. To notify the customer or restrict access to the service, a webhook and notification can be configured for this event. Once the trial limit is reached, additional usage cannot be reported unless the trial ends.
  Example: 20.725
- `renewalPolicy` (string, required)
  How the service periods and trial state of the subscription order are managed when its items change. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` and `ignoreRecurring` are ignored unless `reset` or `retain` is used.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly", "reset", "retain"
- `prorated` (boolean, required)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring` or `retainTrialOnly`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period size.
- `effectiveTime` (string)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the current time.
- `preview` (boolean)
  Specifies if changes to the subscription can be previewed. Subscriptions cannot be changed in preview.
- `keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` or `retainTrialOnly` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`.
- `ignoreRecurring` (boolean)
  Deprecated. Use the `retainTrialOnly` value of `renewalPolicy` instead. Specifies if the order must ignore the recurring settings of its items. This field is only applicable if the order is trial-only and the `keepTrial` value is `true`. For more information, see [Trial-only order](https://www.rebilly.com/docs/dev-docs/subscriptions#trial-only-subscription).

## Response 201 fields

- `id` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase. > **Note:** The order type cannot be changed after creation.
  Enum: "subscription-order"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `status` (string)
  Status of the subscription service. A subscription starts in the `pending` status, and becomes `active` when the service period begins.
  Enum: "pending", "active", "abandoned", "canceled", "churned", "paused", "voided", "completed", "trial-ended"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `churnTime` (string | null)
  Date and time when the subscription is deactivated.
- `renewalTime` (string | null)
  Date and time when the subscription renews.
- `currentPeriodStart` (string)
  Date and time of the current service period start.
- `currentPeriodEnd` (string)
  Date and time of the current service period end.
- `rebillNumber` (integer | null)
  Current billing period number.
- `lineItems` (array)
  Subscription line items which queue until the next renewal, or interim, invoice is issued for the subscription.
- `lineItems.type` (string)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItems.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `lineItems.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lineItemSubtotal` (object)
  Subtotal of line items in this subscription (signed value). If credits exceed debits, this value is a negative number.
- `lineItemSubtotal.amount` (number)
  Amount of the subtotal.
  Example: 49.95
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `billingStatus` (string)
  Billing status of the most recent invoice. This value may help you to determine if you should change the service status of the service, such as suspending the service.
  Enum: "draft", "unpaid", "past-due", "abandoned", "paid", "voided", "refunded", "disputed", "partially-refunded", "partially-paid"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). > **Note:** The ID of the website cannot be changed after creation.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `items` (array, required)
  Details of items in the order.
- `items.id` (string)
  ID of the order item.
- `items.planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.plan` (any, required)
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific plan item.
- `items.isModified` (boolean)
  Specifies if the plan information is modified for this subscription.
- `items.isGrandfathered` (boolean)
  Specifies if the current plan revision number is greater than the plan item revision number.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `activationTime` (string | null)
  Date and time when the order is activated.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. - If the `delinquencyPeriod` value is `null`, the order does not change state and remains active. You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders. - If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime). If this value is not passed during order creation, an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
  Example: P7D
- `poNumber` (string | null)
  Purchase order number displayed on the issued invoices.
  Example: PO123456
- `shipping` (object)
  Shipping settings.
- `notes` (string)
  Notes for the customer displayed on the order invoice.
- `canceledTime` (string | null)
  Date and time when a subscription is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "delinquency", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "organization-deactivated", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "initialInvoice", "recentInvoice", "approvalUrl", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.recentInvoice` (object)
- `_embedded.initialInvoice` (object)
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (object)
- `_embedded.paymentInstrument` (object)
- `_embedded.upcomingInvoice` (object)
- `id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase.
  Enum: "one-time-order"
- `status` (string)
  Status of the one-time order.
  Enum: "pending", "abandoned", "completed", "canceled"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice (`null` for one-time orders).
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `deliveryAddress` (any)
  Delivery address of the order.
- `billingAddress` (any)
  Billing address of the order.

## 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 404 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 409 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 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.

# Pause a subscription order

Pauses a subscription order with a specified ID.

Endpoint: POST /subscription-pauses
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S

## Response 201 fields

- `id` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the subscription pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Reactivate a subscription order

Reactivates a subscription order with a specified ID.

Endpoint: POST /subscription-reactivations
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string, required)
  ID of the reactivated subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `description` (string | null)
  Description of the reactivation reason in free form.
- `effectiveTime` (string)
  Date and time when the service period starts, unless the subscription is canceled but still active. If the subscription is still active, the subscription continues for the current service period. If this field is omitted, this value defaults to the current time.
- `renewalTime` (string)
  Date and time of the next subscription renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the subscription is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the subscription payment instrument remains unchanged.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21

## Response 201 fields

- `id` (string)
  ID of the reactivation.
  Example: sub_rct_0YVJ62AF5XCFCA6EBFAAA3Z7E0
- `subscriptionId` (string, required)
  ID of the reactivated subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `cancellationId` (string)
  ID of the related cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `description` (string | null)
  Description of the reactivation reason in free form.
- `renewalTime` (string)
  Date and time of the next subscription renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the subscription is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 409 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 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.

# Issue an upcoming invoice for early pay

Issues an upcoming invoice, for a subscription order with a specified ID, for early pay.

Endpoint: POST /subscriptions/{id}/upcoming-invoice/issue
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `issuedTime` (string | null)
  Date and time when the invoice is issued. If this field is `null` or omitted, the invoice is issued immediately.
- `dueTime` (string | null)
  Date and time when the invoice is due for payment. If this field is `null` or omitted, this value is set to the `issuedTime` value.

## Response 201 fields

- `id` (string)
  ID of the upcoming invoice, which is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `subscriptionId` (string)
  ID of the related subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `items` (array)
  Upcoming invoice items array.
- `items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `items.description` (string)
  Description of the upcoming invoice item.
- `items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `items.price` (number)
  Total price of the upcoming invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string)
  Date and time when the billing period starts.
- `items.periodEndTime` (string)
  Date and time when the billing period ends.
- `items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (object)
- `items.tax.amount` (number, required)
  Amount of the tax.
- `items.tax.description` (string, required)
  Description of the tax.
- `items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "plan", "subscription"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "subscription", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (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 404 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 409 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 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.

# Void a subscription order

Voids a pending order with a specified ID.

Endpoint: POST /subscriptions/{id}/void
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase. > **Note:** The order type cannot be changed after creation.
  Enum: "subscription-order"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `status` (string)
  Status of the subscription service. A subscription starts in the `pending` status, and becomes `active` when the service period begins.
  Enum: "pending", "active", "abandoned", "canceled", "churned", "paused", "voided", "completed", "trial-ended"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `churnTime` (string | null)
  Date and time when the subscription is deactivated.
- `renewalTime` (string | null)
  Date and time when the subscription renews.
- `currentPeriodStart` (string)
  Date and time of the current service period start.
- `currentPeriodEnd` (string)
  Date and time of the current service period end.
- `rebillNumber` (integer | null)
  Current billing period number.
- `lineItems` (array)
  Subscription line items which queue until the next renewal, or interim, invoice is issued for the subscription.
- `lineItems.type` (string)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItems.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `lineItems.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lineItemSubtotal` (object)
  Subtotal of line items in this subscription (signed value). If credits exceed debits, this value is a negative number.
- `lineItemSubtotal.amount` (number)
  Amount of the subtotal.
  Example: 49.95
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `billingStatus` (string)
  Billing status of the most recent invoice. This value may help you to determine if you should change the service status of the service, such as suspending the service.
  Enum: "draft", "unpaid", "past-due", "abandoned", "paid", "voided", "refunded", "disputed", "partially-refunded", "partially-paid"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). > **Note:** The ID of the website cannot be changed after creation.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `items` (array, required)
  Details of items in the order.
- `items.id` (string)
  ID of the order item.
- `items.planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.plan` (any, required)
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific plan item.
- `items.isModified` (boolean)
  Specifies if the plan information is modified for this subscription.
- `items.isGrandfathered` (boolean)
  Specifies if the current plan revision number is greater than the plan item revision number.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `activationTime` (string | null)
  Date and time when the order is activated.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. - If the `delinquencyPeriod` value is `null`, the order does not change state and remains active. You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders. - If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime). If this value is not passed during order creation, an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
  Example: P7D
- `poNumber` (string | null)
  Purchase order number displayed on the issued invoices.
  Example: PO123456
- `shipping` (object)
  Shipping settings.
- `notes` (string)
  Notes for the customer displayed on the order invoice.
- `canceledTime` (string | null)
  Date and time when a subscription is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "delinquency", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "organization-deactivated", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "initialInvoice", "recentInvoice", "approvalUrl", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.recentInvoice` (object)
- `_embedded.initialInvoice` (object)
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (object)
- `_embedded.paymentInstrument` (object)
- `_embedded.upcomingInvoice` (object)
- `id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase.
  Enum: "one-time-order"
- `status` (string)
  Status of the one-time order.
  Enum: "pending", "abandoned", "completed", "canceled"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice (`null` for one-time orders).
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `deliveryAddress` (any)
  Delivery address of the order.
- `billingAddress` (any)
  Billing address of the order.

## 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 404 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 409 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 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.

# Issue a specific upcoming invoice for early pay (deprecated)

Issues an upcoming invoice with a specified ID for early pay.

This endpoint is deprecated.
Use [Issue an upcoming invoice for early pay](https://www.rebilly.com/catalog/all/orders-(legacy)/postsubscriptionupcominginvoiceissuance) instead.

Endpoint: POST /subscriptions/{id}/upcoming-invoices/{invoiceId}/issue
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `invoiceId` (string, required)
  ID of the upcoming invoice.

## Request fields

- `issuedTime` (string | null)
  Date and time when the invoice is issued. If this field is `null` or omitted, the invoice is issued immediately.
- `dueTime` (string | null)
  Date and time when the invoice is due for payment. If this field is `null` or omitted, this value is set to the `issuedTime` value.

## Response 201 fields

- `id` (string)
  ID of the upcoming invoice, which is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `subscriptionId` (string)
  ID of the related subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `items` (array)
  Upcoming invoice items array.
- `items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `items.description` (string)
  Description of the upcoming invoice item.
- `items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `items.price` (number)
  Total price of the upcoming invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string)
  Date and time when the billing period starts.
- `items.periodEndTime` (string)
  Date and time when the billing period ends.
- `items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (object)
- `items.tax.amount` (number, required)
  Amount of the tax.
- `items.tax.description` (string, required)
  Description of the tax.
- `items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "plan", "subscription"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "subscription", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (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 404 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 409 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 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.

# Upsert an order

Creates or updates (upserts) an order with a specified ID.

Organizations that use the current order model cannot create legacy orders.
For these organizations, this operation only updates an existing order, and returns a validation error when the order does not exist.
To create an order with the current order model, use the [`POST /orders`](https://www.rebilly.com/catalog/all/orders/postorder) operation.

Endpoint: PUT /subscriptions/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=recentInvoice,initialInvoice`. Available arguments are: - `customer` - `leadSource` - `website` - `shippingRate` - `initialInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Request fields

- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase. > **Note:** The order type cannot be changed after creation.
  Enum: "subscription-order"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `renewalTime` (string | null)
  Date and time when the subscription renews.
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). > **Note:** The ID of the website cannot be changed after creation.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `items` (array, required)
  Details of items in the order.
- `items.planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.plan` (any, required)
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. - If the `delinquencyPeriod` value is `null`, the order does not change state and remains active. You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders. - If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime). If this value is not passed during order creation, an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
  Example: P7D
- `couponIds` (array | null)
  List of coupons to redeem on the customer and restrict to this order. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). This parameter uses the following logic: - If this parameter is not supplied, applied coupons are not changed. - If an empty array is supplied, all applied coupon redemptions are canceled. - If a list of coupons is supplied, unapplied coupons in the list are applied. Coupons that have already been applied do not change state. Applied coupons that are not supplied in list are canceled. If the list of applied coupons on a pending order is changed by this parameter during an order update, the invoice for the order is reissued.
- `poNumber` (string | null)
  Purchase order number displayed on the issued invoices.
  Example: PO123456
- `shipping` (object)
  Shipping settings.
- `notes` (string)
  Notes for the customer displayed on the order invoice.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase.
  Enum: "one-time-order"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `deliveryAddress` (any)
  Delivery address of the order.
- `billingAddress` (any)
  Billing address of the order.

## Response 200 fields

- `id` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase. > **Note:** The order type cannot be changed after creation.
  Enum: "subscription-order"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `status` (string)
  Status of the subscription service. A subscription starts in the `pending` status, and becomes `active` when the service period begins.
  Enum: "pending", "active", "abandoned", "canceled", "churned", "paused", "voided", "completed", "trial-ended"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `churnTime` (string | null)
  Date and time when the subscription is deactivated.
- `renewalTime` (string | null)
  Date and time when the subscription renews.
- `currentPeriodStart` (string)
  Date and time of the current service period start.
- `currentPeriodEnd` (string)
  Date and time of the current service period end.
- `rebillNumber` (integer | null)
  Current billing period number.
- `lineItems` (array)
  Subscription line items which queue until the next renewal, or interim, invoice is issued for the subscription.
- `lineItems.type` (string)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItems.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `lineItems.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lineItemSubtotal` (object)
  Subtotal of line items in this subscription (signed value). If credits exceed debits, this value is a negative number.
- `lineItemSubtotal.amount` (number)
  Amount of the subtotal.
  Example: 49.95
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `billingStatus` (string)
  Billing status of the most recent invoice. This value may help you to determine if you should change the service status of the service, such as suspending the service.
  Enum: "draft", "unpaid", "past-due", "abandoned", "paid", "voided", "refunded", "disputed", "partially-refunded", "partially-paid"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). > **Note:** The ID of the website cannot be changed after creation.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `items` (array, required)
  Details of items in the order.
- `items.id` (string)
  ID of the order item.
- `items.planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.plan` (any, required)
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific plan item.
- `items.isModified` (boolean)
  Specifies if the plan information is modified for this subscription.
- `items.isGrandfathered` (boolean)
  Specifies if the current plan revision number is greater than the plan item revision number.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `activationTime` (string | null)
  Date and time when the order is activated.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. - If the `delinquencyPeriod` value is `null`, the order does not change state and remains active. You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders. - If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime). If this value is not passed during order creation, an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
  Example: P7D
- `poNumber` (string | null)
  Purchase order number displayed on the issued invoices.
  Example: PO123456
- `shipping` (object)
  Shipping settings.
- `notes` (string)
  Notes for the customer displayed on the order invoice.
- `canceledTime` (string | null)
  Date and time when a subscription is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "delinquency", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "organization-deactivated", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "initialInvoice", "recentInvoice", "approvalUrl", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.recentInvoice` (object)
- `_embedded.initialInvoice` (object)
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (object)
- `_embedded.paymentInstrument` (object)
- `_embedded.upcomingInvoice` (object)
- `id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase.
  Enum: "one-time-order"
- `status` (string)
  Status of the one-time order.
  Enum: "pending", "abandoned", "completed", "canceled"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice (`null` for one-time orders).
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `deliveryAddress` (any)
  Delivery address of the order.
- `billingAddress` (any)
  Billing address of the order.

## Response 201 fields

- `id` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase. > **Note:** The order type cannot be changed after creation.
  Enum: "subscription-order"
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `status` (string)
  Status of the subscription service. A subscription starts in the `pending` status, and becomes `active` when the service period begins.
  Enum: "pending", "active", "abandoned", "canceled", "churned", "paused", "voided", "completed", "trial-ended"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `churnTime` (string | null)
  Date and time when the subscription is deactivated.
- `renewalTime` (string | null)
  Date and time when the subscription renews.
- `currentPeriodStart` (string)
  Date and time of the current service period start.
- `currentPeriodEnd` (string)
  Date and time of the current service period end.
- `rebillNumber` (integer | null)
  Current billing period number.
- `lineItems` (array)
  Subscription line items which queue until the next renewal, or interim, invoice is issued for the subscription.
- `lineItems.type` (string)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItems.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `lineItems.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lineItemSubtotal` (object)
  Subtotal of line items in this subscription (signed value). If credits exceed debits, this value is a negative number.
- `lineItemSubtotal.amount` (number)
  Amount of the subtotal.
  Example: 49.95
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `billingStatus` (string)
  Billing status of the most recent invoice. This value may help you to determine if you should change the service status of the service, such as suspending the service.
  Enum: "draft", "unpaid", "past-due", "abandoned", "paid", "voided", "refunded", "disputed", "partially-refunded", "partially-paid"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). > **Note:** The ID of the website cannot be changed after creation.
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `items` (array, required)
  Details of items in the order.
- `items.id` (string)
  ID of the order item.
- `items.planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.plan` (any, required)
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific plan item.
- `items.isModified` (boolean)
  Specifies if the plan information is modified for this subscription.
- `items.isGrandfathered` (boolean)
  Specifies if the current plan revision number is greater than the plan item revision number.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `activationTime` (string | null)
  Date and time when the order is activated.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/pendingorderttl) setting is used to calculate the value.
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. - If the `delinquencyPeriod` value is `null`, the order does not change state and remains active. You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders. - If you add a delinquency period to an active order, it is applied to all new invoices created for the order. It is not applied to the unpaid and past-due invoices. To apply a delinquency period to unpaid and past-due invoices, set the `delinquencyTime` parameter using the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=delinquencytime). If this value is not passed during order creation, an [order delinquency period](https://www.rebilly.com/catalog/all/organizations/patchorganization#organizations/patchorganization/t=request&path=settings/billing/orderdelinquencyperiod) setting is used to calculate the value.
  Example: P7D
- `poNumber` (string | null)
  Purchase order number displayed on the issued invoices.
  Example: PO123456
- `shipping` (object)
  Shipping settings.
- `notes` (string)
  Notes for the customer displayed on the order invoice.
- `canceledTime` (string | null)
  Date and time when a subscription is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "delinquency", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "organization-deactivated", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "initialInvoice", "recentInvoice", "approvalUrl", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.recentInvoice` (object)
- `_embedded.initialInvoice` (object)
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (object)
- `_embedded.paymentInstrument` (object)
- `_embedded.upcomingInvoice` (object)
- `id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `orderType` (string, required)
  Specifies the type of order. An order may be a subscription or a one-time purchase.
  Enum: "one-time-order"
- `status` (string)
  Status of the one-time order.
  Enum: "pending", "abandoned", "completed", "canceled"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `initialInvoiceId` (string | null)
  ID of the initial invoice (`null` for one-time orders).
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `deliveryAddress` (any)
  Delivery address of the order.
- `billingAddress` (any)
  Billing address of the order.

## 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 404 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 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.

# Upsert a subscription order cancellation

Creates or updates (upserts) a subscription order cancellation with a specified ID.

Endpoint: PUT /subscription-cancellations/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `subscriptionId` (string, required)
  ID of the canceled subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time.
- `status` (string)
  Status of the subscription order.
  Enum: "draft", "confirmed", "completed", "revoked"
- `churnTime` (string)
  Date and time when the subscription is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: "null", "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the period ends for this item.

## Response 200 fields

- `id` (string)
  ID of the cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `subscriptionId` (string, required)
  ID of the canceled subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `proratedInvoiceId` (string | null)
  ID of the invoice on which the cancellation proration is calculated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `appliedInvoiceId` (string | null)
  ID of the invoice on which the cancellation fees or credits are applied.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time.
- `status` (string)
  Status of the subscription order.
  Enum: "draft", "confirmed", "completed", "revoked"
- `canceledTime` (string | null)
  Date and time when a subscription is canceled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `churnTime` (string)
  Date and time when the subscription is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: "null", "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the period ends for this item.
- `lineItemSubtotal` (object)
  Subtotal of the line items added after the subscription cancellation.
- `lineItemSubtotal.amount` (number)
  Subtotal amount of the line items.
  Example: 49.95
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## Response 201 fields

- `id` (string)
  ID of the cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `subscriptionId` (string, required)
  ID of the canceled subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `proratedInvoiceId` (string | null)
  ID of the invoice on which the cancellation proration is calculated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `appliedInvoiceId` (string | null)
  ID of the invoice on which the cancellation fees or credits are applied.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time.
- `status` (string)
  Status of the subscription order.
  Enum: "draft", "confirmed", "completed", "revoked"
- `canceledTime` (string | null)
  Date and time when a subscription is canceled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `churnTime` (string)
  Date and time when the subscription is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: "null", "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the period ends for this item.
- `lineItemSubtotal` (object)
  Subtotal of the line items added after the subscription cancellation.
- `lineItemSubtotal.amount` (number)
  Subtotal amount of the line items.
  Example: 49.95
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Update a subscription order pause

Updates a subscription order pause.

Endpoint: PUT /subscription-pauses/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S

## Response 200 fields

- `id` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the subscription pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## Response 201 fields

- `id` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the subscription pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Renewal invoice issued

Endpoint: POST renewal-invoice-issued
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "renewal-invoice-issued"
- `_embedded` (object)
  Embedded objects related to the renewal invoice event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "invoice"

# Soft usage limit reached

Endpoint: POST soft-usage-limit-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionItemId` (string)
  ID of the subscription item.
  Example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS
- `planId` (string)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `usageQuantity` (integer)
  Reported usage quantity.
- `usageAmount` (number)
  Billed usage amount.
- `currency` (string)
  Currency of the billed usage amount.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "soft-usage-limit-reached", "hard-usage-limit-reached", "trial-usage-limit-reached"
- `_embedded` (object)
  Embedded objects related to the usage limit event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order activated

Endpoint: POST subscription-activated
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order canceled

Endpoint: POST subscription-canceled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order churned

Endpoint: POST subscription-churned
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order created

Endpoint: POST subscription-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order downgraded

Endpoint: POST subscription-downgraded
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription items changed

Endpoint: POST subscription-items-changed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order modified

Endpoint: POST subscription-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order pause created

Endpoint: POST subscription-pause-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription order pause modified

Endpoint: POST subscription-pause-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription order pause revoked

Endpoint: POST subscription-pause-revoked
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription order paused

Endpoint: POST subscription-paused
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription quantity filled limit reached

Endpoint: POST subscription-quantity-filled-limit-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionItemId` (string)
  ID of the subscription item.
  Example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS
- `quantity` (integer)
  Quantity of the subscription item.
- `quantityFilled` (number)
  Reported quantity.
  Example: 5.125
- `previousQuantityFilled` (number)
  Reported quantity before the subscription item updates.
  Example: 4.037
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-quantity-filled-limit-reached"
- `_embedded` (object)
  Embedded objects related to the subscription quantity limit event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order reactivated

Endpoint: POST subscription-reactivated
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription renewal reminder (deprecated)

Endpoint: POST subscription-renewal-reminder
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order renewed

Endpoint: POST subscription-renewed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order resumed

Endpoint: POST subscription-resumed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription order trial converted

Endpoint: POST subscription-trial-converted
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order trial end reminder

Endpoint: POST subscription-trial-end-reminder
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order trial ended

Endpoint: POST subscription-trial-ended
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order upgraded

Endpoint: POST subscription-upgraded
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Trial usage limit reached

Endpoint: POST trial-usage-limit-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionItemId` (string)
  ID of the subscription item.
  Example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS
- `planId` (string)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `usageQuantity` (integer)
  Reported usage quantity.
- `usageAmount` (number)
  Billed usage amount.
- `currency` (string)
  Currency of the billed usage amount.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "soft-usage-limit-reached", "hard-usage-limit-reached", "trial-usage-limit-reached"
- `_embedded` (object)
  Embedded objects related to the usage limit event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Orders timeline

Use order timelines to maintain an audit trail of changes and activity for each order.

- [GET /subscriptions/{id}/timeline](/docs/dev-docs/api/orders-timeline/getsubscriptiontimelinecollection.md): Retrieves a list of order timeline messages.
- [POST /subscriptions/{id}/timeline](/docs/dev-docs/api/orders-timeline/postsubscriptiontimeline.md): Creates an order timeline comment.
- [GET /subscriptions/{id}/timeline/{messageId}](/docs/dev-docs/api/orders-timeline/getsubscriptiontimeline.md): Retrieves an order timeline message with a specified ID.

# Retrieve an order timeline message

Retrieves an order timeline message with a specified ID.

Endpoint: GET /subscriptions/{id}/timeline/{messageId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `messageId` (string, required)
  ID of the order timeline message.

## Response 200 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "coupon-applied", "email-message-sent", "invoice-abandoned", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-renewal-payment-declined", "invoice-voided", "order-activated", "order-autopay-changed", "order-billing-address-changed", "order-billing-anchor-changed", "order-canceled", "order-churned", "order-completed", "order-custom-fields-changed", "order-delivery-address-changed", "order-downgraded", "order-change-applied", "order-change-canceled", "order-change-created", "order-items-changed", "order-paid-early", "order-quantity-changed", "order-reactivated", "order-recurring-interval-changed", "order-renewal-time-changed", "order-renewed", "order-risk-metadata-changed", "order-trial-ended", "order-upgraded", "order-voided", "order-abandoned", "quote-accepted", "subscription-paused", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-resumed", "subscription-trial-end-changed", "timeline-comment-created"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Contents of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve order timeline messages

Retrieves a list of order timeline messages.

Endpoint: GET /subscriptions/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "coupon-applied", "email-message-sent", "invoice-abandoned", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-renewal-payment-declined", "invoice-voided", "order-activated", "order-autopay-changed", "order-billing-address-changed", "order-billing-anchor-changed", "order-canceled", "order-churned", "order-completed", "order-custom-fields-changed", "order-delivery-address-changed", "order-downgraded", "order-change-applied", "order-change-canceled", "order-change-created", "order-items-changed", "order-paid-early", "order-quantity-changed", "order-reactivated", "order-recurring-interval-changed", "order-renewal-time-changed", "order-renewed", "order-risk-metadata-changed", "order-trial-ended", "order-upgraded", "order-voided", "order-abandoned", "quote-accepted", "subscription-paused", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-resumed", "subscription-trial-end-changed", "timeline-comment-created"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Contents of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create an order timeline comment

Creates an order timeline comment.

Endpoint: POST /subscriptions/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `message` (string)
  Contents of the timeline message.

## Response 201 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "coupon-applied", "email-message-sent", "invoice-abandoned", "invoice-disputed", "invoice-issued", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-refunded", "invoice-reissued", "invoice-renewal-payment-declined", "invoice-voided", "order-activated", "order-autopay-changed", "order-billing-address-changed", "order-billing-anchor-changed", "order-canceled", "order-churned", "order-completed", "order-custom-fields-changed", "order-delivery-address-changed", "order-downgraded", "order-change-applied", "order-change-canceled", "order-change-created", "order-items-changed", "order-paid-early", "order-quantity-changed", "order-reactivated", "order-recurring-interval-changed", "order-renewal-time-changed", "order-renewed", "order-risk-metadata-changed", "order-trial-ended", "order-upgraded", "order-voided", "order-abandoned", "quote-accepted", "subscription-paused", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-resumed", "subscription-trial-end-changed", "timeline-comment-created"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Contents of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Cancel an order change

Cancels a pending order change with a specified ID.
The current items of the order stay as they are.
A change cannot be canceled after it is locked by an issued invoice, applied, canceled, or superseded.

Endpoint: DELETE /order-changes/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 409 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 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.

# Delete an order pause

Deletes an order pause with a specified ID.
If the specified pause is `pending`, it is `revoked`.
If the specified pause is `ongoing`, it is `finished`.

Endpoint: DELETE /order-pauses/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 409 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 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.

# Retrieve an order

Retrieves an order with a specified ID.

Endpoint: GET /orders/{id}
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=customer,activationInvoice`. Available arguments are: - `customer` - `activationInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` - `website` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `type` (string, required)
  Type of the order.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `activationInvoiceId` (string)
  ID of the activation invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the order.
  Enum: "pending", "voided", "completed", "abandoned"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `items` (array, required)
  Item in the order.
- `items.id` (string)
  ID of the subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.type` (string, required)
  Specifies the type of order item.
- `items.renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `items.renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `items.recurringInterval` (object | null)
  Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length.
  Example: null
- `items.recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `items.renewalTime` (string | null)
  Date and time when the subscription renews.
- `items.currentPeriodStart` (string)
  Date and time of the current service period start.
- `items.currentPeriodEnd` (string)
  Date and time of the current service period end.
- `items.rebillNumber` (integer | null)
  Current billing period number.
- `items.productId` (string)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.plan` (any, required)
  Details of the plan.
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific item.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `items.revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `invoiceIssueTimeShift` (string)
  Invoice issue time shift interval in ISO-8601 format. This field adjusts the issue date and time of renewal invoices for the order. This interval value supports the `-` symbol.
  Example: +P00Y00M00DT00H00M00S
- `invoiceDueTimeShift` (string)
  Invoice due time shift interval in ISO-8601 format. Use this field to adjust when payment is due for the order. If autopay is configured, payment is collected automatically on this date. This interval value supports the `+` symbol.
  Example: +P00Y00M00DT00H00M00S
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `poNumber` (string | null)
  Purchase order number that is displayed on the issued invoices.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the order invoice.
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state.
  Example: +P00Y00M07DT00H00M00S
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `activationTime` (string | null)
  Date and time when the order is activated.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `churnTime` (string | null)
  Date and time when the order is deactivated.
- `cancellationTime` (string | null)
  Date and time when an order is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `currentPeriodStart` (string | null)
  Date and time of the current service period start.
- `currentPeriodEnd` (string | null)
  Date and time of the current service period end. If subscriptions have different recurring settings or the order is not active, providing this field causes the request to be rejected with a conflict. This field is ignored if the order is in trial.
- `renewalTime` (string | null)
  Date and time when the next subscription in this recurring order renews.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.email` (string | null)
  Customer's email address.
- `_embedded.customer.firstName` (string | null)
  Customer's first name.
- `_embedded.customer.lastName` (string | null)
  Customer's last name.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `_embedded.customer.defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.customer.defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `_embedded.customer.company.name` (string | null)
  Name of the company.
- `_embedded.customer.company.domain` (string)
  Website domain of the company.
- `_embedded.customer.company.yearFounded` (number | null)
  Founding year of the company.
- `_embedded.customer.company.industry` (string | null)
  Industry the company is associated with.
- `_embedded.customer.company.employeesCount` (number | null)
  Number of employees in the company.
- `_embedded.customer.company.country` (string | null)
  Country where the company is based.
- `_embedded.customer.company.locality` (string | null)
  Locality or region where the company is based.
- `_embedded.customer.company._links` (array)
- `_embedded.customer.company._links.href` (string)
  Link URL.
- `_embedded.customer.company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `_embedded.customer.averageValue` (object)
  Average customer value.
- `_embedded.customer.averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `_embedded.customer.averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `_embedded.customer.paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `_embedded.customer.lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `_embedded.customer.lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `_embedded.customer.invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `_embedded.customer.tags` (array)
  List of customer tags.
- `_embedded.customer.tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.customer.tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `_embedded.customer.tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `_embedded.customer.revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_embedded.customer.hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.leadSource._links` (array)
  Related links.
- `_embedded.customer.leadSource._links.href` (string)
  Link URL.
- `_embedded.customer.leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.customer._links` (array)
  Related links.
- `_embedded.customer._links.href` (string)
  Link URL.
- `_embedded.customer._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded.customer._embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.customer._embedded.defaultPaymentInstrument` (object)
- `_embedded.customer._embedded.website` (object)
- `_embedded.customer._embedded.leadSource` (object)
- `_embedded.activationInvoice` (object)
- `_embedded.activationInvoice.id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `_embedded.activationInvoice.orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.activationInvoice.subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `_embedded.activationInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.activationInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.activationInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.activationInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.activationInvoice.tax` (object)
  Taxes.
- `_embedded.activationInvoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.billingAddress` (object)
  Contact's information.
- `_embedded.activationInvoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.activationInvoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.activationInvoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.activationInvoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.activationInvoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.activationInvoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.activationInvoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.activationInvoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.activationInvoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.activationInvoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.activationInvoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.activationInvoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.activationInvoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.activationInvoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.activationInvoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.activationInvoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.activationInvoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.activationInvoice.billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `_embedded.activationInvoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.activationInvoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.activationInvoice.items` (array)
  Invoice items array.
- `_embedded.activationInvoice.items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.activationInvoice.items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `_embedded.activationInvoice.items.description` (string)
  Description of the invoice item.
- `_embedded.activationInvoice.items.unitPrice` (number, required)
  Unit price of the invoice item.
- `_embedded.activationInvoice.items.quantity` (integer)
  Quantity of the invoice item.
- `_embedded.activationInvoice.items.price` (number)
  Total price of the invoice item.
- `_embedded.activationInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.activationInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.activationInvoice.items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `_embedded.activationInvoice.items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `_embedded.activationInvoice.items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.activationInvoice.items.tax` (any)
  Invoice item tax.
- `_embedded.activationInvoice.items._links` (array)
  Related links.
- `_embedded.activationInvoice.items._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded.activationInvoice.items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.items._embedded.product` (object)
- `_embedded.activationInvoice.items._embedded.plan` (object)
- `_embedded.activationInvoice.discounts` (array)
  Discounts applied.
- `_embedded.activationInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.activationInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.activationInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.activationInvoice.discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `_embedded.activationInvoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.activationInvoice.autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `_embedded.activationInvoice.status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `_embedded.activationInvoice.delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `_embedded.activationInvoice.collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `_embedded.activationInvoice.abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `_embedded.activationInvoice.voidedTime` (string | null)
  Date and time when the invoice is voided.
- `_embedded.activationInvoice.paidTime` (string | null)
  Date and time when the invoice is paid.
- `_embedded.activationInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.activationInvoice.issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_embedded.activationInvoice.paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `_embedded.activationInvoice.creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `_embedded.activationInvoice.creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.creditMemoAllocations.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.
- `_embedded.activationInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.activationInvoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `_embedded.activationInvoice.transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.activationInvoice.transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `_embedded.activationInvoice.transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `_embedded.activationInvoice.transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `_embedded.activationInvoice.transactions.amount` (number)
  Total amount of the transaction.
- `_embedded.activationInvoice.transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `_embedded.activationInvoice.transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `_embedded.activationInvoice.transactions.childTransactions` (array)
  IDs of child transactions.
- `_embedded.activationInvoice.transactions.invoiceIds` (array)
  Related invoice IDs.
- `_embedded.activationInvoice.transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `_embedded.activationInvoice.transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `_embedded.activationInvoice.transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `_embedded.activationInvoice.transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `_embedded.activationInvoice.transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `_embedded.activationInvoice.transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `_embedded.activationInvoice.transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `_embedded.activationInvoice.transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `_embedded.activationInvoice.transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `_embedded.activationInvoice.transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `_embedded.activationInvoice.transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `_embedded.activationInvoice.transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.activationInvoice.transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `_embedded.activationInvoice.transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `_embedded.activationInvoice.transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `_embedded.activationInvoice.transactions.description` (string)
  Description of the payment.
- `_embedded.activationInvoice.transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.activationInvoice.transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `_embedded.activationInvoice.transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `_embedded.activationInvoice.transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.gateway` (object)
  Related gateway information.
- `_embedded.activationInvoice.transactions.gateway.response` (object)
  Gateway response.
- `_embedded.activationInvoice.transactions.gateway.response.code` (string | null)
  Gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.message` (string | null)
  Gateway response message.
- `_embedded.activationInvoice.transactions.gateway.response.type` (string | null)
  Gateway response type.
- `_embedded.activationInvoice.transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.activationInvoice.transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.activationInvoice.transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `_embedded.activationInvoice.transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `_embedded.activationInvoice.transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `_embedded.activationInvoice.transactions.paymentInstrument` (object)
- `_embedded.activationInvoice.transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `_embedded.activationInvoice.transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `_embedded.activationInvoice.transactions.dcc.base` (object)
- `_embedded.activationInvoice.transactions.dcc.base.amount` (number, required)
  Example: 10
- `_embedded.activationInvoice.transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `_embedded.activationInvoice.transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `_embedded.activationInvoice.transactions.riskScore` (integer)
  Risk score for the transaction.
- `_embedded.activationInvoice.transactions.riskMetadata` (any)
- `_embedded.activationInvoice.transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.activationInvoice.transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `_embedded.activationInvoice.transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `_embedded.activationInvoice.transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `_embedded.activationInvoice.transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `_embedded.activationInvoice.transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.activationInvoice.transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.activationInvoice.transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `_embedded.activationInvoice.transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.activationInvoice.transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `_embedded.activationInvoice.transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `_embedded.activationInvoice.transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `_embedded.activationInvoice.transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `_embedded.activationInvoice.transactions.limits` (object | null)
  Transaction amount limit information.
- `_embedded.activationInvoice.transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.activationInvoice.transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.activationInvoice.transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `_embedded.activationInvoice.transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_embedded.activationInvoice.transactions._links` (array)
  Related links.
- `_embedded.activationInvoice.transactions._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded.activationInvoice.transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.transactions._embedded.parentTransaction` (object)
- `_embedded.activationInvoice.transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.activationInvoice.transactions._embedded.gatewayAccount` (object)
- `_embedded.activationInvoice.transactions._embedded.customer` (object)
- `_embedded.activationInvoice.transactions._embedded.leadSource` (object)
- `_embedded.activationInvoice.transactions._embedded.website` (object)
- `_embedded.activationInvoice.transactions._embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.activationInvoice.transactions._embedded.organization` (object)
- `_embedded.activationInvoice.transactions._embedded.dispute` (object)
- `_embedded.activationInvoice.transactions._embedded.paymentCard` (object)
- `_embedded.activationInvoice.transactions._embedded.bankAccount` (object)
- `_embedded.activationInvoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.activationInvoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.activationInvoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.activationInvoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.activationInvoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.activationInvoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.activationInvoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.activationInvoice.revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.activationInvoice.type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `_embedded.activationInvoice.dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `_embedded.activationInvoice.dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `_embedded.activationInvoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_embedded.activationInvoice._links` (array)
  Related links.
- `_embedded.activationInvoice._links.href` (string)
  Link URL.
- `_embedded.activationInvoice._links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded.activationInvoice._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice._embedded.customer` (object)
- `_embedded.activationInvoice._embedded.website` (object)
- `_embedded.activationInvoice._embedded.organization` (object)
- `_embedded.activationInvoice._embedded.leadSource` (object)
- `_embedded.activationInvoice._embedded.shippingRate` (object)
- `_embedded.upcomingInvoice` (object)
- `_embedded.upcomingInvoice.id` (string)
  ID of the upcoming invoice. This value is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.upcomingInvoice.revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.upcomingInvoice.items` (array)
  Upcoming invoice items array.
- `_embedded.upcomingInvoice.items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.upcomingInvoice.items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `_embedded.upcomingInvoice.items.description` (string)
  Description of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.price` (number)
  Total price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.upcomingInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.upcomingInvoice.items.orderId` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.upcomingInvoice.items.periodStartTime` (string)
  Date and time when the billing period starts.
- `_embedded.upcomingInvoice.items.periodEndTime` (string)
  Date and time when the billing period ends.
- `_embedded.upcomingInvoice.items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.upcomingInvoice.items.tax` (object)
- `_embedded.upcomingInvoice.items.tax.amount` (number, required)
  Amount of the tax.
- `_embedded.upcomingInvoice.items.tax.description` (string, required)
  Description of the tax.
- `_embedded.upcomingInvoice.items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `_embedded.upcomingInvoice.items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `_embedded.upcomingInvoice.items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `_embedded.upcomingInvoice.items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `_embedded.upcomingInvoice.items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `_embedded.upcomingInvoice.items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `_embedded.upcomingInvoice.items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `_embedded.upcomingInvoice.items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `_embedded.upcomingInvoice.items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.upcomingInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.upcomingInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.upcomingInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.upcomingInvoice.discounts` (array)
  Discounts applied.
- `_embedded.upcomingInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.upcomingInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.upcomingInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.upcomingInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.upcomingInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.paymentInstrument` (any)
- `_embedded.website` (object)
- `_embedded.website.id` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.website.name` (string, required)
  Name of the website.
- `_embedded.website.url` (string, required)
  Domain address of the website.
- `_embedded.website.servicePhone` (string, required)
  Customer service phone number of the website.
- `_embedded.website.serviceEmail` (string, required)
  Customer service email address of the website.
- `_embedded.website.settings` (object)
  Website settings.
- `_embedded.website.settings.paymentForm` (object)
  Payment form settings.
- `_embedded.website.settings.paymentForm.css` (string | null)
  Hosted payment form [CSS options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#2-use-css-property-to-override-any-styles).
- `_embedded.website.settings.paymentForm.features` (object | null)
  Hosted payment form features.
- `_embedded.website.settings.paymentForm.features.showCoupons` (array | null)
- `_embedded.website.settings.paymentForm.features.fullPageRedirect` (boolean | null)
  Specifies whether the hosted payment form uses a full page redirect, or the default iframe modal, for approval URL redirects.
- `_embedded.website.settings.paymentForm.features.skipRedirectOnPaymentComplete` (boolean | null)
  Specifies whether the hosted payment form skips the redirect to the website URL when the payment is completed.
- `_embedded.website.settings.paymentForm.features.hideZeroAmountSummaryItems` (boolean | null)
  Specifies if the hosted payment form displays 0 amount line items in the summary.
- `_embedded.website.settings.amplitude` (object)
  Amplitude settings. Amplitude is an analytics tool for tracking user behavior.
- `_embedded.website.settings.amplitude.tracking` (boolean)
  Specifies if the hosted pages, such as KYC pages, include Amplitude analytics.
- `_embedded.website.settings.amplitude.apiKey` (string | null)
  API key of an Amplitude project.
  Example: 35d1795750c585984f7e6b01c0ca6e19
- `_embedded.website.settings.payoutRequest` (object)
  Payout request settings for the website.
- `_embedded.website.settings.payoutRequest.automaticReadinessEnabled` (boolean)
  Specifies whether pending payout requests are automatically marked as `ready`. When this value is `false`, payout requests are created in the `ready` status and automatic transition is not used. When this value is `true`, payout requests remain in the `pending` status until the pending period elapses and the configured transition time is reached.
- `_embedded.website.settings.payoutRequest.pendingPeriodHours` (integer)
  Minimum number of hours a payout request stays in the `pending` status before it can be automatically set to `ready`. Required when `automaticReadinessEnabled` is `true`.
  Example: 48
- `_embedded.website.settings.payoutRequest.automaticReadinessTime` (string)
  Time of day when the automatic readiness job processes eligible pending payout requests. Required when `automaticReadinessEnabled` is `true`. Use extended ISO-8601 time format (`HH:MM:SS`) with an optional timezone offset. When the timezone offset is omitted, the server timezone is used.
  Example: 10:00:00Z
- `_embedded.website.settings.payoutRequest.automaticReadinessLastExecutedAt` (string | null)
  Date and time when the automatic readiness job last completed successfully for this website.
- `_embedded.website.logoId` (string | null)
  ID of the linked file object.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.website.logoUrl` (string | null)
  URL of the website logo.
- `_embedded.website.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.website._links` (array)
  Related links.
- `_embedded.website._links.href` (string)
  Link URL.
- `_embedded.website._links.rel` (string)
  Type of link.
  Enum: "self", "logoUrl"
- `billingAddress` (any)
  Billing address of the order.
- `deliveryAddress` (any)
  Delivery address of the order.

## 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 404 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.

# Retrieve an order cancellation

Retrieves an order cancellation with a specified ID.

Endpoint: GET /order-cancellations/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `orderId` (string, required)
  ID of the canceled order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `proratedInvoiceId` (string | null)
  ID of the invoice on which the cancellation proration is calculated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `appliedInvoiceId` (string | null)
  ID of the invoice on which the cancellation fees or credits are applied.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and order next renewal time.
- `status` (string)
  Status of the order cancellation.
  Enum: "draft", "confirmed", "completed", "revoked"
- `canceledTime` (string | null)
  Date and time when an order is canceled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `churnTime` (string)
  Date and time when the order is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the order is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: null, "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItemSubtotal` (object)
  Subtotal of the line items added after the order cancellation.
- `lineItemSubtotal.amount` (number)
  Subtotal amount of the line items.
  Example: 49.95
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve order cancellation collection

Retrieves a list of order cancellations.

Endpoint: GET /order-cancellations
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `orderId` (string, required)
  ID of the canceled order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `proratedInvoiceId` (string | null)
  ID of the invoice on which the cancellation proration is calculated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `appliedInvoiceId` (string | null)
  ID of the invoice on which the cancellation fees or credits are applied.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and order next renewal time.
- `status` (string)
  Status of the order cancellation.
  Enum: "draft", "confirmed", "completed", "revoked"
- `canceledTime` (string | null)
  Date and time when an order is canceled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `churnTime` (string)
  Date and time when the order is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the order is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: null, "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItemSubtotal` (object)
  Subtotal of the line items added after the order cancellation.
- `lineItemSubtotal.amount` (number)
  Subtotal amount of the line items.
  Example: 49.95
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve an order change

Retrieves an order change with a specified ID.

Endpoint: GET /order-changes/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the order change.
  Example: ord_chg_0YV7DES3WPC5J8JD8QTVNZBZQ8
- `orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the order change.
  Enum: "pending", "applied", "canceled", "superseded"
- `applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `lockedTime` (string | null)
  Date and time when the items of a pending change are billed. After this time, the change is locked and cannot be modified until the renewal.
- `appliedTime` (string | null)
  Date and time when the items of the order are replaced.
- `quoteId` (string | null)
  ID of the quote that is used to create the change. This value is `null` if the change is not created from a quote.
- `items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `items.plan` (any, required)
  Plan details.
- `items.quantity` (integer)
  Number of units of the product on the given plan.
- `items.usageLimits` (any)
- `items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve order changes

Retrieves a list of order changes.
To find the pending change of an order, use `filter=orderId:{orderId};status:pending`.

Endpoint: GET /order-changes
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the order change.
  Example: ord_chg_0YV7DES3WPC5J8JD8QTVNZBZQ8
- `orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the order change.
  Enum: "pending", "applied", "canceled", "superseded"
- `applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `lockedTime` (string | null)
  Date and time when the items of a pending change are billed. After this time, the change is locked and cannot be modified until the renewal.
- `appliedTime` (string | null)
  Date and time when the items of the order are replaced.
- `quoteId` (string | null)
  ID of the quote that is used to create the change. This value is `null` if the change is not created from a quote.
- `items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `items.plan` (any, required)
  Plan details.
- `items.quantity` (integer)
  Number of units of the product on the given plan.
- `items.usageLimits` (any)
- `items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve orders

Retrieves a collection of orders.

Endpoint: GET /orders
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.
- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=customer,activationInvoice`. Available arguments are: - `customer` - `activationInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` - `website` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `type` (string, required)
  Type of the order.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `activationInvoiceId` (string)
  ID of the activation invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the order.
  Enum: "pending", "voided", "completed", "abandoned"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `items` (array, required)
  Item in the order.
- `items.id` (string)
  ID of the subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.type` (string, required)
  Specifies the type of order item.
- `items.renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `items.renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `items.recurringInterval` (object | null)
  Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length.
  Example: null
- `items.recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `items.renewalTime` (string | null)
  Date and time when the subscription renews.
- `items.currentPeriodStart` (string)
  Date and time of the current service period start.
- `items.currentPeriodEnd` (string)
  Date and time of the current service period end.
- `items.rebillNumber` (integer | null)
  Current billing period number.
- `items.productId` (string)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.plan` (any, required)
  Details of the plan.
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific item.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `items.revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `invoiceIssueTimeShift` (string)
  Invoice issue time shift interval in ISO-8601 format. This field adjusts the issue date and time of renewal invoices for the order. This interval value supports the `-` symbol.
  Example: +P00Y00M00DT00H00M00S
- `invoiceDueTimeShift` (string)
  Invoice due time shift interval in ISO-8601 format. Use this field to adjust when payment is due for the order. If autopay is configured, payment is collected automatically on this date. This interval value supports the `+` symbol.
  Example: +P00Y00M00DT00H00M00S
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `poNumber` (string | null)
  Purchase order number that is displayed on the issued invoices.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the order invoice.
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state.
  Example: +P00Y00M07DT00H00M00S
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `activationTime` (string | null)
  Date and time when the order is activated.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `churnTime` (string | null)
  Date and time when the order is deactivated.
- `cancellationTime` (string | null)
  Date and time when an order is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `currentPeriodStart` (string | null)
  Date and time of the current service period start.
- `currentPeriodEnd` (string | null)
  Date and time of the current service period end. If subscriptions have different recurring settings or the order is not active, providing this field causes the request to be rejected with a conflict. This field is ignored if the order is in trial.
- `renewalTime` (string | null)
  Date and time when the next subscription in this recurring order renews.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.email` (string | null)
  Customer's email address.
- `_embedded.customer.firstName` (string | null)
  Customer's first name.
- `_embedded.customer.lastName` (string | null)
  Customer's last name.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `_embedded.customer.defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.customer.defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `_embedded.customer.company.name` (string | null)
  Name of the company.
- `_embedded.customer.company.domain` (string)
  Website domain of the company.
- `_embedded.customer.company.yearFounded` (number | null)
  Founding year of the company.
- `_embedded.customer.company.industry` (string | null)
  Industry the company is associated with.
- `_embedded.customer.company.employeesCount` (number | null)
  Number of employees in the company.
- `_embedded.customer.company.country` (string | null)
  Country where the company is based.
- `_embedded.customer.company.locality` (string | null)
  Locality or region where the company is based.
- `_embedded.customer.company._links` (array)
- `_embedded.customer.company._links.href` (string)
  Link URL.
- `_embedded.customer.company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `_embedded.customer.averageValue` (object)
  Average customer value.
- `_embedded.customer.averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `_embedded.customer.averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `_embedded.customer.paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `_embedded.customer.lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `_embedded.customer.lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `_embedded.customer.invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `_embedded.customer.tags` (array)
  List of customer tags.
- `_embedded.customer.tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.customer.tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `_embedded.customer.tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `_embedded.customer.revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_embedded.customer.hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.leadSource._links` (array)
  Related links.
- `_embedded.customer.leadSource._links.href` (string)
  Link URL.
- `_embedded.customer.leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.customer._links` (array)
  Related links.
- `_embedded.customer._links.href` (string)
  Link URL.
- `_embedded.customer._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded.customer._embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.customer._embedded.defaultPaymentInstrument` (object)
- `_embedded.customer._embedded.website` (object)
- `_embedded.customer._embedded.leadSource` (object)
- `_embedded.activationInvoice` (object)
- `_embedded.activationInvoice.id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `_embedded.activationInvoice.orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.activationInvoice.subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `_embedded.activationInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.activationInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.activationInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.activationInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.activationInvoice.tax` (object)
  Taxes.
- `_embedded.activationInvoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.billingAddress` (object)
  Contact's information.
- `_embedded.activationInvoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.activationInvoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.activationInvoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.activationInvoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.activationInvoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.activationInvoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.activationInvoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.activationInvoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.activationInvoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.activationInvoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.activationInvoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.activationInvoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.activationInvoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.activationInvoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.activationInvoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.activationInvoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.activationInvoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.activationInvoice.billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `_embedded.activationInvoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.activationInvoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.activationInvoice.items` (array)
  Invoice items array.
- `_embedded.activationInvoice.items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.activationInvoice.items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `_embedded.activationInvoice.items.description` (string)
  Description of the invoice item.
- `_embedded.activationInvoice.items.unitPrice` (number, required)
  Unit price of the invoice item.
- `_embedded.activationInvoice.items.quantity` (integer)
  Quantity of the invoice item.
- `_embedded.activationInvoice.items.price` (number)
  Total price of the invoice item.
- `_embedded.activationInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.activationInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.activationInvoice.items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `_embedded.activationInvoice.items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `_embedded.activationInvoice.items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.activationInvoice.items.tax` (any)
  Invoice item tax.
- `_embedded.activationInvoice.items._links` (array)
  Related links.
- `_embedded.activationInvoice.items._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded.activationInvoice.items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.items._embedded.product` (object)
- `_embedded.activationInvoice.items._embedded.plan` (object)
- `_embedded.activationInvoice.discounts` (array)
  Discounts applied.
- `_embedded.activationInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.activationInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.activationInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.activationInvoice.discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `_embedded.activationInvoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.activationInvoice.autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `_embedded.activationInvoice.status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `_embedded.activationInvoice.delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `_embedded.activationInvoice.collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `_embedded.activationInvoice.abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `_embedded.activationInvoice.voidedTime` (string | null)
  Date and time when the invoice is voided.
- `_embedded.activationInvoice.paidTime` (string | null)
  Date and time when the invoice is paid.
- `_embedded.activationInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.activationInvoice.issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_embedded.activationInvoice.paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `_embedded.activationInvoice.creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `_embedded.activationInvoice.creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.creditMemoAllocations.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.
- `_embedded.activationInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.activationInvoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `_embedded.activationInvoice.transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.activationInvoice.transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `_embedded.activationInvoice.transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `_embedded.activationInvoice.transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `_embedded.activationInvoice.transactions.amount` (number)
  Total amount of the transaction.
- `_embedded.activationInvoice.transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `_embedded.activationInvoice.transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `_embedded.activationInvoice.transactions.childTransactions` (array)
  IDs of child transactions.
- `_embedded.activationInvoice.transactions.invoiceIds` (array)
  Related invoice IDs.
- `_embedded.activationInvoice.transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `_embedded.activationInvoice.transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `_embedded.activationInvoice.transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `_embedded.activationInvoice.transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `_embedded.activationInvoice.transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `_embedded.activationInvoice.transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `_embedded.activationInvoice.transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `_embedded.activationInvoice.transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `_embedded.activationInvoice.transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `_embedded.activationInvoice.transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `_embedded.activationInvoice.transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `_embedded.activationInvoice.transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.activationInvoice.transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `_embedded.activationInvoice.transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `_embedded.activationInvoice.transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `_embedded.activationInvoice.transactions.description` (string)
  Description of the payment.
- `_embedded.activationInvoice.transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.activationInvoice.transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `_embedded.activationInvoice.transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `_embedded.activationInvoice.transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.gateway` (object)
  Related gateway information.
- `_embedded.activationInvoice.transactions.gateway.response` (object)
  Gateway response.
- `_embedded.activationInvoice.transactions.gateway.response.code` (string | null)
  Gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.message` (string | null)
  Gateway response message.
- `_embedded.activationInvoice.transactions.gateway.response.type` (string | null)
  Gateway response type.
- `_embedded.activationInvoice.transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.activationInvoice.transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.activationInvoice.transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `_embedded.activationInvoice.transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `_embedded.activationInvoice.transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `_embedded.activationInvoice.transactions.paymentInstrument` (object)
- `_embedded.activationInvoice.transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `_embedded.activationInvoice.transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `_embedded.activationInvoice.transactions.dcc.base` (object)
- `_embedded.activationInvoice.transactions.dcc.base.amount` (number, required)
  Example: 10
- `_embedded.activationInvoice.transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `_embedded.activationInvoice.transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `_embedded.activationInvoice.transactions.riskScore` (integer)
  Risk score for the transaction.
- `_embedded.activationInvoice.transactions.riskMetadata` (any)
- `_embedded.activationInvoice.transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.activationInvoice.transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `_embedded.activationInvoice.transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `_embedded.activationInvoice.transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `_embedded.activationInvoice.transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `_embedded.activationInvoice.transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.activationInvoice.transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.activationInvoice.transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `_embedded.activationInvoice.transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.activationInvoice.transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `_embedded.activationInvoice.transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `_embedded.activationInvoice.transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `_embedded.activationInvoice.transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `_embedded.activationInvoice.transactions.limits` (object | null)
  Transaction amount limit information.
- `_embedded.activationInvoice.transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.activationInvoice.transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.activationInvoice.transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `_embedded.activationInvoice.transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_embedded.activationInvoice.transactions._links` (array)
  Related links.
- `_embedded.activationInvoice.transactions._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded.activationInvoice.transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.transactions._embedded.parentTransaction` (object)
- `_embedded.activationInvoice.transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.activationInvoice.transactions._embedded.gatewayAccount` (object)
- `_embedded.activationInvoice.transactions._embedded.customer` (object)
- `_embedded.activationInvoice.transactions._embedded.leadSource` (object)
- `_embedded.activationInvoice.transactions._embedded.website` (object)
- `_embedded.activationInvoice.transactions._embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.activationInvoice.transactions._embedded.organization` (object)
- `_embedded.activationInvoice.transactions._embedded.dispute` (object)
- `_embedded.activationInvoice.transactions._embedded.paymentCard` (object)
- `_embedded.activationInvoice.transactions._embedded.bankAccount` (object)
- `_embedded.activationInvoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.activationInvoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.activationInvoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.activationInvoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.activationInvoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.activationInvoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.activationInvoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.activationInvoice.revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.activationInvoice.type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `_embedded.activationInvoice.dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `_embedded.activationInvoice.dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `_embedded.activationInvoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_embedded.activationInvoice._links` (array)
  Related links.
- `_embedded.activationInvoice._links.href` (string)
  Link URL.
- `_embedded.activationInvoice._links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded.activationInvoice._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice._embedded.customer` (object)
- `_embedded.activationInvoice._embedded.website` (object)
- `_embedded.activationInvoice._embedded.organization` (object)
- `_embedded.activationInvoice._embedded.leadSource` (object)
- `_embedded.activationInvoice._embedded.shippingRate` (object)
- `_embedded.upcomingInvoice` (object)
- `_embedded.upcomingInvoice.id` (string)
  ID of the upcoming invoice. This value is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.upcomingInvoice.revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.upcomingInvoice.items` (array)
  Upcoming invoice items array.
- `_embedded.upcomingInvoice.items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.upcomingInvoice.items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `_embedded.upcomingInvoice.items.description` (string)
  Description of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.price` (number)
  Total price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.upcomingInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.upcomingInvoice.items.orderId` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.upcomingInvoice.items.periodStartTime` (string)
  Date and time when the billing period starts.
- `_embedded.upcomingInvoice.items.periodEndTime` (string)
  Date and time when the billing period ends.
- `_embedded.upcomingInvoice.items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.upcomingInvoice.items.tax` (object)
- `_embedded.upcomingInvoice.items.tax.amount` (number, required)
  Amount of the tax.
- `_embedded.upcomingInvoice.items.tax.description` (string, required)
  Description of the tax.
- `_embedded.upcomingInvoice.items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `_embedded.upcomingInvoice.items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `_embedded.upcomingInvoice.items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `_embedded.upcomingInvoice.items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `_embedded.upcomingInvoice.items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `_embedded.upcomingInvoice.items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `_embedded.upcomingInvoice.items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `_embedded.upcomingInvoice.items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `_embedded.upcomingInvoice.items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.upcomingInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.upcomingInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.upcomingInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.upcomingInvoice.discounts` (array)
  Discounts applied.
- `_embedded.upcomingInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.upcomingInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.upcomingInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.upcomingInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.upcomingInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.paymentInstrument` (any)
- `_embedded.website` (object)
- `_embedded.website.id` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.website.name` (string, required)
  Name of the website.
- `_embedded.website.url` (string, required)
  Domain address of the website.
- `_embedded.website.servicePhone` (string, required)
  Customer service phone number of the website.
- `_embedded.website.serviceEmail` (string, required)
  Customer service email address of the website.
- `_embedded.website.settings` (object)
  Website settings.
- `_embedded.website.settings.paymentForm` (object)
  Payment form settings.
- `_embedded.website.settings.paymentForm.css` (string | null)
  Hosted payment form [CSS options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#2-use-css-property-to-override-any-styles).
- `_embedded.website.settings.paymentForm.features` (object | null)
  Hosted payment form features.
- `_embedded.website.settings.paymentForm.features.showCoupons` (array | null)
- `_embedded.website.settings.paymentForm.features.fullPageRedirect` (boolean | null)
  Specifies whether the hosted payment form uses a full page redirect, or the default iframe modal, for approval URL redirects.
- `_embedded.website.settings.paymentForm.features.skipRedirectOnPaymentComplete` (boolean | null)
  Specifies whether the hosted payment form skips the redirect to the website URL when the payment is completed.
- `_embedded.website.settings.paymentForm.features.hideZeroAmountSummaryItems` (boolean | null)
  Specifies if the hosted payment form displays 0 amount line items in the summary.
- `_embedded.website.settings.amplitude` (object)
  Amplitude settings. Amplitude is an analytics tool for tracking user behavior.
- `_embedded.website.settings.amplitude.tracking` (boolean)
  Specifies if the hosted pages, such as KYC pages, include Amplitude analytics.
- `_embedded.website.settings.amplitude.apiKey` (string | null)
  API key of an Amplitude project.
  Example: 35d1795750c585984f7e6b01c0ca6e19
- `_embedded.website.settings.payoutRequest` (object)
  Payout request settings for the website.
- `_embedded.website.settings.payoutRequest.automaticReadinessEnabled` (boolean)
  Specifies whether pending payout requests are automatically marked as `ready`. When this value is `false`, payout requests are created in the `ready` status and automatic transition is not used. When this value is `true`, payout requests remain in the `pending` status until the pending period elapses and the configured transition time is reached.
- `_embedded.website.settings.payoutRequest.pendingPeriodHours` (integer)
  Minimum number of hours a payout request stays in the `pending` status before it can be automatically set to `ready`. Required when `automaticReadinessEnabled` is `true`.
  Example: 48
- `_embedded.website.settings.payoutRequest.automaticReadinessTime` (string)
  Time of day when the automatic readiness job processes eligible pending payout requests. Required when `automaticReadinessEnabled` is `true`. Use extended ISO-8601 time format (`HH:MM:SS`) with an optional timezone offset. When the timezone offset is omitted, the server timezone is used.
  Example: 10:00:00Z
- `_embedded.website.settings.payoutRequest.automaticReadinessLastExecutedAt` (string | null)
  Date and time when the automatic readiness job last completed successfully for this website.
- `_embedded.website.logoId` (string | null)
  ID of the linked file object.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.website.logoUrl` (string | null)
  URL of the website logo.
- `_embedded.website.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.website._links` (array)
  Related links.
- `_embedded.website._links.href` (string)
  Link URL.
- `_embedded.website._links.rel` (string)
  Type of link.
  Enum: "self", "logoUrl"
- `billingAddress` (any)
  Billing address of the order.
- `deliveryAddress` (any)
  Delivery address of the order.

## 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.

# Retrieve an order pause

Retrieves an order pause with a specified ID.

Endpoint: GET /order-pauses/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the order pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `orderId` (string, required)
  ID of the paused order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `status` (string)
  Status of the order pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the order resumes billing. To resume an order from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the order is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month order on a 30-day month is paused on day 20. There are 10 unused days on the order. Therefore, the order renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If a subscription item in the order uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve order pauses

Retrieves a list of order pauses.

Endpoint: GET /order-pauses
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the order pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `orderId` (string, required)
  ID of the paused order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `status` (string)
  Status of the order pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the order resumes billing. To resume an order from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the order is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month order on a 30-day month is paused on day 20. There are 10 unused days on the order. Therefore, the order renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If a subscription item in the order uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve an order reactivation

Retrieves an order reactivation with a specified ID.

Endpoint: GET /order-reactivations/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the reactivation.
  Example: ord_rct_0YVJ62AF5XCFCA6EBFAAA3Z7E0
- `orderId` (string, required)
  ID of the reactivated order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `cancellationId` (string)
  ID of the related cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `description` (string | null)
  Description of the reactivation reason in free form.
- `renewalTime` (string)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve order reactivations

Retrieves a list of order reactivations.

Endpoint: GET /order-reactivations
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the reactivation.
  Example: ord_rct_0YVJ62AF5XCFCA6EBFAAA3Z7E0
- `orderId` (string, required)
  ID of the reactivated order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `cancellationId` (string)
  ID of the related cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `description` (string | null)
  Description of the reactivation reason in free form.
- `renewalTime` (string)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve an upcoming order invoice

Retrieves an upcoming invoice for a specified order.

An upcoming invoice is an invoice that has not been issued.
It functions as a preview of the next invoice for the order.
For more information, see [Invoices](https://www.rebilly.com/docs/dev-docs/invoices/).

Endpoint: GET /orders/{id}/upcoming-invoice
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the upcoming invoice. This value is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `items` (array)
  Upcoming invoice items array.
- `items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `items.description` (string)
  Description of the upcoming invoice item.
- `items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `items.price` (number)
  Total price of the upcoming invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.orderId` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `items.periodStartTime` (string)
  Date and time when the billing period starts.
- `items.periodEndTime` (string)
  Date and time when the billing period ends.
- `items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.tax` (object)
- `items.tax.amount` (number, required)
  Amount of the tax.
- `items.tax.description` (string, required)
  Description of the tax.
- `items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self"
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `dueTime` (string)
  Date and time when the invoice is due for payment.

## 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 404 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.

# Hard usage limit reached

Endpoint: POST orders-experimental-hard-usage-limit-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionItemId` (string)
  ID of the subscription item.
  Example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS
- `planId` (string)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `usageQuantity` (integer)
  Reported usage quantity.
- `usageAmount` (number)
  Billed usage amount.
- `currency` (string)
  Currency of the billed usage amount.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "soft-usage-limit-reached", "hard-usage-limit-reached", "trial-usage-limit-reached"
- `_embedded` (object)
  Embedded objects related to the usage limit event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order abandoned reminder (deprecated)

Endpoint: POST orders-experimental-order-abandon-reminder
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `scheduleNumber` (integer)
  Number of triggered abandon reminder events.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-abandon-reminder"
- `_embedded` (object)
  Embedded objects related to the order abandon reminder event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order abandoned

Endpoint: POST orders-experimental-order-abandoned
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order change applied

Endpoint: POST orders-experimental-order-change-applied
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `orderId` (string)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `orderChangeId` (string)
  ID of the order change.
  Example: ord_chg_0YV7DES3WPC5J8JD8QTVNZBZQ8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-change-created", "order-change-canceled", "order-change-applied"
- `_embedded` (object)
  Embedded objects related to the order change event.
- `_embedded.order` (object)
- `_embedded.orderChange` (object)
  Change to the items of a recurring order. A change with `applyAt` set to `now` replaces the items immediately. A change with `applyAt` set to `nextRenewal` records the new items and applies them at the next renewal. The current items remain until the next renewal, when the new items are applied and billed on the renewal invoice. This resource records changes made through this resource and changes created by a quote with `applyAt` set to `nextRenewal`. Changes made through the `POST /orders/{id}/change-items` operation or through a quote with `applyAt` set to `now` are not recorded. A change with `applyAt` set to `now` triggers the `order-change-created` and `order-change-applied` events and the item events of the order.
- `_embedded.orderChange.orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.orderChange.applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `_embedded.orderChange.effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `_embedded.orderChange.items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `_embedded.orderChange.items.plan` (any, required)
  Plan details.
- `_embedded.orderChange.items.quantity` (integer)
  Number of units of the product on the given plan.
- `_embedded.orderChange.items.usageLimits` (any)
- `_embedded.orderChange.items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `_embedded.orderChange.renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `_embedded.orderChange.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "order", "orderChange"

# Order change canceled

Endpoint: POST orders-experimental-order-change-canceled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `orderId` (string)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `orderChangeId` (string)
  ID of the order change.
  Example: ord_chg_0YV7DES3WPC5J8JD8QTVNZBZQ8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-change-created", "order-change-canceled", "order-change-applied"
- `_embedded` (object)
  Embedded objects related to the order change event.
- `_embedded.order` (object)
- `_embedded.orderChange` (object)
  Change to the items of a recurring order. A change with `applyAt` set to `now` replaces the items immediately. A change with `applyAt` set to `nextRenewal` records the new items and applies them at the next renewal. The current items remain until the next renewal, when the new items are applied and billed on the renewal invoice. This resource records changes made through this resource and changes created by a quote with `applyAt` set to `nextRenewal`. Changes made through the `POST /orders/{id}/change-items` operation or through a quote with `applyAt` set to `now` are not recorded. A change with `applyAt` set to `now` triggers the `order-change-created` and `order-change-applied` events and the item events of the order.
- `_embedded.orderChange.orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.orderChange.applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `_embedded.orderChange.effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `_embedded.orderChange.items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `_embedded.orderChange.items.plan` (any, required)
  Plan details.
- `_embedded.orderChange.items.quantity` (integer)
  Number of units of the product on the given plan.
- `_embedded.orderChange.items.usageLimits` (any)
- `_embedded.orderChange.items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `_embedded.orderChange.renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `_embedded.orderChange.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "order", "orderChange"

# Order change created

Endpoint: POST orders-experimental-order-change-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `orderId` (string)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `orderChangeId` (string)
  ID of the order change.
  Example: ord_chg_0YV7DES3WPC5J8JD8QTVNZBZQ8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-change-created", "order-change-canceled", "order-change-applied"
- `_embedded` (object)
  Embedded objects related to the order change event.
- `_embedded.order` (object)
- `_embedded.orderChange` (object)
  Change to the items of a recurring order. A change with `applyAt` set to `now` replaces the items immediately. A change with `applyAt` set to `nextRenewal` records the new items and applies them at the next renewal. The current items remain until the next renewal, when the new items are applied and billed on the renewal invoice. This resource records changes made through this resource and changes created by a quote with `applyAt` set to `nextRenewal`. Changes made through the `POST /orders/{id}/change-items` operation or through a quote with `applyAt` set to `now` are not recorded. A change with `applyAt` set to `now` triggers the `order-change-created` and `order-change-applied` events and the item events of the order.
- `_embedded.orderChange.orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.orderChange.applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `_embedded.orderChange.effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `_embedded.orderChange.items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `_embedded.orderChange.items.plan` (any, required)
  Plan details.
- `_embedded.orderChange.items.quantity` (integer)
  Number of units of the product on the given plan.
- `_embedded.orderChange.items.usageLimits` (any)
- `_embedded.orderChange.items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `_embedded.orderChange.renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `_embedded.orderChange.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "order", "orderChange"

# Order completed

Endpoint: POST orders-experimental-order-completed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order delinquency time reached

Endpoint: POST orders-experimental-order-delinquency-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Renewal invoice issued

Endpoint: POST orders-experimental-renewal-invoice-issued
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `invoiceId` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "renewal-invoice-issued"
- `_embedded` (object)
  Embedded objects related to the renewal invoice event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.invoice` (object)
- `_embedded.invoice.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.invoice.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.invoice.shipping` (object)
  Shipping settings.
- `_embedded.invoice.tax` (object)
  Taxes.
- `_embedded.invoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.invoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.invoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.invoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.invoice.billingAddress` (object)
  Contact's information.
- `_embedded.invoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.invoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.invoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.invoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.invoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.invoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.invoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.invoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.invoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.invoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.invoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.invoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.invoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.invoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.invoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.invoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.invoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.invoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.invoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.invoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.invoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.invoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.invoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.invoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.invoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.invoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.invoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.invoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.invoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.invoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.invoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.invoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.invoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "invoice"

# Soft usage limit reached

Endpoint: POST orders-experimental-soft-usage-limit-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionItemId` (string)
  ID of the subscription item.
  Example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS
- `planId` (string)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `usageQuantity` (integer)
  Reported usage quantity.
- `usageAmount` (number)
  Billed usage amount.
- `currency` (string)
  Currency of the billed usage amount.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "soft-usage-limit-reached", "hard-usage-limit-reached", "trial-usage-limit-reached"
- `_embedded` (object)
  Embedded objects related to the usage limit event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order activated

Endpoint: POST orders-experimental-subscription-activated
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order canceled

Endpoint: POST orders-experimental-subscription-canceled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order churned

Endpoint: POST orders-experimental-subscription-churned
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order created

Endpoint: POST orders-experimental-subscription-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order downgraded

Endpoint: POST orders-experimental-subscription-downgraded
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription items changed

Endpoint: POST orders-experimental-subscription-items-changed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Order modified

Endpoint: POST orders-experimental-subscription-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order pause created

Endpoint: POST orders-experimental-subscription-pause-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription order pause modified

Endpoint: POST orders-experimental-subscription-pause-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription order pause revoked

Endpoint: POST orders-experimental-subscription-pause-revoked
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription order paused

Endpoint: POST orders-experimental-subscription-paused
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription quantity filled limit reached

Endpoint: POST orders-experimental-subscription-quantity-filled-limit-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionItemId` (string)
  ID of the subscription item.
  Example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS
- `quantity` (integer)
  Quantity of the subscription item.
- `quantityFilled` (number)
  Reported quantity.
  Example: 5.125
- `previousQuantityFilled` (number)
  Reported quantity before the subscription item updates.
  Example: 4.037
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-quantity-filled-limit-reached"
- `_embedded` (object)
  Embedded objects related to the subscription quantity limit event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order reactivated

Endpoint: POST orders-experimental-subscription-reactivated
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order renewed

Endpoint: POST orders-experimental-subscription-renewed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order resumed

Endpoint: POST orders-experimental-subscription-resumed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionPauseId` (string)
  ID of the subscription pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-resumed"
- `_embedded` (object)
  Embedded objects related to the subscription pause event.
- `_embedded.subscription` (object)
  Subscription details.
- `_embedded.pause` (object)
  Subscription pause details.
- `_embedded.pause.subscriptionId` (string, required)
  ID of the paused subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.pause.pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `_embedded.pause.description` (string | null)
  Description of the pause reason in free form.
- `_embedded.pause.effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `_embedded.pause.endTime` (string | null)
  Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the subscription is indefinitely paused.
- `_embedded.pause.timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders-(legacy)), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription", "pause"

# Subscription order trial converted

Endpoint: POST orders-experimental-subscription-trial-converted
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order trial end reminder

Endpoint: POST orders-experimental-subscription-trial-end-reminder
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order trial ended

Endpoint: POST orders-experimental-subscription-trial-ended
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription order upgraded

Endpoint: POST orders-experimental-subscription-upgraded
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "order-completed", "order-abandoned", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-downgraded", "subscription-modified", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewed", "subscription-trial-converted", "subscription-trial-end-changed", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "order-delinquency-reached", "subscription-items-changed"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Trial usage limit reached

Endpoint: POST orders-experimental-trial-usage-limit-reached
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `subscriptionItemId` (string)
  ID of the subscription item.
  Example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS
- `planId` (string)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `usageQuantity` (integer)
  Reported usage quantity.
- `usageAmount` (number)
  Billed usage amount.
- `currency` (string)
  Currency of the billed usage amount.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "soft-usage-limit-reached", "hard-usage-limit-reached", "trial-usage-limit-reached"
- `_embedded` (object)
  Embedded objects related to the usage limit event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Update an order item

Updates an order item.
This is an experimental endpoint and may be changed or removed in the future.

Endpoint: PATCH /orders/{id}/items/{itemId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `itemId` (string, required)
  ID of the order item.

## Request fields

- `quantityFilled` (number | null)
  Filled quantity of the subscription item.
  Example: 5.125
- `excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `plan` (object)
  Details of the subscription item plan.

## Response 200 fields

- `id` (string)
  ID of the order item.
- `planId` (string)
  ID of the plan. > **Note:** This field is deprecated. Use the `plan.id` field instead.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `quantity` (integer)
  Number of product units in the specified plan.
- `quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `plan` (any, required)
- `usageLimits` (any)
- `usageStatus` (any)
- `revision` (integer)
  Revision number that increments with each overriding change to this specific plan item.
- `isModified` (boolean)
  Specifies if the plan information is modified for this subscription.
- `isGrandfathered` (boolean)
  Specifies if the current plan revision number is greater than the plan item revision number.
- `excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.product` (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.

# Create an order

Creates an order.

Endpoint: POST /orders
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=customer,activationInvoice`. Available arguments are: - `customer` - `activationInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` - `website` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Request fields

- `type` (string, required)
  Type of the order.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `items` (array, required)
  Item in the order.
- `items.type` (string, required)
  Specifies the type of order item.
- `items.recurringInterval` (object | null)
  Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length.
  Example: null
- `items.recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `items.renewalTime` (string | null)
  Date and time when the subscription renews.
- `items.plan` (any, required)
  Details of the plan.
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `invoiceIssueTimeShift` (string)
  Invoice issue time shift interval in ISO-8601 format. This field adjusts the issue date and time of renewal invoices for the order. This interval value supports the `-` symbol.
  Example: +P00Y00M00DT00H00M00S
- `invoiceDueTimeShift` (string)
  Invoice due time shift interval in ISO-8601 format. Use this field to adjust when payment is due for the order. If autopay is configured, payment is collected automatically on this date. This interval value supports the `+` symbol.
  Example: +P00Y00M00DT00H00M00S
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `poNumber` (string | null)
  Purchase order number that is displayed on the issued invoices.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the order invoice.
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state.
  Example: +P00Y00M07DT00H00M00S
- `couponIds` (array | null)
  List of coupons to redeem on the customer and restrict to this order. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). This parameter uses the following logic: - If this parameter is not supplied, applied coupons are not changed. - If an empty array is supplied, all applied coupon redemptions are canceled. - If a list of coupons is supplied, unapplied coupons in the list are applied. Coupons that have already been applied do not change state. Applied coupons that are not supplied in list are canceled. If the list of applied coupons on a pending order is changed by this parameter during an order update, the invoice for the order is reissued.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `currentPeriodEnd` (string | null)
  Date and time of the current service period end. If subscriptions have different recurring settings or the order is not active, providing this field causes the request to be rejected with a conflict. This field is ignored if the order is in trial.
- `billingAddress` (any)
  Billing address of the order.
- `deliveryAddress` (any)
  Delivery address of the order.

## Response 201 fields

- `id` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `type` (string, required)
  Type of the order.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `activationInvoiceId` (string)
  ID of the activation invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the order.
  Enum: "pending", "voided", "completed", "abandoned"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `items` (array, required)
  Item in the order.
- `items.id` (string)
  ID of the subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.type` (string, required)
  Specifies the type of order item.
- `items.renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `items.renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `items.recurringInterval` (object | null)
  Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length.
  Example: null
- `items.recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `items.renewalTime` (string | null)
  Date and time when the subscription renews.
- `items.currentPeriodStart` (string)
  Date and time of the current service period start.
- `items.currentPeriodEnd` (string)
  Date and time of the current service period end.
- `items.rebillNumber` (integer | null)
  Current billing period number.
- `items.productId` (string)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.plan` (any, required)
  Details of the plan.
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific item.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `items.revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `invoiceIssueTimeShift` (string)
  Invoice issue time shift interval in ISO-8601 format. This field adjusts the issue date and time of renewal invoices for the order. This interval value supports the `-` symbol.
  Example: +P00Y00M00DT00H00M00S
- `invoiceDueTimeShift` (string)
  Invoice due time shift interval in ISO-8601 format. Use this field to adjust when payment is due for the order. If autopay is configured, payment is collected automatically on this date. This interval value supports the `+` symbol.
  Example: +P00Y00M00DT00H00M00S
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `poNumber` (string | null)
  Purchase order number that is displayed on the issued invoices.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the order invoice.
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state.
  Example: +P00Y00M07DT00H00M00S
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `activationTime` (string | null)
  Date and time when the order is activated.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `churnTime` (string | null)
  Date and time when the order is deactivated.
- `cancellationTime` (string | null)
  Date and time when an order is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `currentPeriodStart` (string | null)
  Date and time of the current service period start.
- `currentPeriodEnd` (string | null)
  Date and time of the current service period end. If subscriptions have different recurring settings or the order is not active, providing this field causes the request to be rejected with a conflict. This field is ignored if the order is in trial.
- `renewalTime` (string | null)
  Date and time when the next subscription in this recurring order renews.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.email` (string | null)
  Customer's email address.
- `_embedded.customer.firstName` (string | null)
  Customer's first name.
- `_embedded.customer.lastName` (string | null)
  Customer's last name.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `_embedded.customer.defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.customer.defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `_embedded.customer.company.name` (string | null)
  Name of the company.
- `_embedded.customer.company.domain` (string)
  Website domain of the company.
- `_embedded.customer.company.yearFounded` (number | null)
  Founding year of the company.
- `_embedded.customer.company.industry` (string | null)
  Industry the company is associated with.
- `_embedded.customer.company.employeesCount` (number | null)
  Number of employees in the company.
- `_embedded.customer.company.country` (string | null)
  Country where the company is based.
- `_embedded.customer.company.locality` (string | null)
  Locality or region where the company is based.
- `_embedded.customer.company._links` (array)
- `_embedded.customer.company._links.href` (string)
  Link URL.
- `_embedded.customer.company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `_embedded.customer.averageValue` (object)
  Average customer value.
- `_embedded.customer.averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `_embedded.customer.averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `_embedded.customer.paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `_embedded.customer.lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `_embedded.customer.lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `_embedded.customer.invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `_embedded.customer.tags` (array)
  List of customer tags.
- `_embedded.customer.tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.customer.tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `_embedded.customer.tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `_embedded.customer.revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_embedded.customer.hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.leadSource._links` (array)
  Related links.
- `_embedded.customer.leadSource._links.href` (string)
  Link URL.
- `_embedded.customer.leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.customer._links` (array)
  Related links.
- `_embedded.customer._links.href` (string)
  Link URL.
- `_embedded.customer._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded.customer._embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.customer._embedded.defaultPaymentInstrument` (object)
- `_embedded.customer._embedded.website` (object)
- `_embedded.customer._embedded.leadSource` (object)
- `_embedded.activationInvoice` (object)
- `_embedded.activationInvoice.id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `_embedded.activationInvoice.orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.activationInvoice.subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `_embedded.activationInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.activationInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.activationInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.activationInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.activationInvoice.tax` (object)
  Taxes.
- `_embedded.activationInvoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.billingAddress` (object)
  Contact's information.
- `_embedded.activationInvoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.activationInvoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.activationInvoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.activationInvoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.activationInvoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.activationInvoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.activationInvoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.activationInvoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.activationInvoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.activationInvoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.activationInvoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.activationInvoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.activationInvoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.activationInvoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.activationInvoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.activationInvoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.activationInvoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.activationInvoice.billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `_embedded.activationInvoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.activationInvoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.activationInvoice.items` (array)
  Invoice items array.
- `_embedded.activationInvoice.items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.activationInvoice.items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `_embedded.activationInvoice.items.description` (string)
  Description of the invoice item.
- `_embedded.activationInvoice.items.unitPrice` (number, required)
  Unit price of the invoice item.
- `_embedded.activationInvoice.items.quantity` (integer)
  Quantity of the invoice item.
- `_embedded.activationInvoice.items.price` (number)
  Total price of the invoice item.
- `_embedded.activationInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.activationInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.activationInvoice.items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `_embedded.activationInvoice.items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `_embedded.activationInvoice.items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.activationInvoice.items.tax` (any)
  Invoice item tax.
- `_embedded.activationInvoice.items._links` (array)
  Related links.
- `_embedded.activationInvoice.items._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded.activationInvoice.items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.items._embedded.product` (object)
- `_embedded.activationInvoice.items._embedded.plan` (object)
- `_embedded.activationInvoice.discounts` (array)
  Discounts applied.
- `_embedded.activationInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.activationInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.activationInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.activationInvoice.discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `_embedded.activationInvoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.activationInvoice.autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `_embedded.activationInvoice.status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `_embedded.activationInvoice.delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `_embedded.activationInvoice.collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `_embedded.activationInvoice.abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `_embedded.activationInvoice.voidedTime` (string | null)
  Date and time when the invoice is voided.
- `_embedded.activationInvoice.paidTime` (string | null)
  Date and time when the invoice is paid.
- `_embedded.activationInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.activationInvoice.issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_embedded.activationInvoice.paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `_embedded.activationInvoice.creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `_embedded.activationInvoice.creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.creditMemoAllocations.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.
- `_embedded.activationInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.activationInvoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `_embedded.activationInvoice.transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.activationInvoice.transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `_embedded.activationInvoice.transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `_embedded.activationInvoice.transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `_embedded.activationInvoice.transactions.amount` (number)
  Total amount of the transaction.
- `_embedded.activationInvoice.transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `_embedded.activationInvoice.transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `_embedded.activationInvoice.transactions.childTransactions` (array)
  IDs of child transactions.
- `_embedded.activationInvoice.transactions.invoiceIds` (array)
  Related invoice IDs.
- `_embedded.activationInvoice.transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `_embedded.activationInvoice.transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `_embedded.activationInvoice.transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `_embedded.activationInvoice.transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `_embedded.activationInvoice.transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `_embedded.activationInvoice.transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `_embedded.activationInvoice.transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `_embedded.activationInvoice.transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `_embedded.activationInvoice.transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `_embedded.activationInvoice.transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `_embedded.activationInvoice.transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `_embedded.activationInvoice.transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.activationInvoice.transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `_embedded.activationInvoice.transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `_embedded.activationInvoice.transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `_embedded.activationInvoice.transactions.description` (string)
  Description of the payment.
- `_embedded.activationInvoice.transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.activationInvoice.transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `_embedded.activationInvoice.transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `_embedded.activationInvoice.transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.gateway` (object)
  Related gateway information.
- `_embedded.activationInvoice.transactions.gateway.response` (object)
  Gateway response.
- `_embedded.activationInvoice.transactions.gateway.response.code` (string | null)
  Gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.message` (string | null)
  Gateway response message.
- `_embedded.activationInvoice.transactions.gateway.response.type` (string | null)
  Gateway response type.
- `_embedded.activationInvoice.transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.activationInvoice.transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.activationInvoice.transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `_embedded.activationInvoice.transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `_embedded.activationInvoice.transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `_embedded.activationInvoice.transactions.paymentInstrument` (object)
- `_embedded.activationInvoice.transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `_embedded.activationInvoice.transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `_embedded.activationInvoice.transactions.dcc.base` (object)
- `_embedded.activationInvoice.transactions.dcc.base.amount` (number, required)
  Example: 10
- `_embedded.activationInvoice.transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `_embedded.activationInvoice.transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `_embedded.activationInvoice.transactions.riskScore` (integer)
  Risk score for the transaction.
- `_embedded.activationInvoice.transactions.riskMetadata` (any)
- `_embedded.activationInvoice.transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.activationInvoice.transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `_embedded.activationInvoice.transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `_embedded.activationInvoice.transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `_embedded.activationInvoice.transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `_embedded.activationInvoice.transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.activationInvoice.transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.activationInvoice.transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `_embedded.activationInvoice.transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.activationInvoice.transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `_embedded.activationInvoice.transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `_embedded.activationInvoice.transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `_embedded.activationInvoice.transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `_embedded.activationInvoice.transactions.limits` (object | null)
  Transaction amount limit information.
- `_embedded.activationInvoice.transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.activationInvoice.transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.activationInvoice.transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `_embedded.activationInvoice.transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_embedded.activationInvoice.transactions._links` (array)
  Related links.
- `_embedded.activationInvoice.transactions._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded.activationInvoice.transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.transactions._embedded.parentTransaction` (object)
- `_embedded.activationInvoice.transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.activationInvoice.transactions._embedded.gatewayAccount` (object)
- `_embedded.activationInvoice.transactions._embedded.customer` (object)
- `_embedded.activationInvoice.transactions._embedded.leadSource` (object)
- `_embedded.activationInvoice.transactions._embedded.website` (object)
- `_embedded.activationInvoice.transactions._embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.activationInvoice.transactions._embedded.organization` (object)
- `_embedded.activationInvoice.transactions._embedded.dispute` (object)
- `_embedded.activationInvoice.transactions._embedded.paymentCard` (object)
- `_embedded.activationInvoice.transactions._embedded.bankAccount` (object)
- `_embedded.activationInvoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.activationInvoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.activationInvoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.activationInvoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.activationInvoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.activationInvoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.activationInvoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.activationInvoice.revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.activationInvoice.type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `_embedded.activationInvoice.dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `_embedded.activationInvoice.dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `_embedded.activationInvoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_embedded.activationInvoice._links` (array)
  Related links.
- `_embedded.activationInvoice._links.href` (string)
  Link URL.
- `_embedded.activationInvoice._links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded.activationInvoice._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice._embedded.customer` (object)
- `_embedded.activationInvoice._embedded.website` (object)
- `_embedded.activationInvoice._embedded.organization` (object)
- `_embedded.activationInvoice._embedded.leadSource` (object)
- `_embedded.activationInvoice._embedded.shippingRate` (object)
- `_embedded.upcomingInvoice` (object)
- `_embedded.upcomingInvoice.id` (string)
  ID of the upcoming invoice. This value is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.upcomingInvoice.revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.upcomingInvoice.items` (array)
  Upcoming invoice items array.
- `_embedded.upcomingInvoice.items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.upcomingInvoice.items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `_embedded.upcomingInvoice.items.description` (string)
  Description of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.price` (number)
  Total price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.upcomingInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.upcomingInvoice.items.orderId` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.upcomingInvoice.items.periodStartTime` (string)
  Date and time when the billing period starts.
- `_embedded.upcomingInvoice.items.periodEndTime` (string)
  Date and time when the billing period ends.
- `_embedded.upcomingInvoice.items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.upcomingInvoice.items.tax` (object)
- `_embedded.upcomingInvoice.items.tax.amount` (number, required)
  Amount of the tax.
- `_embedded.upcomingInvoice.items.tax.description` (string, required)
  Description of the tax.
- `_embedded.upcomingInvoice.items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `_embedded.upcomingInvoice.items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `_embedded.upcomingInvoice.items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `_embedded.upcomingInvoice.items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `_embedded.upcomingInvoice.items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `_embedded.upcomingInvoice.items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `_embedded.upcomingInvoice.items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `_embedded.upcomingInvoice.items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `_embedded.upcomingInvoice.items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.upcomingInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.upcomingInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.upcomingInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.upcomingInvoice.discounts` (array)
  Discounts applied.
- `_embedded.upcomingInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.upcomingInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.upcomingInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.upcomingInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.upcomingInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.paymentInstrument` (any)
- `_embedded.website` (object)
- `_embedded.website.id` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.website.name` (string, required)
  Name of the website.
- `_embedded.website.url` (string, required)
  Domain address of the website.
- `_embedded.website.servicePhone` (string, required)
  Customer service phone number of the website.
- `_embedded.website.serviceEmail` (string, required)
  Customer service email address of the website.
- `_embedded.website.settings` (object)
  Website settings.
- `_embedded.website.settings.paymentForm` (object)
  Payment form settings.
- `_embedded.website.settings.paymentForm.css` (string | null)
  Hosted payment form [CSS options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#2-use-css-property-to-override-any-styles).
- `_embedded.website.settings.paymentForm.features` (object | null)
  Hosted payment form features.
- `_embedded.website.settings.paymentForm.features.showCoupons` (array | null)
- `_embedded.website.settings.paymentForm.features.fullPageRedirect` (boolean | null)
  Specifies whether the hosted payment form uses a full page redirect, or the default iframe modal, for approval URL redirects.
- `_embedded.website.settings.paymentForm.features.skipRedirectOnPaymentComplete` (boolean | null)
  Specifies whether the hosted payment form skips the redirect to the website URL when the payment is completed.
- `_embedded.website.settings.paymentForm.features.hideZeroAmountSummaryItems` (boolean | null)
  Specifies if the hosted payment form displays 0 amount line items in the summary.
- `_embedded.website.settings.amplitude` (object)
  Amplitude settings. Amplitude is an analytics tool for tracking user behavior.
- `_embedded.website.settings.amplitude.tracking` (boolean)
  Specifies if the hosted pages, such as KYC pages, include Amplitude analytics.
- `_embedded.website.settings.amplitude.apiKey` (string | null)
  API key of an Amplitude project.
  Example: 35d1795750c585984f7e6b01c0ca6e19
- `_embedded.website.settings.payoutRequest` (object)
  Payout request settings for the website.
- `_embedded.website.settings.payoutRequest.automaticReadinessEnabled` (boolean)
  Specifies whether pending payout requests are automatically marked as `ready`. When this value is `false`, payout requests are created in the `ready` status and automatic transition is not used. When this value is `true`, payout requests remain in the `pending` status until the pending period elapses and the configured transition time is reached.
- `_embedded.website.settings.payoutRequest.pendingPeriodHours` (integer)
  Minimum number of hours a payout request stays in the `pending` status before it can be automatically set to `ready`. Required when `automaticReadinessEnabled` is `true`.
  Example: 48
- `_embedded.website.settings.payoutRequest.automaticReadinessTime` (string)
  Time of day when the automatic readiness job processes eligible pending payout requests. Required when `automaticReadinessEnabled` is `true`. Use extended ISO-8601 time format (`HH:MM:SS`) with an optional timezone offset. When the timezone offset is omitted, the server timezone is used.
  Example: 10:00:00Z
- `_embedded.website.settings.payoutRequest.automaticReadinessLastExecutedAt` (string | null)
  Date and time when the automatic readiness job last completed successfully for this website.
- `_embedded.website.logoId` (string | null)
  ID of the linked file object.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.website.logoUrl` (string | null)
  URL of the website logo.
- `_embedded.website.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.website._links` (array)
  Related links.
- `_embedded.website._links.href` (string)
  Link URL.
- `_embedded.website._links.rel` (string)
  Type of link.
  Enum: "self", "logoUrl"
- `billingAddress` (any)
  Billing address of the order.
- `deliveryAddress` (any)
  Delivery address of the order.

## 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.

# Cancel an order

Cancels an order.

Endpoint: POST /order-cancellations
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `orderId` (string, required)
  ID of the canceled order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and order next renewal time.
- `status` (string)
  Status of the order cancellation.
  Enum: "draft", "confirmed", "completed", "revoked"
- `churnTime` (string)
  Date and time when the order is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the order is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: null, "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.

## Response 201 fields

- `id` (string)
  ID of the cancellation.
  Example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV
- `orderId` (string, required)
  ID of the canceled order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `proratedInvoiceId` (string | null)
  ID of the invoice on which the cancellation proration is calculated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `appliedInvoiceId` (string | null)
  ID of the invoice on which the cancellation fees or credits are applied.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly"
- `reason` (string)
  Reason for the cancellation.
  Enum: "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "other", "billing-failure"
- `description` (string)
  Description of the cancellation reason in free form.
- `prorated` (boolean)
  Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and order next renewal time.
- `status` (string)
  Status of the order cancellation.
  Enum: "draft", "confirmed", "completed", "revoked"
- `canceledTime` (string | null)
  Date and time when an order is canceled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `churnTime` (string)
  Date and time when the order is deactivated. If this field and `churnTimePolicy` are omitted, this value defaults to the current time.
- `churnTimePolicy` (string | null)
  Specifies when the order is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request.
  Enum: null, "now", "at-next-renewal"
- `lineItems` (array)
  Items to be added to the new invoice. Proration item is generated and added automatically.
- `lineItems.type` (string, required)
  Type of invoice line item.
  Enum: "debit", "credit"
- `lineItems.description` (string)
  Description of the line item.
- `lineItems.unitPriceAmount` (number, required)
  Unit price of the line item.
  Example: 49.95
- `lineItems.unitPriceCurrency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `lineItems.quantity` (integer, required)
  Quantity of the line item.
  Example: 1
- `lineItems.periodStartTime` (string)
  Date and time when the service period begins for this item.
- `lineItems.periodEndTime` (string)
  Date and time when the service period ends for this item.
- `lineItemSubtotal` (object)
  Subtotal of the line items added after the order cancellation.
- `lineItemSubtotal.amount` (number)
  Subtotal amount of the line items.
  Example: 49.95
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Change order items

Changes the items of an order immediately, or schedules the change for the next renewal.

Endpoint: POST /order-changes
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `items.plan` (any, required)
  Plan details.
- `items.quantity` (integer)
  Number of units of the product on the given plan.
- `items.usageLimits` (any)
- `items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.

## Response 201 fields

- `id` (string)
  ID of the order change.
  Example: ord_chg_0YV7DES3WPC5J8JD8QTVNZBZQ8
- `orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the order change.
  Enum: "pending", "applied", "canceled", "superseded"
- `applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `lockedTime` (string | null)
  Date and time when the items of a pending change are billed. After this time, the change is locked and cannot be modified until the renewal.
- `appliedTime` (string | null)
  Date and time when the items of the order are replaced.
- `quoteId` (string | null)
  ID of the quote that is used to create the change. This value is `null` if the change is not created from a quote.
- `items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `items.plan` (any, required)
  Plan details.
- `items.quantity` (integer)
  Number of units of the product on the given plan.
- `items.usageLimits` (any)
- `items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 409 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 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.

# Issue an interim invoice

Issues an interim invoice for an order.
Use this operation for plan changes and pro rata adjustments.

This process:

- Creates an invoice.
- Adds the order line items to the invoice.
- Issues the invoice.
- Optionally, applies payment to the invoice if a `transactionId` is supplied.

Endpoint: POST /orders/{id}/interim-invoice
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0

## Response 201 fields

- `id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `items` (array)
  Invoice items array.
- `items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `items.description` (string)
  Description of the invoice item.
- `items.unitPrice` (number, required)
  Unit price of the invoice item.
- `items.quantity` (integer)
  Quantity of the invoice item.
- `items.price` (number)
  Total price of the invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (any)
  Invoice item tax.
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `voidedTime` (string | null)
  Date and time when the invoice is voided.
- `paidTime` (string | null)
  Date and time when the invoice is paid.
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `creditMemoAllocations.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.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `transactions.amount` (number)
  Total amount of the transaction.
- `transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `transactions.childTransactions` (array)
  IDs of child transactions.
- `transactions.invoiceIds` (array)
  Related invoice IDs.
- `transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `transactions.description` (string)
  Description of the payment.
- `transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `transactions.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.gateway` (object)
  Related gateway information.
- `transactions.gateway.response` (object)
  Gateway response.
- `transactions.gateway.response.code` (string | null)
  Gateway response code.
- `transactions.gateway.response.message` (string | null)
  Gateway response message.
- `transactions.gateway.response.type` (string | null)
  Gateway response type.
- `transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `transactions.paymentInstrument` (object)
- `transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `transactions.dcc.base` (object)
- `transactions.dcc.base.amount` (number, required)
  Example: 10
- `transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `transactions.riskScore` (integer)
  Risk score for the transaction.
- `transactions.riskMetadata` (any)
- `transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `transactions.limits` (object | null)
  Transaction amount limit information.
- `transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `transactions._links` (array)
  Related links.
- `transactions._links.href` (string)
  Link URL.
- `transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `transactions._embedded.parentTransaction` (object)
- `transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `transactions._embedded.gatewayAccount` (object)
- `transactions._embedded.customer` (object)
- `transactions._embedded.leadSource` (object)
- `transactions._embedded.website` (object)
- `transactions._embedded.invoices` (array)
  Most recent related invoices.
- `transactions._embedded.organization` (object)
- `transactions._embedded.dispute` (object)
- `transactions._embedded.paymentCard` (object)
- `transactions._embedded.bankAccount` (object)
- `retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (object)
- `_embedded.shippingRate` (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.

# Change order items

Changes order items or quantities and specifies if and when to give pro rata credits.
To change the items at the next renewal, use the `POST /order-changes` operation with `applyAt` set to `nextRenewal`.

Endpoint: POST /orders/{id}/change-items
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=customer,activationInvoice`. Available arguments are: - `customer` - `activationInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` - `website` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Request fields

- `items` (array, required)
  Details of items in the order.
- `items.plan` (any, required)
  Plan details.
- `items.quantity` (integer)
  Number of units of the product on the specified plan.
- `items.usageLimits` (object)
  Specifies the soft and hard usage limit thresholds for an item with a metered billing plan. This value is ignored when the plan is not metered.
- `items.usageLimits.softLimit` (object)
  Defines thresholds for notification purposes. For example, to notify the customer that their usage is near the hard limit of their metered billing plan. This notification informs the customer so that they can upgrade their plan before the hard limit is reached. When metered usage equals or exceeds the configured soft limit, the `soft-usage-limit-reached` event is triggered. The quantity limit applies to the larger of the reported and billed quantity. If a minimum billable quantity results in a billed quantity that is higher than the reported quantity, the billed quantity applies to the limit. If a maximum billable quantity results in a billed quantity that is lower than the reported quantity, the reported quantity applies to the limit. The amount limit applies to the billed amount. To notify the customer, a webhook and notification can be configured for this event. This field is useful for accounting and customer success purposes. The usage of metered billing plans can still be reported if the soft limit is reached.
- `items.usageLimits.softLimit.quantity` (integer)
  Usage limit quantity.
- `items.usageLimits.softLimit.amount` (number)
  Usage limit amount in the currency of the order.
- `items.usageLimits.hardLimit` (object)
  Defines a limit where the customer can no longer use the service. Hard limits are used in addition to soft limits. When a soft limit is reached, a customer may receive a notification but the service can still be provided up to the hard limit value so that the customer can upgrade their plan. When the reported usage reaches the configured limit, a specific event is triggered. To notify the customer in the merchant system, or block a service, a webhook and notification can be configured for this event. When the total usage reaches the hard limit quantity, or amount values, metered billing plan usages can no longer be reported. Plans with a minimum quantity, fixed fee, or flat stairstep bracket set a minimum billable quantity and amount. A `quantity` value below the minimum billable quantity is invalid. An `amount` value below the minimum billable amount is invalid. A `0` value remains valid even on plans with minimum billing.
- `items.usageLimits.hardLimit.quantity` (integer)
  Usage limit quantity.
- `items.usageLimits.hardLimit.amount` (number)
  Usage limit amount in the currency of the order.
- `items.usageLimits.trialLimit` (any)
  Defines a usage cap during the trial period of a subscription. This limit is enforced only while the subscription is in its trial phase. When the reported usage reaches the configured trial limit, an event called 'trial-usage-limit-reached' is triggered. To notify the customer or restrict access to the service, a webhook and notification can be configured for this event. Once the trial limit is reached, additional usage cannot be reported unless the trial ends.
  Example: 20.725
- `renewalPolicy` (string, required)
  How the service periods and trial state of the order that contains subscription items is managed when its items change. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` and `ignoreRecurring` are ignored unless the value is `reset` or `retain`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly", "reset", "retain"
- `prorated` (boolean, required)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.
- `effectiveTime` (string)
  Date and time that is used to calculate the renewal time for `reset` operations and proration. If this field is omitted, the date and time default to the current time.
- `preview` (boolean)
  Specifies if changes to the order can be previewed. Orders cannot be changed in preview.
- `keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` or `retainTrialOnly` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`.
- `ignoreRecurring` (boolean)
  Deprecated. Use the `retainTrialOnly` value of `renewalPolicy` instead. Specifies if the order must ignore the recurring settings of its items. This field is only applicable if the order is trial-only and the `keepTrial` value is `true`. For more information, see [Trial-only order](https://www.rebilly.com/docs/dev-docs/subscriptions#trial-only-subscription).

## Response 201 fields

- `id` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `type` (string, required)
  Type of the order.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `activationInvoiceId` (string)
  ID of the activation invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the order.
  Enum: "pending", "voided", "completed", "abandoned"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `items` (array, required)
  Item in the order.
- `items.id` (string)
  ID of the subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.type` (string, required)
  Specifies the type of order item.
- `items.renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `items.renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `items.recurringInterval` (object | null)
  Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length.
  Example: null
- `items.recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `items.renewalTime` (string | null)
  Date and time when the subscription renews.
- `items.currentPeriodStart` (string)
  Date and time of the current service period start.
- `items.currentPeriodEnd` (string)
  Date and time of the current service period end.
- `items.rebillNumber` (integer | null)
  Current billing period number.
- `items.productId` (string)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.plan` (any, required)
  Details of the plan.
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific item.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `items.revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `invoiceIssueTimeShift` (string)
  Invoice issue time shift interval in ISO-8601 format. This field adjusts the issue date and time of renewal invoices for the order. This interval value supports the `-` symbol.
  Example: +P00Y00M00DT00H00M00S
- `invoiceDueTimeShift` (string)
  Invoice due time shift interval in ISO-8601 format. Use this field to adjust when payment is due for the order. If autopay is configured, payment is collected automatically on this date. This interval value supports the `+` symbol.
  Example: +P00Y00M00DT00H00M00S
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `poNumber` (string | null)
  Purchase order number that is displayed on the issued invoices.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the order invoice.
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state.
  Example: +P00Y00M07DT00H00M00S
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `activationTime` (string | null)
  Date and time when the order is activated.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `churnTime` (string | null)
  Date and time when the order is deactivated.
- `cancellationTime` (string | null)
  Date and time when an order is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `currentPeriodStart` (string | null)
  Date and time of the current service period start.
- `currentPeriodEnd` (string | null)
  Date and time of the current service period end. If subscriptions have different recurring settings or the order is not active, providing this field causes the request to be rejected with a conflict. This field is ignored if the order is in trial.
- `renewalTime` (string | null)
  Date and time when the next subscription in this recurring order renews.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.email` (string | null)
  Customer's email address.
- `_embedded.customer.firstName` (string | null)
  Customer's first name.
- `_embedded.customer.lastName` (string | null)
  Customer's last name.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `_embedded.customer.defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.customer.defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `_embedded.customer.company.name` (string | null)
  Name of the company.
- `_embedded.customer.company.domain` (string)
  Website domain of the company.
- `_embedded.customer.company.yearFounded` (number | null)
  Founding year of the company.
- `_embedded.customer.company.industry` (string | null)
  Industry the company is associated with.
- `_embedded.customer.company.employeesCount` (number | null)
  Number of employees in the company.
- `_embedded.customer.company.country` (string | null)
  Country where the company is based.
- `_embedded.customer.company.locality` (string | null)
  Locality or region where the company is based.
- `_embedded.customer.company._links` (array)
- `_embedded.customer.company._links.href` (string)
  Link URL.
- `_embedded.customer.company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `_embedded.customer.averageValue` (object)
  Average customer value.
- `_embedded.customer.averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `_embedded.customer.averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `_embedded.customer.paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `_embedded.customer.lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `_embedded.customer.lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `_embedded.customer.invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `_embedded.customer.tags` (array)
  List of customer tags.
- `_embedded.customer.tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.customer.tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `_embedded.customer.tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `_embedded.customer.revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_embedded.customer.hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.leadSource._links` (array)
  Related links.
- `_embedded.customer.leadSource._links.href` (string)
  Link URL.
- `_embedded.customer.leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.customer._links` (array)
  Related links.
- `_embedded.customer._links.href` (string)
  Link URL.
- `_embedded.customer._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded.customer._embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.customer._embedded.defaultPaymentInstrument` (object)
- `_embedded.customer._embedded.website` (object)
- `_embedded.customer._embedded.leadSource` (object)
- `_embedded.activationInvoice` (object)
- `_embedded.activationInvoice.id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `_embedded.activationInvoice.orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.activationInvoice.subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `_embedded.activationInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.activationInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.activationInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.activationInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.activationInvoice.tax` (object)
  Taxes.
- `_embedded.activationInvoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.billingAddress` (object)
  Contact's information.
- `_embedded.activationInvoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.activationInvoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.activationInvoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.activationInvoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.activationInvoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.activationInvoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.activationInvoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.activationInvoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.activationInvoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.activationInvoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.activationInvoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.activationInvoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.activationInvoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.activationInvoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.activationInvoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.activationInvoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.activationInvoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.activationInvoice.billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `_embedded.activationInvoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.activationInvoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.activationInvoice.items` (array)
  Invoice items array.
- `_embedded.activationInvoice.items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.activationInvoice.items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `_embedded.activationInvoice.items.description` (string)
  Description of the invoice item.
- `_embedded.activationInvoice.items.unitPrice` (number, required)
  Unit price of the invoice item.
- `_embedded.activationInvoice.items.quantity` (integer)
  Quantity of the invoice item.
- `_embedded.activationInvoice.items.price` (number)
  Total price of the invoice item.
- `_embedded.activationInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.activationInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.activationInvoice.items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `_embedded.activationInvoice.items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `_embedded.activationInvoice.items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.activationInvoice.items.tax` (any)
  Invoice item tax.
- `_embedded.activationInvoice.items._links` (array)
  Related links.
- `_embedded.activationInvoice.items._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded.activationInvoice.items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.items._embedded.product` (object)
- `_embedded.activationInvoice.items._embedded.plan` (object)
- `_embedded.activationInvoice.discounts` (array)
  Discounts applied.
- `_embedded.activationInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.activationInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.activationInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.activationInvoice.discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `_embedded.activationInvoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.activationInvoice.autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `_embedded.activationInvoice.status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `_embedded.activationInvoice.delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `_embedded.activationInvoice.collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `_embedded.activationInvoice.abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `_embedded.activationInvoice.voidedTime` (string | null)
  Date and time when the invoice is voided.
- `_embedded.activationInvoice.paidTime` (string | null)
  Date and time when the invoice is paid.
- `_embedded.activationInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.activationInvoice.issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_embedded.activationInvoice.paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `_embedded.activationInvoice.creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `_embedded.activationInvoice.creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.creditMemoAllocations.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.
- `_embedded.activationInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.activationInvoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `_embedded.activationInvoice.transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.activationInvoice.transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `_embedded.activationInvoice.transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `_embedded.activationInvoice.transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `_embedded.activationInvoice.transactions.amount` (number)
  Total amount of the transaction.
- `_embedded.activationInvoice.transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `_embedded.activationInvoice.transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `_embedded.activationInvoice.transactions.childTransactions` (array)
  IDs of child transactions.
- `_embedded.activationInvoice.transactions.invoiceIds` (array)
  Related invoice IDs.
- `_embedded.activationInvoice.transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `_embedded.activationInvoice.transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `_embedded.activationInvoice.transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `_embedded.activationInvoice.transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `_embedded.activationInvoice.transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `_embedded.activationInvoice.transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `_embedded.activationInvoice.transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `_embedded.activationInvoice.transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `_embedded.activationInvoice.transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `_embedded.activationInvoice.transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `_embedded.activationInvoice.transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `_embedded.activationInvoice.transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.activationInvoice.transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `_embedded.activationInvoice.transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `_embedded.activationInvoice.transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `_embedded.activationInvoice.transactions.description` (string)
  Description of the payment.
- `_embedded.activationInvoice.transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.activationInvoice.transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `_embedded.activationInvoice.transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `_embedded.activationInvoice.transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.gateway` (object)
  Related gateway information.
- `_embedded.activationInvoice.transactions.gateway.response` (object)
  Gateway response.
- `_embedded.activationInvoice.transactions.gateway.response.code` (string | null)
  Gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.message` (string | null)
  Gateway response message.
- `_embedded.activationInvoice.transactions.gateway.response.type` (string | null)
  Gateway response type.
- `_embedded.activationInvoice.transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.activationInvoice.transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.activationInvoice.transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `_embedded.activationInvoice.transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `_embedded.activationInvoice.transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `_embedded.activationInvoice.transactions.paymentInstrument` (object)
- `_embedded.activationInvoice.transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `_embedded.activationInvoice.transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `_embedded.activationInvoice.transactions.dcc.base` (object)
- `_embedded.activationInvoice.transactions.dcc.base.amount` (number, required)
  Example: 10
- `_embedded.activationInvoice.transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `_embedded.activationInvoice.transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `_embedded.activationInvoice.transactions.riskScore` (integer)
  Risk score for the transaction.
- `_embedded.activationInvoice.transactions.riskMetadata` (any)
- `_embedded.activationInvoice.transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.activationInvoice.transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `_embedded.activationInvoice.transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `_embedded.activationInvoice.transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `_embedded.activationInvoice.transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `_embedded.activationInvoice.transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.activationInvoice.transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.activationInvoice.transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `_embedded.activationInvoice.transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.activationInvoice.transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `_embedded.activationInvoice.transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `_embedded.activationInvoice.transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `_embedded.activationInvoice.transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `_embedded.activationInvoice.transactions.limits` (object | null)
  Transaction amount limit information.
- `_embedded.activationInvoice.transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.activationInvoice.transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.activationInvoice.transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `_embedded.activationInvoice.transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_embedded.activationInvoice.transactions._links` (array)
  Related links.
- `_embedded.activationInvoice.transactions._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded.activationInvoice.transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.transactions._embedded.parentTransaction` (object)
- `_embedded.activationInvoice.transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.activationInvoice.transactions._embedded.gatewayAccount` (object)
- `_embedded.activationInvoice.transactions._embedded.customer` (object)
- `_embedded.activationInvoice.transactions._embedded.leadSource` (object)
- `_embedded.activationInvoice.transactions._embedded.website` (object)
- `_embedded.activationInvoice.transactions._embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.activationInvoice.transactions._embedded.organization` (object)
- `_embedded.activationInvoice.transactions._embedded.dispute` (object)
- `_embedded.activationInvoice.transactions._embedded.paymentCard` (object)
- `_embedded.activationInvoice.transactions._embedded.bankAccount` (object)
- `_embedded.activationInvoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.activationInvoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.activationInvoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.activationInvoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.activationInvoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.activationInvoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.activationInvoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.activationInvoice.revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.activationInvoice.type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `_embedded.activationInvoice.dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `_embedded.activationInvoice.dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `_embedded.activationInvoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_embedded.activationInvoice._links` (array)
  Related links.
- `_embedded.activationInvoice._links.href` (string)
  Link URL.
- `_embedded.activationInvoice._links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded.activationInvoice._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice._embedded.customer` (object)
- `_embedded.activationInvoice._embedded.website` (object)
- `_embedded.activationInvoice._embedded.organization` (object)
- `_embedded.activationInvoice._embedded.leadSource` (object)
- `_embedded.activationInvoice._embedded.shippingRate` (object)
- `_embedded.upcomingInvoice` (object)
- `_embedded.upcomingInvoice.id` (string)
  ID of the upcoming invoice. This value is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.upcomingInvoice.revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.upcomingInvoice.items` (array)
  Upcoming invoice items array.
- `_embedded.upcomingInvoice.items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.upcomingInvoice.items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `_embedded.upcomingInvoice.items.description` (string)
  Description of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.price` (number)
  Total price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.upcomingInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.upcomingInvoice.items.orderId` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.upcomingInvoice.items.periodStartTime` (string)
  Date and time when the billing period starts.
- `_embedded.upcomingInvoice.items.periodEndTime` (string)
  Date and time when the billing period ends.
- `_embedded.upcomingInvoice.items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.upcomingInvoice.items.tax` (object)
- `_embedded.upcomingInvoice.items.tax.amount` (number, required)
  Amount of the tax.
- `_embedded.upcomingInvoice.items.tax.description` (string, required)
  Description of the tax.
- `_embedded.upcomingInvoice.items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `_embedded.upcomingInvoice.items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `_embedded.upcomingInvoice.items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `_embedded.upcomingInvoice.items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `_embedded.upcomingInvoice.items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `_embedded.upcomingInvoice.items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `_embedded.upcomingInvoice.items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `_embedded.upcomingInvoice.items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `_embedded.upcomingInvoice.items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.upcomingInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.upcomingInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.upcomingInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.upcomingInvoice.discounts` (array)
  Discounts applied.
- `_embedded.upcomingInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.upcomingInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.upcomingInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.upcomingInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.upcomingInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.paymentInstrument` (any)
- `_embedded.website` (object)
- `_embedded.website.id` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.website.name` (string, required)
  Name of the website.
- `_embedded.website.url` (string, required)
  Domain address of the website.
- `_embedded.website.servicePhone` (string, required)
  Customer service phone number of the website.
- `_embedded.website.serviceEmail` (string, required)
  Customer service email address of the website.
- `_embedded.website.settings` (object)
  Website settings.
- `_embedded.website.settings.paymentForm` (object)
  Payment form settings.
- `_embedded.website.settings.paymentForm.css` (string | null)
  Hosted payment form [CSS options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#2-use-css-property-to-override-any-styles).
- `_embedded.website.settings.paymentForm.features` (object | null)
  Hosted payment form features.
- `_embedded.website.settings.paymentForm.features.showCoupons` (array | null)
- `_embedded.website.settings.paymentForm.features.fullPageRedirect` (boolean | null)
  Specifies whether the hosted payment form uses a full page redirect, or the default iframe modal, for approval URL redirects.
- `_embedded.website.settings.paymentForm.features.skipRedirectOnPaymentComplete` (boolean | null)
  Specifies whether the hosted payment form skips the redirect to the website URL when the payment is completed.
- `_embedded.website.settings.paymentForm.features.hideZeroAmountSummaryItems` (boolean | null)
  Specifies if the hosted payment form displays 0 amount line items in the summary.
- `_embedded.website.settings.amplitude` (object)
  Amplitude settings. Amplitude is an analytics tool for tracking user behavior.
- `_embedded.website.settings.amplitude.tracking` (boolean)
  Specifies if the hosted pages, such as KYC pages, include Amplitude analytics.
- `_embedded.website.settings.amplitude.apiKey` (string | null)
  API key of an Amplitude project.
  Example: 35d1795750c585984f7e6b01c0ca6e19
- `_embedded.website.settings.payoutRequest` (object)
  Payout request settings for the website.
- `_embedded.website.settings.payoutRequest.automaticReadinessEnabled` (boolean)
  Specifies whether pending payout requests are automatically marked as `ready`. When this value is `false`, payout requests are created in the `ready` status and automatic transition is not used. When this value is `true`, payout requests remain in the `pending` status until the pending period elapses and the configured transition time is reached.
- `_embedded.website.settings.payoutRequest.pendingPeriodHours` (integer)
  Minimum number of hours a payout request stays in the `pending` status before it can be automatically set to `ready`. Required when `automaticReadinessEnabled` is `true`.
  Example: 48
- `_embedded.website.settings.payoutRequest.automaticReadinessTime` (string)
  Time of day when the automatic readiness job processes eligible pending payout requests. Required when `automaticReadinessEnabled` is `true`. Use extended ISO-8601 time format (`HH:MM:SS`) with an optional timezone offset. When the timezone offset is omitted, the server timezone is used.
  Example: 10:00:00Z
- `_embedded.website.settings.payoutRequest.automaticReadinessLastExecutedAt` (string | null)
  Date and time when the automatic readiness job last completed successfully for this website.
- `_embedded.website.logoId` (string | null)
  ID of the linked file object.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.website.logoUrl` (string | null)
  URL of the website logo.
- `_embedded.website.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.website._links` (array)
  Related links.
- `_embedded.website._links.href` (string)
  Link URL.
- `_embedded.website._links.rel` (string)
  Type of link.
  Enum: "self", "logoUrl"
- `billingAddress` (any)
  Billing address of the order.
- `deliveryAddress` (any)
  Delivery address of the order.

## 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 404 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 409 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 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.

# Pause an order

Pauses an order with a specified ID.

Endpoint: POST /order-pauses
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `orderId` (string, required)
  ID of the paused order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the order resumes billing. To resume an order from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the order is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month order on a 30-day month is paused on day 20. There are 10 unused days on the order. Therefore, the order renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If a subscription item in the order uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S

## Response 201 fields

- `id` (string)
  ID of the order pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `orderId` (string, required)
  ID of the paused order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `status` (string)
  Status of the order pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the order resumes billing. To resume an order from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the order is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month order on a 30-day month is paused on day 20. There are 10 unused days on the order. Therefore, the order renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If a subscription item in the order uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Issue an upcoming invoice for early pay

Issues an upcoming invoice, for an order with a specified ID, for early pay.

Endpoint: POST /orders/{id}/upcoming-invoice/issue
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `issuedTime` (string | null)
  Date and time when the invoice is issued. If this field is `null` or omitted, the invoice is issued immediately.
- `dueTime` (string | null)
  Date and time when the invoice is due for payment. If this field is `null` or omitted, this value is set to the `issuedTime` value.

## Response 201 fields

- `id` (string)
  ID of the upcoming invoice, which is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `subscriptionId` (string)
  ID of the related subscription order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `items` (array)
  Upcoming invoice items array.
- `items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `items.description` (string)
  Description of the upcoming invoice item.
- `items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `items.price` (number)
  Total price of the upcoming invoice item.
- `items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.periodStartTime` (string)
  Date and time when the billing period starts.
- `items.periodEndTime` (string)
  Date and time when the billing period ends.
- `items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.tax` (object)
- `items.tax.amount` (number, required)
  Amount of the tax.
- `items.tax.description` (string, required)
  Description of the tax.
- `items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `items._links` (array)
  Related links.
- `items._links.href` (string)
  Link URL.
- `items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "plan", "subscription"
- `items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `items._embedded.product` (object)
- `items._embedded.plan` (object)
- `amount` (number)
  Amount of the invoice.
- `amountDue` (number)
  Amount that is due on the invoice.
- `subtotalAmount` (number)
  Subtotal amount of the invoice.
- `discountAmount` (number)
  Discount amount that is applied to the invoice.
- `shipping` (object)
  Shipping settings.
- `tax` (object)
  Taxes.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the invoice.
- `discounts` (array)
  Discounts applied.
- `discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `discounts.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `discounts.amount` (number)
  Total amount discounted by this coupon.
- `discounts.description` (string)
  Description of the discount.
- `discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `dueTime` (string)
  Date and time when the invoice is due for payment.
- `issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "subscription", "attachments", "leadSource"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.organization` (object)
- `_embedded.leadSource` (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 404 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 409 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 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.

# Void an order

Voids a pending order with a specified ID.

Endpoint: POST /orders/{id}/void
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `type` (string, required)
  Type of the order.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `activationInvoiceId` (string)
  ID of the activation invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the order.
  Enum: "pending", "voided", "completed", "abandoned"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `items` (array, required)
  Item in the order.
- `items.id` (string)
  ID of the subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.type` (string, required)
  Specifies the type of order item.
- `items.renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `items.renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `items.recurringInterval` (object | null)
  Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length.
  Example: null
- `items.recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `items.renewalTime` (string | null)
  Date and time when the subscription renews.
- `items.currentPeriodStart` (string)
  Date and time of the current service period start.
- `items.currentPeriodEnd` (string)
  Date and time of the current service period end.
- `items.rebillNumber` (integer | null)
  Current billing period number.
- `items.productId` (string)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.plan` (any, required)
  Details of the plan.
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific item.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `items.revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `invoiceIssueTimeShift` (string)
  Invoice issue time shift interval in ISO-8601 format. This field adjusts the issue date and time of renewal invoices for the order. This interval value supports the `-` symbol.
  Example: +P00Y00M00DT00H00M00S
- `invoiceDueTimeShift` (string)
  Invoice due time shift interval in ISO-8601 format. Use this field to adjust when payment is due for the order. If autopay is configured, payment is collected automatically on this date. This interval value supports the `+` symbol.
  Example: +P00Y00M00DT00H00M00S
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `poNumber` (string | null)
  Purchase order number that is displayed on the issued invoices.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the order invoice.
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state.
  Example: +P00Y00M07DT00H00M00S
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `activationTime` (string | null)
  Date and time when the order is activated.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `churnTime` (string | null)
  Date and time when the order is deactivated.
- `cancellationTime` (string | null)
  Date and time when an order is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `currentPeriodStart` (string | null)
  Date and time of the current service period start.
- `currentPeriodEnd` (string | null)
  Date and time of the current service period end. If subscriptions have different recurring settings or the order is not active, providing this field causes the request to be rejected with a conflict. This field is ignored if the order is in trial.
- `renewalTime` (string | null)
  Date and time when the next subscription in this recurring order renews.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.email` (string | null)
  Customer's email address.
- `_embedded.customer.firstName` (string | null)
  Customer's first name.
- `_embedded.customer.lastName` (string | null)
  Customer's last name.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `_embedded.customer.defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.customer.defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `_embedded.customer.company.name` (string | null)
  Name of the company.
- `_embedded.customer.company.domain` (string)
  Website domain of the company.
- `_embedded.customer.company.yearFounded` (number | null)
  Founding year of the company.
- `_embedded.customer.company.industry` (string | null)
  Industry the company is associated with.
- `_embedded.customer.company.employeesCount` (number | null)
  Number of employees in the company.
- `_embedded.customer.company.country` (string | null)
  Country where the company is based.
- `_embedded.customer.company.locality` (string | null)
  Locality or region where the company is based.
- `_embedded.customer.company._links` (array)
- `_embedded.customer.company._links.href` (string)
  Link URL.
- `_embedded.customer.company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `_embedded.customer.averageValue` (object)
  Average customer value.
- `_embedded.customer.averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `_embedded.customer.averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `_embedded.customer.paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `_embedded.customer.lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `_embedded.customer.lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `_embedded.customer.invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `_embedded.customer.tags` (array)
  List of customer tags.
- `_embedded.customer.tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.customer.tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `_embedded.customer.tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `_embedded.customer.revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_embedded.customer.hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.leadSource._links` (array)
  Related links.
- `_embedded.customer.leadSource._links.href` (string)
  Link URL.
- `_embedded.customer.leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.customer._links` (array)
  Related links.
- `_embedded.customer._links.href` (string)
  Link URL.
- `_embedded.customer._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded.customer._embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.customer._embedded.defaultPaymentInstrument` (object)
- `_embedded.customer._embedded.website` (object)
- `_embedded.customer._embedded.leadSource` (object)
- `_embedded.activationInvoice` (object)
- `_embedded.activationInvoice.id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `_embedded.activationInvoice.orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.activationInvoice.subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `_embedded.activationInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.activationInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.activationInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.activationInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.activationInvoice.tax` (object)
  Taxes.
- `_embedded.activationInvoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.billingAddress` (object)
  Contact's information.
- `_embedded.activationInvoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.activationInvoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.activationInvoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.activationInvoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.activationInvoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.activationInvoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.activationInvoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.activationInvoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.activationInvoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.activationInvoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.activationInvoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.activationInvoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.activationInvoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.activationInvoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.activationInvoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.activationInvoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.activationInvoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.activationInvoice.billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `_embedded.activationInvoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.activationInvoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.activationInvoice.items` (array)
  Invoice items array.
- `_embedded.activationInvoice.items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.activationInvoice.items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `_embedded.activationInvoice.items.description` (string)
  Description of the invoice item.
- `_embedded.activationInvoice.items.unitPrice` (number, required)
  Unit price of the invoice item.
- `_embedded.activationInvoice.items.quantity` (integer)
  Quantity of the invoice item.
- `_embedded.activationInvoice.items.price` (number)
  Total price of the invoice item.
- `_embedded.activationInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.activationInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.activationInvoice.items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `_embedded.activationInvoice.items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `_embedded.activationInvoice.items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.activationInvoice.items.tax` (any)
  Invoice item tax.
- `_embedded.activationInvoice.items._links` (array)
  Related links.
- `_embedded.activationInvoice.items._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded.activationInvoice.items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.items._embedded.product` (object)
- `_embedded.activationInvoice.items._embedded.plan` (object)
- `_embedded.activationInvoice.discounts` (array)
  Discounts applied.
- `_embedded.activationInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.activationInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.activationInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.activationInvoice.discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `_embedded.activationInvoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.activationInvoice.autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `_embedded.activationInvoice.status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `_embedded.activationInvoice.delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `_embedded.activationInvoice.collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `_embedded.activationInvoice.abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `_embedded.activationInvoice.voidedTime` (string | null)
  Date and time when the invoice is voided.
- `_embedded.activationInvoice.paidTime` (string | null)
  Date and time when the invoice is paid.
- `_embedded.activationInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.activationInvoice.issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_embedded.activationInvoice.paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `_embedded.activationInvoice.creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `_embedded.activationInvoice.creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.creditMemoAllocations.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.
- `_embedded.activationInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.activationInvoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `_embedded.activationInvoice.transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.activationInvoice.transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `_embedded.activationInvoice.transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `_embedded.activationInvoice.transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `_embedded.activationInvoice.transactions.amount` (number)
  Total amount of the transaction.
- `_embedded.activationInvoice.transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `_embedded.activationInvoice.transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `_embedded.activationInvoice.transactions.childTransactions` (array)
  IDs of child transactions.
- `_embedded.activationInvoice.transactions.invoiceIds` (array)
  Related invoice IDs.
- `_embedded.activationInvoice.transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `_embedded.activationInvoice.transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `_embedded.activationInvoice.transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `_embedded.activationInvoice.transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `_embedded.activationInvoice.transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `_embedded.activationInvoice.transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `_embedded.activationInvoice.transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `_embedded.activationInvoice.transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `_embedded.activationInvoice.transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `_embedded.activationInvoice.transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `_embedded.activationInvoice.transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `_embedded.activationInvoice.transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.activationInvoice.transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `_embedded.activationInvoice.transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `_embedded.activationInvoice.transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `_embedded.activationInvoice.transactions.description` (string)
  Description of the payment.
- `_embedded.activationInvoice.transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.activationInvoice.transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `_embedded.activationInvoice.transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `_embedded.activationInvoice.transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.gateway` (object)
  Related gateway information.
- `_embedded.activationInvoice.transactions.gateway.response` (object)
  Gateway response.
- `_embedded.activationInvoice.transactions.gateway.response.code` (string | null)
  Gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.message` (string | null)
  Gateway response message.
- `_embedded.activationInvoice.transactions.gateway.response.type` (string | null)
  Gateway response type.
- `_embedded.activationInvoice.transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.activationInvoice.transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.activationInvoice.transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `_embedded.activationInvoice.transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `_embedded.activationInvoice.transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `_embedded.activationInvoice.transactions.paymentInstrument` (object)
- `_embedded.activationInvoice.transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `_embedded.activationInvoice.transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `_embedded.activationInvoice.transactions.dcc.base` (object)
- `_embedded.activationInvoice.transactions.dcc.base.amount` (number, required)
  Example: 10
- `_embedded.activationInvoice.transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `_embedded.activationInvoice.transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `_embedded.activationInvoice.transactions.riskScore` (integer)
  Risk score for the transaction.
- `_embedded.activationInvoice.transactions.riskMetadata` (any)
- `_embedded.activationInvoice.transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.activationInvoice.transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `_embedded.activationInvoice.transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `_embedded.activationInvoice.transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `_embedded.activationInvoice.transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `_embedded.activationInvoice.transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.activationInvoice.transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.activationInvoice.transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `_embedded.activationInvoice.transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.activationInvoice.transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `_embedded.activationInvoice.transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `_embedded.activationInvoice.transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `_embedded.activationInvoice.transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `_embedded.activationInvoice.transactions.limits` (object | null)
  Transaction amount limit information.
- `_embedded.activationInvoice.transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.activationInvoice.transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.activationInvoice.transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `_embedded.activationInvoice.transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_embedded.activationInvoice.transactions._links` (array)
  Related links.
- `_embedded.activationInvoice.transactions._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded.activationInvoice.transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.transactions._embedded.parentTransaction` (object)
- `_embedded.activationInvoice.transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.activationInvoice.transactions._embedded.gatewayAccount` (object)
- `_embedded.activationInvoice.transactions._embedded.customer` (object)
- `_embedded.activationInvoice.transactions._embedded.leadSource` (object)
- `_embedded.activationInvoice.transactions._embedded.website` (object)
- `_embedded.activationInvoice.transactions._embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.activationInvoice.transactions._embedded.organization` (object)
- `_embedded.activationInvoice.transactions._embedded.dispute` (object)
- `_embedded.activationInvoice.transactions._embedded.paymentCard` (object)
- `_embedded.activationInvoice.transactions._embedded.bankAccount` (object)
- `_embedded.activationInvoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.activationInvoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.activationInvoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.activationInvoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.activationInvoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.activationInvoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.activationInvoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.activationInvoice.revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.activationInvoice.type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `_embedded.activationInvoice.dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `_embedded.activationInvoice.dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `_embedded.activationInvoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_embedded.activationInvoice._links` (array)
  Related links.
- `_embedded.activationInvoice._links.href` (string)
  Link URL.
- `_embedded.activationInvoice._links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded.activationInvoice._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice._embedded.customer` (object)
- `_embedded.activationInvoice._embedded.website` (object)
- `_embedded.activationInvoice._embedded.organization` (object)
- `_embedded.activationInvoice._embedded.leadSource` (object)
- `_embedded.activationInvoice._embedded.shippingRate` (object)
- `_embedded.upcomingInvoice` (object)
- `_embedded.upcomingInvoice.id` (string)
  ID of the upcoming invoice. This value is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.upcomingInvoice.revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.upcomingInvoice.items` (array)
  Upcoming invoice items array.
- `_embedded.upcomingInvoice.items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.upcomingInvoice.items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `_embedded.upcomingInvoice.items.description` (string)
  Description of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.price` (number)
  Total price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.upcomingInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.upcomingInvoice.items.orderId` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.upcomingInvoice.items.periodStartTime` (string)
  Date and time when the billing period starts.
- `_embedded.upcomingInvoice.items.periodEndTime` (string)
  Date and time when the billing period ends.
- `_embedded.upcomingInvoice.items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.upcomingInvoice.items.tax` (object)
- `_embedded.upcomingInvoice.items.tax.amount` (number, required)
  Amount of the tax.
- `_embedded.upcomingInvoice.items.tax.description` (string, required)
  Description of the tax.
- `_embedded.upcomingInvoice.items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `_embedded.upcomingInvoice.items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `_embedded.upcomingInvoice.items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `_embedded.upcomingInvoice.items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `_embedded.upcomingInvoice.items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `_embedded.upcomingInvoice.items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `_embedded.upcomingInvoice.items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `_embedded.upcomingInvoice.items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `_embedded.upcomingInvoice.items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.upcomingInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.upcomingInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.upcomingInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.upcomingInvoice.discounts` (array)
  Discounts applied.
- `_embedded.upcomingInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.upcomingInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.upcomingInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.upcomingInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.upcomingInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.paymentInstrument` (any)
- `_embedded.website` (object)
- `_embedded.website.id` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.website.name` (string, required)
  Name of the website.
- `_embedded.website.url` (string, required)
  Domain address of the website.
- `_embedded.website.servicePhone` (string, required)
  Customer service phone number of the website.
- `_embedded.website.serviceEmail` (string, required)
  Customer service email address of the website.
- `_embedded.website.settings` (object)
  Website settings.
- `_embedded.website.settings.paymentForm` (object)
  Payment form settings.
- `_embedded.website.settings.paymentForm.css` (string | null)
  Hosted payment form [CSS options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#2-use-css-property-to-override-any-styles).
- `_embedded.website.settings.paymentForm.features` (object | null)
  Hosted payment form features.
- `_embedded.website.settings.paymentForm.features.showCoupons` (array | null)
- `_embedded.website.settings.paymentForm.features.fullPageRedirect` (boolean | null)
  Specifies whether the hosted payment form uses a full page redirect, or the default iframe modal, for approval URL redirects.
- `_embedded.website.settings.paymentForm.features.skipRedirectOnPaymentComplete` (boolean | null)
  Specifies whether the hosted payment form skips the redirect to the website URL when the payment is completed.
- `_embedded.website.settings.paymentForm.features.hideZeroAmountSummaryItems` (boolean | null)
  Specifies if the hosted payment form displays 0 amount line items in the summary.
- `_embedded.website.settings.amplitude` (object)
  Amplitude settings. Amplitude is an analytics tool for tracking user behavior.
- `_embedded.website.settings.amplitude.tracking` (boolean)
  Specifies if the hosted pages, such as KYC pages, include Amplitude analytics.
- `_embedded.website.settings.amplitude.apiKey` (string | null)
  API key of an Amplitude project.
  Example: 35d1795750c585984f7e6b01c0ca6e19
- `_embedded.website.settings.payoutRequest` (object)
  Payout request settings for the website.
- `_embedded.website.settings.payoutRequest.automaticReadinessEnabled` (boolean)
  Specifies whether pending payout requests are automatically marked as `ready`. When this value is `false`, payout requests are created in the `ready` status and automatic transition is not used. When this value is `true`, payout requests remain in the `pending` status until the pending period elapses and the configured transition time is reached.
- `_embedded.website.settings.payoutRequest.pendingPeriodHours` (integer)
  Minimum number of hours a payout request stays in the `pending` status before it can be automatically set to `ready`. Required when `automaticReadinessEnabled` is `true`.
  Example: 48
- `_embedded.website.settings.payoutRequest.automaticReadinessTime` (string)
  Time of day when the automatic readiness job processes eligible pending payout requests. Required when `automaticReadinessEnabled` is `true`. Use extended ISO-8601 time format (`HH:MM:SS`) with an optional timezone offset. When the timezone offset is omitted, the server timezone is used.
  Example: 10:00:00Z
- `_embedded.website.settings.payoutRequest.automaticReadinessLastExecutedAt` (string | null)
  Date and time when the automatic readiness job last completed successfully for this website.
- `_embedded.website.logoId` (string | null)
  ID of the linked file object.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.website.logoUrl` (string | null)
  URL of the website logo.
- `_embedded.website.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.website._links` (array)
  Related links.
- `_embedded.website._links.href` (string)
  Link URL.
- `_embedded.website._links.rel` (string)
  Type of link.
  Enum: "self", "logoUrl"
- `billingAddress` (any)
  Billing address of the order.
- `deliveryAddress` (any)
  Delivery address of the order.

## 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 404 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 409 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 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.

# Upsert an order

Creates or updates (upserts) an order with a specified ID.

Endpoint: PUT /orders/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=customer,activationInvoice`. Available arguments are: - `customer` - `activationInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` - `website` For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Request fields

- `type` (string, required)
  Type of the order.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `items` (array, required)
  Item in the order.
- `items.type` (string, required)
  Specifies the type of order item.
- `items.recurringInterval` (object | null)
  Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length.
  Example: null
- `items.recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `items.renewalTime` (string | null)
  Date and time when the subscription renews.
- `items.plan` (any, required)
  Details of the plan.
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `invoiceIssueTimeShift` (string)
  Invoice issue time shift interval in ISO-8601 format. This field adjusts the issue date and time of renewal invoices for the order. This interval value supports the `-` symbol.
  Example: +P00Y00M00DT00H00M00S
- `invoiceDueTimeShift` (string)
  Invoice due time shift interval in ISO-8601 format. Use this field to adjust when payment is due for the order. If autopay is configured, payment is collected automatically on this date. This interval value supports the `+` symbol.
  Example: +P00Y00M00DT00H00M00S
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `poNumber` (string | null)
  Purchase order number that is displayed on the issued invoices.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the order invoice.
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state.
  Example: +P00Y00M07DT00H00M00S
- `couponIds` (array | null)
  List of coupons to redeem on the customer and restrict to this order. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). This parameter uses the following logic: - If this parameter is not supplied, applied coupons are not changed. - If an empty array is supplied, all applied coupon redemptions are canceled. - If a list of coupons is supplied, unapplied coupons in the list are applied. Coupons that have already been applied do not change state. Applied coupons that are not supplied in list are canceled. If the list of applied coupons on a pending order is changed by this parameter during an order update, the invoice for the order is reissued.
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `currentPeriodEnd` (string | null)
  Date and time of the current service period end. If subscriptions have different recurring settings or the order is not active, providing this field causes the request to be rejected with a conflict. This field is ignored if the order is in trial.
- `billingAddress` (any)
  Billing address of the order.
- `deliveryAddress` (any)
  Delivery address of the order.

## Response 200 fields

- `id` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `type` (string, required)
  Type of the order.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `activationInvoiceId` (string)
  ID of the activation invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the order.
  Enum: "pending", "voided", "completed", "abandoned"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `items` (array, required)
  Item in the order.
- `items.id` (string)
  ID of the subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.type` (string, required)
  Specifies the type of order item.
- `items.renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `items.renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `items.recurringInterval` (object | null)
  Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length.
  Example: null
- `items.recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `items.renewalTime` (string | null)
  Date and time when the subscription renews.
- `items.currentPeriodStart` (string)
  Date and time of the current service period start.
- `items.currentPeriodEnd` (string)
  Date and time of the current service period end.
- `items.rebillNumber` (integer | null)
  Current billing period number.
- `items.productId` (string)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.plan` (any, required)
  Details of the plan.
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific item.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `items.revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `invoiceIssueTimeShift` (string)
  Invoice issue time shift interval in ISO-8601 format. This field adjusts the issue date and time of renewal invoices for the order. This interval value supports the `-` symbol.
  Example: +P00Y00M00DT00H00M00S
- `invoiceDueTimeShift` (string)
  Invoice due time shift interval in ISO-8601 format. Use this field to adjust when payment is due for the order. If autopay is configured, payment is collected automatically on this date. This interval value supports the `+` symbol.
  Example: +P00Y00M00DT00H00M00S
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `poNumber` (string | null)
  Purchase order number that is displayed on the issued invoices.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the order invoice.
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state.
  Example: +P00Y00M07DT00H00M00S
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `activationTime` (string | null)
  Date and time when the order is activated.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `churnTime` (string | null)
  Date and time when the order is deactivated.
- `cancellationTime` (string | null)
  Date and time when an order is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `currentPeriodStart` (string | null)
  Date and time of the current service period start.
- `currentPeriodEnd` (string | null)
  Date and time of the current service period end. If subscriptions have different recurring settings or the order is not active, providing this field causes the request to be rejected with a conflict. This field is ignored if the order is in trial.
- `renewalTime` (string | null)
  Date and time when the next subscription in this recurring order renews.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.email` (string | null)
  Customer's email address.
- `_embedded.customer.firstName` (string | null)
  Customer's first name.
- `_embedded.customer.lastName` (string | null)
  Customer's last name.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `_embedded.customer.defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.customer.defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `_embedded.customer.company.name` (string | null)
  Name of the company.
- `_embedded.customer.company.domain` (string)
  Website domain of the company.
- `_embedded.customer.company.yearFounded` (number | null)
  Founding year of the company.
- `_embedded.customer.company.industry` (string | null)
  Industry the company is associated with.
- `_embedded.customer.company.employeesCount` (number | null)
  Number of employees in the company.
- `_embedded.customer.company.country` (string | null)
  Country where the company is based.
- `_embedded.customer.company.locality` (string | null)
  Locality or region where the company is based.
- `_embedded.customer.company._links` (array)
- `_embedded.customer.company._links.href` (string)
  Link URL.
- `_embedded.customer.company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `_embedded.customer.averageValue` (object)
  Average customer value.
- `_embedded.customer.averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `_embedded.customer.averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `_embedded.customer.paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `_embedded.customer.lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `_embedded.customer.lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `_embedded.customer.invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `_embedded.customer.tags` (array)
  List of customer tags.
- `_embedded.customer.tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.customer.tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `_embedded.customer.tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `_embedded.customer.revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_embedded.customer.hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.leadSource._links` (array)
  Related links.
- `_embedded.customer.leadSource._links.href` (string)
  Link URL.
- `_embedded.customer.leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.customer._links` (array)
  Related links.
- `_embedded.customer._links.href` (string)
  Link URL.
- `_embedded.customer._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded.customer._embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.customer._embedded.defaultPaymentInstrument` (object)
- `_embedded.customer._embedded.website` (object)
- `_embedded.customer._embedded.leadSource` (object)
- `_embedded.activationInvoice` (object)
- `_embedded.activationInvoice.id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `_embedded.activationInvoice.orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.activationInvoice.subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `_embedded.activationInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.activationInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.activationInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.activationInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.activationInvoice.tax` (object)
  Taxes.
- `_embedded.activationInvoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.billingAddress` (object)
  Contact's information.
- `_embedded.activationInvoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.activationInvoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.activationInvoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.activationInvoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.activationInvoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.activationInvoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.activationInvoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.activationInvoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.activationInvoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.activationInvoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.activationInvoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.activationInvoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.activationInvoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.activationInvoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.activationInvoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.activationInvoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.activationInvoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.activationInvoice.billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `_embedded.activationInvoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.activationInvoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.activationInvoice.items` (array)
  Invoice items array.
- `_embedded.activationInvoice.items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.activationInvoice.items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `_embedded.activationInvoice.items.description` (string)
  Description of the invoice item.
- `_embedded.activationInvoice.items.unitPrice` (number, required)
  Unit price of the invoice item.
- `_embedded.activationInvoice.items.quantity` (integer)
  Quantity of the invoice item.
- `_embedded.activationInvoice.items.price` (number)
  Total price of the invoice item.
- `_embedded.activationInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.activationInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.activationInvoice.items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `_embedded.activationInvoice.items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `_embedded.activationInvoice.items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.activationInvoice.items.tax` (any)
  Invoice item tax.
- `_embedded.activationInvoice.items._links` (array)
  Related links.
- `_embedded.activationInvoice.items._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded.activationInvoice.items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.items._embedded.product` (object)
- `_embedded.activationInvoice.items._embedded.plan` (object)
- `_embedded.activationInvoice.discounts` (array)
  Discounts applied.
- `_embedded.activationInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.activationInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.activationInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.activationInvoice.discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `_embedded.activationInvoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.activationInvoice.autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `_embedded.activationInvoice.status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `_embedded.activationInvoice.delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `_embedded.activationInvoice.collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `_embedded.activationInvoice.abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `_embedded.activationInvoice.voidedTime` (string | null)
  Date and time when the invoice is voided.
- `_embedded.activationInvoice.paidTime` (string | null)
  Date and time when the invoice is paid.
- `_embedded.activationInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.activationInvoice.issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_embedded.activationInvoice.paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `_embedded.activationInvoice.creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `_embedded.activationInvoice.creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.creditMemoAllocations.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.
- `_embedded.activationInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.activationInvoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `_embedded.activationInvoice.transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.activationInvoice.transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `_embedded.activationInvoice.transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `_embedded.activationInvoice.transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `_embedded.activationInvoice.transactions.amount` (number)
  Total amount of the transaction.
- `_embedded.activationInvoice.transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `_embedded.activationInvoice.transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `_embedded.activationInvoice.transactions.childTransactions` (array)
  IDs of child transactions.
- `_embedded.activationInvoice.transactions.invoiceIds` (array)
  Related invoice IDs.
- `_embedded.activationInvoice.transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `_embedded.activationInvoice.transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `_embedded.activationInvoice.transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `_embedded.activationInvoice.transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `_embedded.activationInvoice.transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `_embedded.activationInvoice.transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `_embedded.activationInvoice.transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `_embedded.activationInvoice.transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `_embedded.activationInvoice.transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `_embedded.activationInvoice.transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `_embedded.activationInvoice.transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `_embedded.activationInvoice.transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.activationInvoice.transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `_embedded.activationInvoice.transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `_embedded.activationInvoice.transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `_embedded.activationInvoice.transactions.description` (string)
  Description of the payment.
- `_embedded.activationInvoice.transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.activationInvoice.transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `_embedded.activationInvoice.transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `_embedded.activationInvoice.transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.gateway` (object)
  Related gateway information.
- `_embedded.activationInvoice.transactions.gateway.response` (object)
  Gateway response.
- `_embedded.activationInvoice.transactions.gateway.response.code` (string | null)
  Gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.message` (string | null)
  Gateway response message.
- `_embedded.activationInvoice.transactions.gateway.response.type` (string | null)
  Gateway response type.
- `_embedded.activationInvoice.transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.activationInvoice.transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.activationInvoice.transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `_embedded.activationInvoice.transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `_embedded.activationInvoice.transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `_embedded.activationInvoice.transactions.paymentInstrument` (object)
- `_embedded.activationInvoice.transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `_embedded.activationInvoice.transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `_embedded.activationInvoice.transactions.dcc.base` (object)
- `_embedded.activationInvoice.transactions.dcc.base.amount` (number, required)
  Example: 10
- `_embedded.activationInvoice.transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `_embedded.activationInvoice.transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `_embedded.activationInvoice.transactions.riskScore` (integer)
  Risk score for the transaction.
- `_embedded.activationInvoice.transactions.riskMetadata` (any)
- `_embedded.activationInvoice.transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.activationInvoice.transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `_embedded.activationInvoice.transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `_embedded.activationInvoice.transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `_embedded.activationInvoice.transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `_embedded.activationInvoice.transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.activationInvoice.transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.activationInvoice.transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `_embedded.activationInvoice.transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.activationInvoice.transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `_embedded.activationInvoice.transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `_embedded.activationInvoice.transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `_embedded.activationInvoice.transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `_embedded.activationInvoice.transactions.limits` (object | null)
  Transaction amount limit information.
- `_embedded.activationInvoice.transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.activationInvoice.transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.activationInvoice.transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `_embedded.activationInvoice.transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_embedded.activationInvoice.transactions._links` (array)
  Related links.
- `_embedded.activationInvoice.transactions._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded.activationInvoice.transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.transactions._embedded.parentTransaction` (object)
- `_embedded.activationInvoice.transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.activationInvoice.transactions._embedded.gatewayAccount` (object)
- `_embedded.activationInvoice.transactions._embedded.customer` (object)
- `_embedded.activationInvoice.transactions._embedded.leadSource` (object)
- `_embedded.activationInvoice.transactions._embedded.website` (object)
- `_embedded.activationInvoice.transactions._embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.activationInvoice.transactions._embedded.organization` (object)
- `_embedded.activationInvoice.transactions._embedded.dispute` (object)
- `_embedded.activationInvoice.transactions._embedded.paymentCard` (object)
- `_embedded.activationInvoice.transactions._embedded.bankAccount` (object)
- `_embedded.activationInvoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.activationInvoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.activationInvoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.activationInvoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.activationInvoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.activationInvoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.activationInvoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.activationInvoice.revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.activationInvoice.type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `_embedded.activationInvoice.dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `_embedded.activationInvoice.dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `_embedded.activationInvoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_embedded.activationInvoice._links` (array)
  Related links.
- `_embedded.activationInvoice._links.href` (string)
  Link URL.
- `_embedded.activationInvoice._links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded.activationInvoice._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice._embedded.customer` (object)
- `_embedded.activationInvoice._embedded.website` (object)
- `_embedded.activationInvoice._embedded.organization` (object)
- `_embedded.activationInvoice._embedded.leadSource` (object)
- `_embedded.activationInvoice._embedded.shippingRate` (object)
- `_embedded.upcomingInvoice` (object)
- `_embedded.upcomingInvoice.id` (string)
  ID of the upcoming invoice. This value is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.upcomingInvoice.revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.upcomingInvoice.items` (array)
  Upcoming invoice items array.
- `_embedded.upcomingInvoice.items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.upcomingInvoice.items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `_embedded.upcomingInvoice.items.description` (string)
  Description of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.price` (number)
  Total price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.upcomingInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.upcomingInvoice.items.orderId` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.upcomingInvoice.items.periodStartTime` (string)
  Date and time when the billing period starts.
- `_embedded.upcomingInvoice.items.periodEndTime` (string)
  Date and time when the billing period ends.
- `_embedded.upcomingInvoice.items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.upcomingInvoice.items.tax` (object)
- `_embedded.upcomingInvoice.items.tax.amount` (number, required)
  Amount of the tax.
- `_embedded.upcomingInvoice.items.tax.description` (string, required)
  Description of the tax.
- `_embedded.upcomingInvoice.items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `_embedded.upcomingInvoice.items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `_embedded.upcomingInvoice.items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `_embedded.upcomingInvoice.items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `_embedded.upcomingInvoice.items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `_embedded.upcomingInvoice.items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `_embedded.upcomingInvoice.items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `_embedded.upcomingInvoice.items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `_embedded.upcomingInvoice.items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.upcomingInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.upcomingInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.upcomingInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.upcomingInvoice.discounts` (array)
  Discounts applied.
- `_embedded.upcomingInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.upcomingInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.upcomingInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.upcomingInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.upcomingInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.paymentInstrument` (any)
- `_embedded.website` (object)
- `_embedded.website.id` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.website.name` (string, required)
  Name of the website.
- `_embedded.website.url` (string, required)
  Domain address of the website.
- `_embedded.website.servicePhone` (string, required)
  Customer service phone number of the website.
- `_embedded.website.serviceEmail` (string, required)
  Customer service email address of the website.
- `_embedded.website.settings` (object)
  Website settings.
- `_embedded.website.settings.paymentForm` (object)
  Payment form settings.
- `_embedded.website.settings.paymentForm.css` (string | null)
  Hosted payment form [CSS options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#2-use-css-property-to-override-any-styles).
- `_embedded.website.settings.paymentForm.features` (object | null)
  Hosted payment form features.
- `_embedded.website.settings.paymentForm.features.showCoupons` (array | null)
- `_embedded.website.settings.paymentForm.features.fullPageRedirect` (boolean | null)
  Specifies whether the hosted payment form uses a full page redirect, or the default iframe modal, for approval URL redirects.
- `_embedded.website.settings.paymentForm.features.skipRedirectOnPaymentComplete` (boolean | null)
  Specifies whether the hosted payment form skips the redirect to the website URL when the payment is completed.
- `_embedded.website.settings.paymentForm.features.hideZeroAmountSummaryItems` (boolean | null)
  Specifies if the hosted payment form displays 0 amount line items in the summary.
- `_embedded.website.settings.amplitude` (object)
  Amplitude settings. Amplitude is an analytics tool for tracking user behavior.
- `_embedded.website.settings.amplitude.tracking` (boolean)
  Specifies if the hosted pages, such as KYC pages, include Amplitude analytics.
- `_embedded.website.settings.amplitude.apiKey` (string | null)
  API key of an Amplitude project.
  Example: 35d1795750c585984f7e6b01c0ca6e19
- `_embedded.website.settings.payoutRequest` (object)
  Payout request settings for the website.
- `_embedded.website.settings.payoutRequest.automaticReadinessEnabled` (boolean)
  Specifies whether pending payout requests are automatically marked as `ready`. When this value is `false`, payout requests are created in the `ready` status and automatic transition is not used. When this value is `true`, payout requests remain in the `pending` status until the pending period elapses and the configured transition time is reached.
- `_embedded.website.settings.payoutRequest.pendingPeriodHours` (integer)
  Minimum number of hours a payout request stays in the `pending` status before it can be automatically set to `ready`. Required when `automaticReadinessEnabled` is `true`.
  Example: 48
- `_embedded.website.settings.payoutRequest.automaticReadinessTime` (string)
  Time of day when the automatic readiness job processes eligible pending payout requests. Required when `automaticReadinessEnabled` is `true`. Use extended ISO-8601 time format (`HH:MM:SS`) with an optional timezone offset. When the timezone offset is omitted, the server timezone is used.
  Example: 10:00:00Z
- `_embedded.website.settings.payoutRequest.automaticReadinessLastExecutedAt` (string | null)
  Date and time when the automatic readiness job last completed successfully for this website.
- `_embedded.website.logoId` (string | null)
  ID of the linked file object.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.website.logoUrl` (string | null)
  URL of the website logo.
- `_embedded.website.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.website._links` (array)
  Related links.
- `_embedded.website._links.href` (string)
  Link URL.
- `_embedded.website._links.rel` (string)
  Type of link.
  Enum: "self", "logoUrl"
- `billingAddress` (any)
  Billing address of the order.
- `deliveryAddress` (any)
  Delivery address of the order.

## Response 201 fields

- `id` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `type` (string, required)
  Type of the order.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `activationInvoiceId` (string)
  ID of the activation invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `recentInvoiceId` (string | null)
  ID of the most recently issued invoice. The invoice might not be `paid` yet.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the order.
  Enum: "pending", "voided", "completed", "abandoned"
- `inTrial` (boolean)
  Specifies if the subscription is currently in a trial period.
- `trial` (object)
  Details of the trial. To use plan defaults, omit the `trial` key or set this value to `null`.
- `trial.enabled` (boolean)
  Specifies if there is a trial for this subscription. Plans without trial prices are free trials.
- `trial.endTime` (string | null)
  Time and date when the trial ends. If the order churns during the trial, this value is the time when the order churned. If a trial is enabled on this subscription, a value must be provided. If the specified trial end time is in the past, the current time is used.
- `isTrialOnly` (boolean)
  Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored.
- `trialConversionTime` (string | null)
  Date and time when the subscription had a trial conversion. Trial conversion occurs when the first successful payment is made after a trial period.
- `items` (array, required)
  Item in the order.
- `items.id` (string)
  ID of the subscription.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `items.type` (string, required)
  Specifies the type of order item.
- `items.renewalReminderTime` (string | null)
  Date and time when the renewal reminder event triggers.
- `items.renewalReminderNumber` (integer | null)
  Number of triggered renewal reminder events.
- `items.recurringInterval` (object | null)
  Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length.
  Example: null
- `items.recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `items.renewalTime` (string | null)
  Date and time when the subscription renews.
- `items.currentPeriodStart` (string)
  Date and time of the current service period start.
- `items.currentPeriodEnd` (string)
  Date and time of the current service period end.
- `items.rebillNumber` (integer | null)
  Current billing period number.
- `items.productId` (string)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.plan` (any, required)
  Details of the plan.
- `items.quantity` (integer)
  Number of product units in the specified plan.
- `items.quantityFilled` (number | null)
  Number of filled product units.
  Example: 5.125
- `items.usageLimits` (any)
- `items.usageStatus` (any)
- `items.revision` (integer)
  Revision number that increments with each overriding change to this specific item.
- `items.excludeFromMrr` (boolean)
  Specifies if this item should be excluded from monthly recurring revenue calculations.
- `items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `items.id` (string)
  ID of the one-time sale.
  Example: ots_01HRF27SATGE4Z6PBJE6PD8328
- `items.revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `invoiceIssueTimeShift` (string)
  Invoice issue time shift interval in ISO-8601 format. This field adjusts the issue date and time of renewal invoices for the order. This interval value supports the `-` symbol.
  Example: +P00Y00M00DT00H00M00S
- `invoiceDueTimeShift` (string)
  Invoice due time shift interval in ISO-8601 format. Use this field to adjust when payment is due for the order. If autopay is configured, payment is collected automatically on this date. This interval value supports the `+` symbol.
  Example: +P00Y00M00DT00H00M00S
- `paymentInstrumentId` (string | null)
  ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `poNumber` (string | null)
  Purchase order number that is displayed on the issued invoices.
  Example: PO123456
- `notes` (string)
  Notes for the customer that are displayed on the order invoice.
- `billingAddress` (any)
  Billing address of the order. Changes to the billing address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the billing address on an issued invoice that has no payment attempts or applied credits, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=billingaddress).
- `deliveryAddress` (any)
  Delivery address of the order. Changes to the delivery address apply to the upcoming invoice and to invoices created after the change. Issued invoices are not updated unless the order is `pending`. To change the delivery address on an unpaid, past-due, or partially paid invoice, use the [upsert an invoice API operation](https://www.rebilly.com/catalog/all/invoices/putinvoice#invoices/putinvoice/t=request&path=deliveryaddress).
- `delinquencyPeriod` (string | null)
  Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state.
  Example: +P00Y00M07DT00H00M00S
- `riskMetadata` (any)
  Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token.
- `startTime` (string | null)
  Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past.
  Example: null
- `activationTime` (string | null)
  Date and time when the order is activated.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `shipping` (object)
  Shipping settings.
- `autopay` (boolean)
  Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `abandonTime` (string | null)
  Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value.
- `abandonReminderTime` (string | null)
  Date and time when the abandon order reminder event triggers.
- `abandonReminderNumber` (integer | null)
  Number of abandon order reminder events that are triggered.
- `voidTime` (string | null)
  Date and time when the order is voided.
- `churnTime` (string | null)
  Date and time when the order is deactivated.
- `cancellationTime` (string | null)
  Date and time when an order is canceled.
- `canceledBy` (string | null)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "rebilly", null
- `cancelCategory` (string | null)
  Category of the cancellation.
  Enum: "billing-failure", "did-not-use", "did-not-want", "missing-features", "bugs-or-problems", "do-not-remember", "risk-warning", "contract-expired", "too-expensive", "never-started", "switched-plan", "other", null
- `cancelDescription` (string | null)
  Description of the cancellation reason in free form.
- `billingPortalToken` (string | null)
  Customer JWT to access a billing portal. This field is presented only if a billing portal exists. This is an experimental field and can be changed or removed in the future.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `mrr` (number)
  Monthly recurring revenue of the order.
  Example: 49.95
- `revision` (integer)
  Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `currentPeriodStart` (string | null)
  Date and time of the current service period start.
- `currentPeriodEnd` (string | null)
  Date and time of the current service period end. If subscriptions have different recurring settings or the order is not active, providing this field causes the request to be rejected with a conflict. This field is ignored if the order is in trial.
- `renewalTime` (string | null)
  Date and time when the next subscription in this recurring order renews.
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.id` (string)
  ID of the customer.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.email` (string | null)
  Customer's email address.
- `_embedded.customer.firstName` (string | null)
  Customer's first name.
- `_embedded.customer.lastName` (string | null)
  Customer's last name.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.defaultPaymentInstrument` (object | null)
  Default payment instrument of the customer. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
- `_embedded.customer.defaultPaymentInstrument.method` (string, required)
  Payment method.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.customer.defaultPaymentInstrument.paymentInstrumentId` (string, required)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.company` (object | null)
  Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/).
- `_embedded.customer.company.name` (string | null)
  Name of the company.
- `_embedded.customer.company.domain` (string)
  Website domain of the company.
- `_embedded.customer.company.yearFounded` (number | null)
  Founding year of the company.
- `_embedded.customer.company.industry` (string | null)
  Industry the company is associated with.
- `_embedded.customer.company.employeesCount` (number | null)
  Number of employees in the company.
- `_embedded.customer.company.country` (string | null)
  Country where the company is based.
- `_embedded.customer.company.locality` (string | null)
  Locality or region where the company is based.
- `_embedded.customer.company._links` (array)
- `_embedded.customer.company._links.href` (string)
  Link URL.
- `_embedded.customer.company._links.rel` (string)
  Type of link.
  Enum: "linkedin"
- `_embedded.customer.averageValue` (object)
  Average customer value.
- `_embedded.customer.averageValue.amount` (number)
  Average amount of approved payments in the merchant's reporting currency.
- `_embedded.customer.averageValue.amountUsd` (number)
  Average approved payment amount in USD.
- `_embedded.customer.paymentCount` (integer)
  Total number of approved payments made by the customer. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lastPaymentTime` (string | null)
  Date and time when the customer made their last approved payment. Payments are the result of `sale` or `capture` transactions.
- `_embedded.customer.lifetimeRevenue` (object)
  Customer's lifetime revenue.
- `_embedded.customer.lifetimeRevenue.amount` (number)
  Revenue amount in the merchant's reporting currency.
- `_embedded.customer.lifetimeRevenue.amountUsd` (number)
  Revenue amount in USD.
- `_embedded.customer.invoiceCount` (integer)
  Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer.
- `_embedded.customer.tags` (array)
  List of customer tags.
- `_embedded.customer.tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.customer.tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `_embedded.customer.tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `_embedded.customer.revision` (integer)
  Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_embedded.customer.hasFulfilledKyc` (boolean)
  Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.taxNumbers.isValid` (boolean | null)
  Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation).
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.leadSource._links` (array)
  Related links.
- `_embedded.customer.leadSource._links.href` (string)
  Link URL.
- `_embedded.customer.leadSource._links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.customer._links` (array)
  Related links.
- `_embedded.customer._links.href` (string)
  Link URL.
- `_embedded.customer._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "defaultPaymentInstrument", "leadSource", "website"
- `_embedded.customer._embedded` (object)
  Embedded objects that are requested using the `expand` query string parameter.
- `_embedded.customer._embedded.defaultPaymentInstrument` (object)
- `_embedded.customer._embedded.website` (object)
- `_embedded.customer._embedded.leadSource` (object)
- `_embedded.activationInvoice` (object)
- `_embedded.activationInvoice.id` (string)
  ID of the invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.invoiceNumber` (integer)
  Auto-incrementing number based on the sequence of invoices for any particular customer.
- `_embedded.activationInvoice.orderId` (string | null)
  ID of the order (experimental).
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.activationInvoice.subscriptionId` (string)
  ID of the related subscription order, if available. This field is `null` if there are no related subscription orders.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.quoteId` (string | null)
  ID of the related quote, if available. This field is `null` if there are no related quotes.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `_embedded.activationInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.activationInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.activationInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.activationInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.activationInvoice.tax` (object)
  Taxes.
- `_embedded.activationInvoice.organizationTaxIdNumber` (object | null)
  Organization tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.organizationTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.organizationTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.customerTaxIdNumber` (object | null)
  Customer tax ID number that is displayed on the invoice.
- `_embedded.activationInvoice.customerTaxIdNumber.type` (string, required)
  Type of the tax ID number.
  Enum: "eu-vat", "other"
- `_embedded.activationInvoice.customerTaxIdNumber.value` (string, required)
  Value of the tax ID number.
  Example: GB980780684
- `_embedded.activationInvoice.billingAddress` (object)
  Contact's information.
- `_embedded.activationInvoice.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.activationInvoice.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.activationInvoice.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.activationInvoice.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.activationInvoice.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.activationInvoice.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.activationInvoice.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.activationInvoice.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.activationInvoice.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.activationInvoice.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.activationInvoice.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.activationInvoice.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.activationInvoice.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.activationInvoice.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.activationInvoice.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.activationInvoice.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.activationInvoice.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.activationInvoice.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.activationInvoice.billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `_embedded.activationInvoice.poNumber` (string | null)
  Purchase order number that is displayed on the invoice.
  Example: PO123456
- `_embedded.activationInvoice.notes` (string)
  Notes for the customer that are displayed on the invoice.
- `_embedded.activationInvoice.items` (array)
  Invoice items array.
- `_embedded.activationInvoice.items.id` (string)
  ID of the invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.activationInvoice.items.type` (string, required)
  Type of invoice item.
  Enum: "debit", "credit"
- `_embedded.activationInvoice.items.description` (string)
  Description of the invoice item.
- `_embedded.activationInvoice.items.unitPrice` (number, required)
  Unit price of the invoice item.
- `_embedded.activationInvoice.items.quantity` (integer)
  Quantity of the invoice item.
- `_embedded.activationInvoice.items.price` (number)
  Total price of the invoice item.
- `_embedded.activationInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.activationInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.activationInvoice.items.subscriptionId` (string | null)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `_embedded.activationInvoice.items.periodStartTime` (string | null)
  Date and time when the billing period starts.
- `_embedded.activationInvoice.items.periodEndTime` (string | null)
  Date and time when the billing period ends.
- `_embedded.activationInvoice.items.periodNumber` (integer | null)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.activationInvoice.items.tax` (any)
  Invoice item tax.
- `_embedded.activationInvoice.items._links` (array)
  Related links.
- `_embedded.activationInvoice.items._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.items._links.rel` (string)
  Type of link.
  Enum: "self", "product", "subscription", "plan"
- `_embedded.activationInvoice.items._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.items._embedded.product` (object)
- `_embedded.activationInvoice.items._embedded.plan` (object)
- `_embedded.activationInvoice.discounts` (array)
  Discounts applied.
- `_embedded.activationInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.activationInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.activationInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.activationInvoice.discounts.context` (string)
  Context in which the discount applies.
  Enum: "items", "shipping", "items-and-shipping"
- `_embedded.activationInvoice.autopayScheduledTime` (string | null)
  Date and time when an automatic payment (autopay) is scheduled.
- `_embedded.activationInvoice.autopayRetryNumber` (integer)
  Number of times that an automatic payment (autopay) has been attempted on an invoice.
- `_embedded.activationInvoice.status` (string)
  Status of the invoice.
  Enum: "draft", "quotation", "unpaid", "paid", "partially-paid", "past-due", "abandoned", "voided", "partially-refunded", "refunded", "disputed"
- `_embedded.activationInvoice.delinquentCollectionPeriod` (integer)
  Length of time, in days, between when the invoice is due and when the invoice is paid.
- `_embedded.activationInvoice.collectionPeriod` (integer)
  Length of time, in days, between when the invoice is issued and when the invoice is paid.
- `_embedded.activationInvoice.abandonedTime` (string | null)
  Date and time when the invoice is abandoned.
- `_embedded.activationInvoice.voidedTime` (string | null)
  Date and time when the invoice is voided.
- `_embedded.activationInvoice.paidTime` (string | null)
  Date and time when the invoice is paid.
- `_embedded.activationInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.activationInvoice.issuedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_embedded.activationInvoice.paymentFormUrl` (string | null)
  URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`.
- `_embedded.activationInvoice.creditMemoAllocations` (array)
  Credit memo allocations to an invoice.
- `_embedded.activationInvoice.creditMemoAllocations.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.activationInvoice.creditMemoAllocations.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.
- `_embedded.activationInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.activationInvoice.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions` (array)
  Up to 10 of the most recent transactions for the invoice. To retrieve transactions for an invoice, use [Retrieve transactions](https://www.rebilly.com/catalog/all/transactions/gettransactioncollection) with the `invoiceIds` filter. Search results can lag briefly behind a write.
- `_embedded.activationInvoice.transactions.id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.activationInvoice.transactions.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.activationInvoice.transactions.type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `_embedded.activationInvoice.transactions.status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `_embedded.activationInvoice.transactions.result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `_embedded.activationInvoice.transactions.amount` (number)
  Total amount of the transaction.
- `_embedded.activationInvoice.transactions.purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `_embedded.activationInvoice.transactions.requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `_embedded.activationInvoice.transactions.childTransactions` (array)
  IDs of child transactions.
- `_embedded.activationInvoice.transactions.invoiceIds` (array)
  Related invoice IDs.
- `_embedded.activationInvoice.transactions.subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `_embedded.activationInvoice.transactions.planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `_embedded.activationInvoice.transactions.isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `_embedded.activationInvoice.transactions.has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `_embedded.activationInvoice.transactions.3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `_embedded.activationInvoice.transactions.3ds.server` (string)
  Name of the 3D Secure server.
- `_embedded.activationInvoice.transactions.3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `_embedded.activationInvoice.transactions.3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `_embedded.activationInvoice.transactions.3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `_embedded.activationInvoice.transactions.3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `_embedded.activationInvoice.transactions.3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `_embedded.activationInvoice.transactions.3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `_embedded.activationInvoice.transactions.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.activationInvoice.transactions.retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `_embedded.activationInvoice.transactions.isRetry` (boolean)
  Specifies if a transaction is a retry.
- `_embedded.activationInvoice.transactions.billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `_embedded.activationInvoice.transactions.description` (string)
  Description of the payment.
- `_embedded.activationInvoice.transactions.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.activationInvoice.transactions.hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `_embedded.activationInvoice.transactions.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `_embedded.activationInvoice.transactions.gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.gateway` (object)
  Related gateway information.
- `_embedded.activationInvoice.transactions.gateway.response` (object)
  Gateway response.
- `_embedded.activationInvoice.transactions.gateway.response.code` (string | null)
  Gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.message` (string | null)
  Gateway response message.
- `_embedded.activationInvoice.transactions.gateway.response.type` (string | null)
  Gateway response type.
- `_embedded.activationInvoice.transactions.gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `_embedded.activationInvoice.transactions.gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.code` (string | null)
  Response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.message` (string | null)
  Response message.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `_embedded.activationInvoice.transactions.gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `_embedded.activationInvoice.transactions.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.activationInvoice.transactions.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.activationInvoice.transactions.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.activationInvoice.transactions.revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `_embedded.activationInvoice.transactions.bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `_embedded.activationInvoice.transactions.paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `_embedded.activationInvoice.transactions.paymentInstrument` (object)
- `_embedded.activationInvoice.transactions.hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `_embedded.activationInvoice.transactions.dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `_embedded.activationInvoice.transactions.dcc.base` (object)
- `_embedded.activationInvoice.transactions.dcc.base.amount` (number, required)
  Example: 10
- `_embedded.activationInvoice.transactions.dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `_embedded.activationInvoice.transactions.dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `_embedded.activationInvoice.transactions.riskScore` (integer)
  Risk score for the transaction.
- `_embedded.activationInvoice.transactions.riskMetadata` (any)
- `_embedded.activationInvoice.transactions.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.activationInvoice.transactions.isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `_embedded.activationInvoice.transactions.disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `_embedded.activationInvoice.transactions.disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `_embedded.activationInvoice.transactions.isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `_embedded.activationInvoice.transactions.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.activationInvoice.transactions.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.activationInvoice.transactions.hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `_embedded.activationInvoice.transactions.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.activationInvoice.transactions.arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `_embedded.activationInvoice.transactions.reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `_embedded.activationInvoice.transactions.settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `_embedded.activationInvoice.transactions.discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `_embedded.activationInvoice.transactions.limits` (object | null)
  Transaction amount limit information.
- `_embedded.activationInvoice.transactions.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.activationInvoice.transactions.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.activationInvoice.transactions.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.transactions.depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `_embedded.activationInvoice.transactions.transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded.activationInvoice.transactions.payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_embedded.activationInvoice.transactions._links` (array)
  Related links.
- `_embedded.activationInvoice.transactions._links.href` (string)
  Link URL.
- `_embedded.activationInvoice.transactions._links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded.activationInvoice.transactions._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice.transactions._embedded.parentTransaction` (object)
- `_embedded.activationInvoice.transactions._embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.activationInvoice.transactions._embedded.gatewayAccount` (object)
- `_embedded.activationInvoice.transactions._embedded.customer` (object)
- `_embedded.activationInvoice.transactions._embedded.leadSource` (object)
- `_embedded.activationInvoice.transactions._embedded.website` (object)
- `_embedded.activationInvoice.transactions._embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.activationInvoice.transactions._embedded.organization` (object)
- `_embedded.activationInvoice.transactions._embedded.dispute` (object)
- `_embedded.activationInvoice.transactions._embedded.paymentCard` (object)
- `_embedded.activationInvoice.transactions._embedded.bankAccount` (object)
- `_embedded.activationInvoice.retryInstruction` (object | null)
  Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails.
- `_embedded.activationInvoice.retryInstruction.attempts` (array, required)
  Describes the retry instruction.
- `_embedded.activationInvoice.retryInstruction.attempts.scheduleInstruction` (object, required)
  Specifies when the payment retry instruction is performed.
- `_embedded.activationInvoice.retryInstruction.attempts.amountAdjustmentInstruction` (object)
  Specifies if the payment amount must be adjusted for the retry.
- `_embedded.activationInvoice.retryInstruction.attempts.tryBackupInstruments` (boolean)
  Specifies whether to use backup payment instruments on an invoice payment retry.
- `_embedded.activationInvoice.retryInstruction.afterAttemptPolicies` (array, required)
  Describes the action to take when a payment attempt concludes, and payment is not collected.
- `_embedded.activationInvoice.retryInstruction.afterRetryEndPolicies` (array, required)
  Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected.
- `_embedded.activationInvoice.revision` (integer)
  Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.activationInvoice.type` (string)
  Type of invoice.
  Enum: "initial", "renewal", "interim", "cancellation", "one-time", "refund", "charge", "one-time-sale"
- `_embedded.activationInvoice.dueReminderTime` (string | null)
  Date and time when a past due reminder event is triggered.
- `_embedded.activationInvoice.dueReminderNumber` (integer | null)
  Number of past due reminder events that have been triggered.
- `_embedded.activationInvoice.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.activationInvoice.delinquencyTime` (string | null)
  Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`.
- `_embedded.activationInvoice._links` (array)
  Related links.
- `_embedded.activationInvoice._links.href` (string)
  Link URL.
- `_embedded.activationInvoice._links.rel` (string)
  Type of link.
  Enum: "self", "website", "customer", "organization", "attachments", "leadSource", "transactionAllocations", "recalculateInvoice", "subscription"
- `_embedded.activationInvoice._embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.activationInvoice._embedded.customer` (object)
- `_embedded.activationInvoice._embedded.website` (object)
- `_embedded.activationInvoice._embedded.organization` (object)
- `_embedded.activationInvoice._embedded.leadSource` (object)
- `_embedded.activationInvoice._embedded.shippingRate` (object)
- `_embedded.upcomingInvoice` (object)
- `_embedded.upcomingInvoice.id` (string)
  ID of the upcoming invoice. This value is persisted in the future renewal invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `_embedded.upcomingInvoice.revision` (integer)
  Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation.
- `_embedded.upcomingInvoice.items` (array)
  Upcoming invoice items array.
- `_embedded.upcomingInvoice.items.id` (string)
  ID of the upcoming invoice item.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `_embedded.upcomingInvoice.items.isInterim` (boolean)
  Specifies if the line item is added to an interim invoice.
- `_embedded.upcomingInvoice.items.description` (string)
  Description of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.unitPrice` (number)
  Unit price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.quantity` (integer)
  Quantity of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.price` (number)
  Total price of the upcoming invoice item.
- `_embedded.upcomingInvoice.items.productId` (string | null)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `_embedded.upcomingInvoice.items.planId` (string | null)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.upcomingInvoice.items.orderId` (string)
  ID of the order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `_embedded.upcomingInvoice.items.periodStartTime` (string)
  Date and time when the billing period starts.
- `_embedded.upcomingInvoice.items.periodEndTime` (string)
  Date and time when the billing period ends.
- `_embedded.upcomingInvoice.items.periodNumber` (integer)
  Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3.
- `_embedded.upcomingInvoice.items.tax` (object)
- `_embedded.upcomingInvoice.items.tax.amount` (number, required)
  Amount of the tax.
- `_embedded.upcomingInvoice.items.tax.description` (string, required)
  Description of the tax.
- `_embedded.upcomingInvoice.items.tax.rate` (number | null)
  Overall sales tax rate which includes state, county, city and district tax.
- `_embedded.upcomingInvoice.items.tax.stateAmount` (number | null)
  Amount of sales tax to collect for the state.
  Example: 0.94
- `_embedded.upcomingInvoice.items.tax.countyAmount` (number | null)
  Amount of sales tax to collect for the county.
  Example: 0.04
- `_embedded.upcomingInvoice.items.tax.cityAmount` (number | null)
  Amount of sales tax to collect for the city.
  Example: 0
- `_embedded.upcomingInvoice.items.tax.specialDistrictAmount` (number | null)
  Amount of sales tax to collect for the special district.
  Example: 0.38
- `_embedded.upcomingInvoice.items.tax.stateRate` (number | null)
  State sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.countyRate` (number | null)
  County sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.cityRate` (number | null)
  City sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.specialDistrictRate` (number | null)
  Special district sales tax rate for given location.
- `_embedded.upcomingInvoice.items.tax.jurisdictions` (object | null)
  Jurisdiction names for the invoice.
- `_embedded.upcomingInvoice.items.tax.jurisdictions.country` (string | null)
  Two-letter ISO country code for the provided location.
  Example: US
- `_embedded.upcomingInvoice.items.tax.jurisdictions.state` (string | null)
  Postal abbreviated state name for the provided location.
  Example: CA
- `_embedded.upcomingInvoice.items.tax.jurisdictions.county` (string | null)
  County name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.items.tax.jurisdictions.city` (string | null)
  City name for the provided location.
  Example: LOS ANGELES
- `_embedded.upcomingInvoice.amount` (number)
  Amount of the invoice.
- `_embedded.upcomingInvoice.amountDue` (number)
  Amount that is due on the invoice.
- `_embedded.upcomingInvoice.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `_embedded.upcomingInvoice.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `_embedded.upcomingInvoice.discounts` (array)
  Discounts applied.
- `_embedded.upcomingInvoice.discounts.couponId` (string)
  ID of the coupon.
  Example: cpn_0YVCNKF81GD778N4YNVGDJK558
- `_embedded.upcomingInvoice.discounts.amount` (number)
  Total amount discounted by this coupon.
- `_embedded.upcomingInvoice.discounts.description` (string)
  Description of the discount.
- `_embedded.upcomingInvoice.isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `_embedded.upcomingInvoice.dueTime` (string)
  Date and time when the invoice is due for payment.
- `_embedded.paymentInstrument` (any)
- `_embedded.website` (object)
- `_embedded.website.id` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.website.name` (string, required)
  Name of the website.
- `_embedded.website.url` (string, required)
  Domain address of the website.
- `_embedded.website.servicePhone` (string, required)
  Customer service phone number of the website.
- `_embedded.website.serviceEmail` (string, required)
  Customer service email address of the website.
- `_embedded.website.settings` (object)
  Website settings.
- `_embedded.website.settings.paymentForm` (object)
  Payment form settings.
- `_embedded.website.settings.paymentForm.css` (string | null)
  Hosted payment form [CSS options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#2-use-css-property-to-override-any-styles).
- `_embedded.website.settings.paymentForm.features` (object | null)
  Hosted payment form features.
- `_embedded.website.settings.paymentForm.features.showCoupons` (array | null)
- `_embedded.website.settings.paymentForm.features.fullPageRedirect` (boolean | null)
  Specifies whether the hosted payment form uses a full page redirect, or the default iframe modal, for approval URL redirects.
- `_embedded.website.settings.paymentForm.features.skipRedirectOnPaymentComplete` (boolean | null)
  Specifies whether the hosted payment form skips the redirect to the website URL when the payment is completed.
- `_embedded.website.settings.paymentForm.features.hideZeroAmountSummaryItems` (boolean | null)
  Specifies if the hosted payment form displays 0 amount line items in the summary.
- `_embedded.website.settings.amplitude` (object)
  Amplitude settings. Amplitude is an analytics tool for tracking user behavior.
- `_embedded.website.settings.amplitude.tracking` (boolean)
  Specifies if the hosted pages, such as KYC pages, include Amplitude analytics.
- `_embedded.website.settings.amplitude.apiKey` (string | null)
  API key of an Amplitude project.
  Example: 35d1795750c585984f7e6b01c0ca6e19
- `_embedded.website.settings.payoutRequest` (object)
  Payout request settings for the website.
- `_embedded.website.settings.payoutRequest.automaticReadinessEnabled` (boolean)
  Specifies whether pending payout requests are automatically marked as `ready`. When this value is `false`, payout requests are created in the `ready` status and automatic transition is not used. When this value is `true`, payout requests remain in the `pending` status until the pending period elapses and the configured transition time is reached.
- `_embedded.website.settings.payoutRequest.pendingPeriodHours` (integer)
  Minimum number of hours a payout request stays in the `pending` status before it can be automatically set to `ready`. Required when `automaticReadinessEnabled` is `true`.
  Example: 48
- `_embedded.website.settings.payoutRequest.automaticReadinessTime` (string)
  Time of day when the automatic readiness job processes eligible pending payout requests. Required when `automaticReadinessEnabled` is `true`. Use extended ISO-8601 time format (`HH:MM:SS`) with an optional timezone offset. When the timezone offset is omitted, the server timezone is used.
  Example: 10:00:00Z
- `_embedded.website.settings.payoutRequest.automaticReadinessLastExecutedAt` (string | null)
  Date and time when the automatic readiness job last completed successfully for this website.
- `_embedded.website.logoId` (string | null)
  ID of the linked file object.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.website.logoUrl` (string | null)
  URL of the website logo.
- `_embedded.website.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.website._links` (array)
  Related links.
- `_embedded.website._links.href` (string)
  Link URL.
- `_embedded.website._links.rel` (string)
  Type of link.
  Enum: "self", "logoUrl"
- `billingAddress` (any)
  Billing address of the order.
- `deliveryAddress` (any)
  Delivery address of the order.

## 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 404 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 409 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 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.

# Upsert an order change

Creates an order change with a specified ID, or replaces the items of a pending order change.
A change that is not pending cannot be updated.

Endpoint: PUT /order-changes/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `items.plan` (any, required)
  Plan details.
- `items.quantity` (integer)
  Number of units of the product on the given plan.
- `items.usageLimits` (any)
- `items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.

## Response 200 fields

- `id` (string)
  ID of the order change.
  Example: ord_chg_0YV7DES3WPC5J8JD8QTVNZBZQ8
- `orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the order change.
  Enum: "pending", "applied", "canceled", "superseded"
- `applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `lockedTime` (string | null)
  Date and time when the items of a pending change are billed. After this time, the change is locked and cannot be modified until the renewal.
- `appliedTime` (string | null)
  Date and time when the items of the order are replaced.
- `quoteId` (string | null)
  ID of the quote that is used to create the change. This value is `null` if the change is not created from a quote.
- `items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `items.plan` (any, required)
  Plan details.
- `items.quantity` (integer)
  Number of units of the product on the given plan.
- `items.usageLimits` (any)
- `items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## Response 201 fields

- `id` (string)
  ID of the order change.
  Example: ord_chg_0YV7DES3WPC5J8JD8QTVNZBZQ8
- `orderId` (string, required)
  ID of the order.
  Example: ord_01HRF27SATGE4Z6PBJE6PD8328
- `status` (string)
  Status of the order change.
  Enum: "pending", "applied", "canceled", "superseded"
- `applyAt` (string)
  Time when the new items are applied. - `now`: The items change immediately. `renewalPolicy`, `prorated`, and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `renewalPolicy`, `prorated`, and `effectiveTime` are not allowed. A later change for the same order supersedes the pending change. The pending change is locked once the next renewal invoice is issued. To remove a pending change, use the `DELETE /order-changes/{id}` operation. The new items must differ from the current items. One-time sale items that are already on the order remain. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `effectiveTime` (string)
  Date and time when the change is applied. If `applyAt` is set to `now`, this value is the date from which the renewal time for `resetToRecurring` and the proration are calculated. If this field is omitted, this value defaults to the current time. If `applyAt` is set to `nextRenewal`, this value is read-only and equals the renewal time of the order.
- `lockedTime` (string | null)
  Date and time when the items of a pending change are billed. After this time, the change is locked and cannot be modified until the renewal.
- `appliedTime` (string | null)
  Date and time when the items of the order are replaced.
- `quoteId` (string | null)
  ID of the quote that is used to create the change. This value is `null` if the change is not created from a quote.
- `items` (array, required)
  New items for the order. To remove an item, include the items array and exclude the items you want to remove.
- `items.plan` (any, required)
  Plan details.
- `items.quantity` (integer)
  Number of units of the product on the given plan.
- `items.usageLimits` (any)
- `items.excludeFromMrr` (boolean | null)
  Specifies if this item is excluded from monthly recurring revenue calculations.
- `renewalPolicy` (string)
  How the service periods and trial state of the order are managed when its items change now. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "retainTrialOnly"
- `prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. Required when `applyAt` is `now`. Not allowed when `applyAt` is `nextRenewal`. If `renewalTime` is retained by setting `renewalPolicy` to `retainRecurring`, `retainTrialThenRecurring`, or `retainTrialOnly`, a pro rata debit is also applied for the time between `effectiveTime` and `renewalTime`, as a percentage of the normal period size.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 409 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 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.

# Update an order pause

Updates an order pause with a specified ID.

Endpoint: PUT /order-pauses/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `orderId` (string, required)
  ID of the paused order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the order resumes billing. To resume an order from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the order is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month order on a 30-day month is paused on day 20. There are 10 unused days on the order. Therefore, the order renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If a subscription item in the order uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S

## Response 200 fields

- `id` (string)
  ID of the order pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `orderId` (string, required)
  ID of the paused order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `status` (string)
  Status of the order pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the order resumes billing. To resume an order from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the order is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month order on a 30-day month is paused on day 20. There are 10 unused days on the order. Therefore, the order renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If a subscription item in the order uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## Response 201 fields

- `id` (string)
  ID of the order pause.
  Example: sub_pau_01H085J3ZR1WKD120D73D7N4C9
- `orderId` (string, required)
  ID of the paused order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `status` (string)
  Status of the order pause.
  Enum: "pending", "ongoing", "revoked", "finished"
- `pausedBy` (string)
  Specifies who initiated the pause.
  Enum: "merchant", "customer"
- `description` (string | null)
  Description of the pause reason in free form.
- `effectiveTime` (string | null)
  Date and time when the service period pauses. This time must be later than the current time. If this time is earlier than the current time, the current time is used. If this field is omitted, this value defaults to the current time.
- `endTime` (string | null)
  Date and time when the pause ends and the order resumes billing. To resume an order from this point in time, use the current time or an earlier time. If `endTime` is earlier than the current time, the current time is used. If this field is empty, the order is indefinitely paused.
- `timeRemaining` (string | null)
  Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month order on a 30-day month is paused on day 20. There are 10 unused days on the order. Therefore, the order renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If a subscription item in the order uses a service period anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](https://www.rebilly.com/catalog/all/orders), and the service period anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
  Example: P3600S
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Subscription renewal reminder, 1 day before renewal

Sends a reminder when an active order that contains subscription items is 1 day from renewal.
The reminder is sent only when the recurring interval of the order is longer than 1 day.
The reminder is not sent for a paused order, or for the renewal at the end of a trial.
The reminder is sent once for that renewal, and remains available until the order renews.
For more information, see [Subscription renewal reminders](https://www.rebilly.com/docs/dev-docs/orders/#subscription-renewal-reminders).

Endpoint: POST subscription-renewal-reminder-1-day
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `renewalTime` (string)
  Date and time when the subscription renews.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewal-reminder-1-day"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription renewal reminder, 30 days before renewal

Sends a reminder when an active order that contains subscription items is 30 days from renewal.
The reminder is sent only when the recurring interval of the order is 90 days or more.
The reminder is not sent for a paused order, or for the renewal at the end of a trial.
The reminder is sent once for that renewal,
and remains available until 7 days before the order renews.
For more information, see [Subscription renewal reminders](https://www.rebilly.com/docs/dev-docs/orders/#subscription-renewal-reminders).

Endpoint: POST subscription-renewal-reminder-30-days
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `renewalTime` (string)
  Date and time when the subscription renews.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewal-reminder-1-day"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Subscription renewal reminder, 7 days before renewal

Sends a reminder when an active order that contains subscription items is 7 days from renewal.
The reminder is sent only when the recurring interval of the order is 14 days or more.
The reminder is not sent for a paused order, or for the renewal at the end of a trial.
The reminder is sent once for that renewal,
and remains available until 1 day before the order renews.
For more information, see [Subscription renewal reminders](https://www.rebilly.com/docs/dev-docs/orders/#subscription-renewal-reminders).

Endpoint: POST subscription-renewal-reminder-7-days
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string)
  ID of the order.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `renewalTime` (string)
  Date and time when the subscription renews.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewal-reminder-1-day"
- `_embedded` (object)
  Embedded objects related to the order event.
- `_embedded.subscription` (object)
  Subscription details.
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "subscription"

# Payment instruments

Use these operations to manage payment instruments.
Payment instrument is a term which describes any means of making a digital payment, such as:
credit cards, debit cards, direct debits, payment service providers, and digital wallets.

For more information on payment instruments, see [Payment instruments](https://www.rebilly.com/docs/dev-docs/concepts/#payment-instruments).

- [GET /payment-instruments](/docs/dev-docs/api/payment-instruments/getpaymentinstrumentcollection.md): Retrieves a list of payment instruments.
- [POST /payment-instruments](/docs/dev-docs/api/payment-instruments/postpaymentinstrument.md): Creates a payment instrument. If the payment card, bank account, or alternative payment instrument already exists it is updated.
- [GET /payment-instruments/{id}](/docs/dev-docs/api/payment-instruments/getpaymentinstrument.md): Retrieves a payment instrument with a specified ID.
- [PATCH /payment-instruments/{id}](/docs/dev-docs/api/payment-instruments/patchpaymentinstrument.md): Updates the values of a payment instrument with a specified ID.
- [POST /payment-instruments/{id}/deactivation](/docs/dev-docs/api/payment-instruments/postpaymentinstrumentdeactivation.md): Deactivates a payment instrument with a specified ID.
- [POST /payment-instruments/{id}/name-inquiry](/docs/dev-docs/api/payment-instruments/postpaymentinstrumentnameinquiry.md): Performs a name check inquiry on a payment instrument. Use this operation to confirm the name that is associated with a payment instrument. This operation supports payment cards only, using VISA ANI r
- [POST payment-card-created](/docs/dev-docs/api/payment-instruments/payment-card-created.md)
- [POST payment-card-expiration-reminder-14-days](/docs/dev-docs/api/payment-instruments/payment-card-expiration-reminder-14-days.md): Sends a reminder when the active default payment card of a customer is 14 days from expiring. The reminder is sent only when the customer has an order that contains subscription items, and that order 
- [POST payment-card-expiration-reminder-7-days](/docs/dev-docs/api/payment-instruments/payment-card-expiration-reminder-7-days.md): Sends a reminder when the active default payment card of a customer is 7 days from expiring. The reminder is sent only when the customer has an order that contains subscription items, and that order h
- [POST payment-card-expiration-reminder-1-day](/docs/dev-docs/api/payment-instruments/payment-card-expiration-reminder-1-day.md): Sends a reminder when the active default payment card of a customer is 1 day from expiring. The reminder is sent only when the customer has an order that contains subscription items, and that order ha
- [POST payment-card-expired](/docs/dev-docs/api/payment-instruments/payment-card-expired.md)
- [POST payment-instrument-modified](/docs/dev-docs/api/payment-instruments/payment-instrument-modified.md)
- [POST payment-card-expiration-reminder](/docs/dev-docs/api/payment-instruments/payment-card-expiration-reminder.md)

# Retrieve a payment instrument

Retrieves a payment instrument with a specified ID.

Endpoint: GET /payment-instruments/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `fingerprint` (string)
  Unique value that is used to identify the payment instrument. This value is generated from the `bin` and the `last4` values. This value contains alphanumeric characters.
- `bin` (string)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN).
- `last4` (string)
  Last 4 digits of the associated Primary Account Number (PAN).
- `fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. This value is only present for payment cards created from digital wallet tokens, where the FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in the digital wallet transaction.
- `expYear` (integer)
  Expiration year of the payment card.
- `expMonth` (integer)
  Expiration month of the payment card.
- `brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `bankCountry` (string | null)
  Bank country of the payment instrument.
- `bankName` (string)
  Bank name of the payment instrument.
- `isPayoutable` (boolean)
  Specifies if payouts are supported for cards with this BIN. Defaults to `true`. This value is `false` if the BIN does not support payouts.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `billingPortalUrl` (string)
  URL of the billing portal where the card can be updated.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lastPaymentTime` (string | null)
  Date and time of the last approved payment. Payments are the result of `sale` or `capture` transactions.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `expirationReminderTime` (string | null)
  Date and time when an expiration reminder event is triggered.
- `expirationReminderNumber` (integer | null)
  Number of expiration reminder events that have triggered.
- `digitalWallet` (string | null)
  Digital wallet type.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay", null
- `riskMetadata` (any)
- `revision` (integer)
  Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `bankName` (string)
  Name of the bank.
- `routingNumber` (string)
  Bank routing number.
- `accountNumberType` (string)
  Type of bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "BBAN", "IBAN"
- `accountType` (string)
  Type of bank account.
  Enum: "checking", "savings", "other"
- `bic` (string | null)
  Bank Identifier Code (BIC).
- `fingerprint` (string)
  Unique value which identifies the bank account. This value contains alphanumeric characters. Depending on the type of bank account number, a bank account fingerprint is generated using one of the following: - BBAN: `last4` and `routingNumber` values. - IBAN: First 8 characters of the IBAN and the `last4` value.
- `last4` (string)
  Last 4 digits of the bank account number.
- `status` (string)
  Status of the bank account.
  Enum: "active", "deactivated"
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `username` (string)
  PayPal username.
- `status` (string)
  PayPal account status.
  Enum: "inactive", "active", "deactivated"
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `status` (string)
  Payment instrument status.
  Enum: "active", "deactivated"

## 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 404 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.

# Retrieve payment instruments

Retrieves a list of payment instruments.

Endpoint: GET /payment-instruments
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `fingerprint` (string)
  Unique value that is used to identify the payment instrument. This value is generated from the `bin` and the `last4` values. This value contains alphanumeric characters.
- `bin` (string)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN).
- `last4` (string)
  Last 4 digits of the associated Primary Account Number (PAN).
- `fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. This value is only present for payment cards created from digital wallet tokens, where the FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in the digital wallet transaction.
- `expYear` (integer)
  Expiration year of the payment card.
- `expMonth` (integer)
  Expiration month of the payment card.
- `brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `bankCountry` (string | null)
  Bank country of the payment instrument.
- `bankName` (string)
  Bank name of the payment instrument.
- `isPayoutable` (boolean)
  Specifies if payouts are supported for cards with this BIN. Defaults to `true`. This value is `false` if the BIN does not support payouts.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `billingPortalUrl` (string)
  URL of the billing portal where the card can be updated.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lastPaymentTime` (string | null)
  Date and time of the last approved payment. Payments are the result of `sale` or `capture` transactions.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `expirationReminderTime` (string | null)
  Date and time when an expiration reminder event is triggered.
- `expirationReminderNumber` (integer | null)
  Number of expiration reminder events that have triggered.
- `digitalWallet` (string | null)
  Digital wallet type.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay", null
- `riskMetadata` (any)
- `revision` (integer)
  Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `bankName` (string)
  Name of the bank.
- `routingNumber` (string)
  Bank routing number.
- `accountNumberType` (string)
  Type of bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "BBAN", "IBAN"
- `accountType` (string)
  Type of bank account.
  Enum: "checking", "savings", "other"
- `bic` (string | null)
  Bank Identifier Code (BIC).
- `fingerprint` (string)
  Unique value which identifies the bank account. This value contains alphanumeric characters. Depending on the type of bank account number, a bank account fingerprint is generated using one of the following: - BBAN: `last4` and `routingNumber` values. - IBAN: First 8 characters of the IBAN and the `last4` value.
- `last4` (string)
  Last 4 digits of the bank account number.
- `status` (string)
  Status of the bank account.
  Enum: "active", "deactivated"
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `username` (string)
  PayPal username.
- `status` (string)
  PayPal account status.
  Enum: "inactive", "active", "deactivated"
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `status` (string)
  Payment instrument status.
  Enum: "active", "deactivated"

## 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.

# Update payment instrument

Updates the values of a payment instrument with a specified ID.

Endpoint: PATCH /payment-instruments/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `token` (string)
  ID of the payment token.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. To remove the sticky gateway account from a payment instrument, set this value to `null`. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `cvv` (string)
  Card Verification Value (CVV) of the payment card.
- `expMonth` (integer)
  Expiration month of the payment card.
- `expYear` (integer)
  Expiration year of the payment card.
- `stickyGatewayAccountId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `bankName` (string)
  Name of the bank.
- `accountType` (string)
  Bank account type.
  Enum: "checking", "savings", "other"

## Response 200 fields

- `id` (string)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `fingerprint` (string)
  Unique value that is used to identify the payment instrument. This value is generated from the `bin` and the `last4` values. This value contains alphanumeric characters.
- `bin` (string)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN).
- `last4` (string)
  Last 4 digits of the associated Primary Account Number (PAN).
- `fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. This value is only present for payment cards created from digital wallet tokens, where the FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in the digital wallet transaction.
- `expYear` (integer)
  Expiration year of the payment card.
- `expMonth` (integer)
  Expiration month of the payment card.
- `brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `bankCountry` (string | null)
  Bank country of the payment instrument.
- `bankName` (string)
  Bank name of the payment instrument.
- `isPayoutable` (boolean)
  Specifies if payouts are supported for cards with this BIN. Defaults to `true`. This value is `false` if the BIN does not support payouts.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `billingPortalUrl` (string)
  URL of the billing portal where the card can be updated.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lastPaymentTime` (string | null)
  Date and time of the last approved payment. Payments are the result of `sale` or `capture` transactions.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `expirationReminderTime` (string | null)
  Date and time when an expiration reminder event is triggered.
- `expirationReminderNumber` (integer | null)
  Number of expiration reminder events that have triggered.
- `digitalWallet` (string | null)
  Digital wallet type.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay", null
- `riskMetadata` (any)
- `revision` (integer)
  Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `bankName` (string)
  Name of the bank.
- `routingNumber` (string)
  Bank routing number.
- `accountNumberType` (string)
  Type of bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "BBAN", "IBAN"
- `accountType` (string)
  Type of bank account.
  Enum: "checking", "savings", "other"
- `bic` (string | null)
  Bank Identifier Code (BIC).
- `fingerprint` (string)
  Unique value which identifies the bank account. This value contains alphanumeric characters. Depending on the type of bank account number, a bank account fingerprint is generated using one of the following: - BBAN: `last4` and `routingNumber` values. - IBAN: First 8 characters of the IBAN and the `last4` value.
- `last4` (string)
  Last 4 digits of the bank account number.
- `status` (string)
  Status of the bank account.
  Enum: "active", "deactivated"
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `username` (string)
  PayPal username.
- `status` (string)
  PayPal account status.
  Enum: "inactive", "active", "deactivated"
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `status` (string)
  Payment instrument status.
  Enum: "active", "deactivated"

## 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 404 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 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.

# Payment card created

Endpoint: POST payment-card-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `paymentCardId` (string)
  ID of the payment instrument.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payment-card-created", "payment-card-expiration-reminder", "payment-card-expired"
- `_embedded` (object)
  Embedded objects related to the payment card event.
- `_embedded.paymentCard` (object)
  Payment card information.
- `_embedded.paymentCard.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.paymentCard.status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `_embedded.paymentCard.pan` (string)
  Primary Account Number (PAN) of the payment card.
- `_embedded.paymentCard.expYear` (integer)
  Expiration year of the payment card.
- `_embedded.paymentCard.expMonth` (integer)
  Expiration month of the payment card.
- `_embedded.paymentCard.cvv` (string)
  Card Verification Value (CVV) of the payment card.
- `_embedded.paymentCard.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `_embedded.paymentCard.billingAddress` (object)
  Contact's information.
- `_embedded.paymentCard.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.paymentCard.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.paymentCard.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.paymentCard.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.paymentCard.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.paymentCard.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.paymentCard.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.paymentCard.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.paymentCard.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.paymentCard.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.paymentCard.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.paymentCard.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.paymentCard.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.paymentCard.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.paymentCard.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.paymentCard.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.paymentCard.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.paymentCard.useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `_embedded.paymentCard.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.paymentCard.riskMetadata` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "paymentCard"

# Payment card expiration reminder (deprecated)

Endpoint: POST payment-card-expiration-reminder
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `paymentCardId` (string)
  ID of the payment instrument.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payment-card-created", "payment-card-expiration-reminder", "payment-card-expired"
- `_embedded` (object)
  Embedded objects related to the payment card event.
- `_embedded.paymentCard` (object)
  Payment card information.
- `_embedded.paymentCard.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.paymentCard.status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `_embedded.paymentCard.pan` (string)
  Primary Account Number (PAN) of the payment card.
- `_embedded.paymentCard.expYear` (integer)
  Expiration year of the payment card.
- `_embedded.paymentCard.expMonth` (integer)
  Expiration month of the payment card.
- `_embedded.paymentCard.cvv` (string)
  Card Verification Value (CVV) of the payment card.
- `_embedded.paymentCard.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `_embedded.paymentCard.billingAddress` (object)
  Contact's information.
- `_embedded.paymentCard.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.paymentCard.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.paymentCard.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.paymentCard.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.paymentCard.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.paymentCard.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.paymentCard.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.paymentCard.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.paymentCard.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.paymentCard.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.paymentCard.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.paymentCard.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.paymentCard.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.paymentCard.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.paymentCard.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.paymentCard.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.paymentCard.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.paymentCard.useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `_embedded.paymentCard.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.paymentCard.riskMetadata` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "paymentCard"

# Payment card expiration reminder, 1 day before expiration

Sends a reminder when the active default payment card of a customer is 1 day from expiring.
The reminder is sent only when the customer has an order that contains subscription items,
and that order has started and is not churned.
The reminder is sent once for that expiration, and remains available until the card expires.
For more information, see [Payment card expiration reminders](https://www.rebilly.com/docs/dev-docs/payment-instruments/#payment-card-expiration-reminders).

Endpoint: POST payment-card-expiration-reminder-1-day
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `paymentCardId` (string)
  ID of the payment card.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expiration-reminder-1-day"
- `_embedded` (object)
  Embedded objects related to the payment card event.
- `_embedded.paymentCard` (object)
  Payment card information.
- `_embedded.paymentCard.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.paymentCard.status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `_embedded.paymentCard.pan` (string)
  Primary Account Number (PAN) of the payment card.
- `_embedded.paymentCard.expYear` (integer)
  Expiration year of the payment card.
- `_embedded.paymentCard.expMonth` (integer)
  Expiration month of the payment card.
- `_embedded.paymentCard.cvv` (string)
  Card Verification Value (CVV) of the payment card.
- `_embedded.paymentCard.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `_embedded.paymentCard.billingAddress` (object)
  Contact's information.
- `_embedded.paymentCard.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.paymentCard.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.paymentCard.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.paymentCard.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.paymentCard.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.paymentCard.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.paymentCard.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.paymentCard.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.paymentCard.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.paymentCard.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.paymentCard.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.paymentCard.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.paymentCard.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.paymentCard.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.paymentCard.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.paymentCard.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.paymentCard.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.paymentCard.useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `_embedded.paymentCard.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.paymentCard.riskMetadata` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "paymentCard"

# Payment card expiration reminder, 14 days before expiration

Sends a reminder when the active default payment card of a customer is 14 days from expiring.
The reminder is sent only when the customer has an order that contains subscription items,
and that order has started and is not churned.
The reminder is sent once for that expiration,
and remains available until 7 days before the card expires.
For more information, see [Payment card expiration reminders](https://www.rebilly.com/docs/dev-docs/payment-instruments/#payment-card-expiration-reminders).

Endpoint: POST payment-card-expiration-reminder-14-days
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `paymentCardId` (string)
  ID of the payment card.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expiration-reminder-1-day"
- `_embedded` (object)
  Embedded objects related to the payment card event.
- `_embedded.paymentCard` (object)
  Payment card information.
- `_embedded.paymentCard.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.paymentCard.status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `_embedded.paymentCard.pan` (string)
  Primary Account Number (PAN) of the payment card.
- `_embedded.paymentCard.expYear` (integer)
  Expiration year of the payment card.
- `_embedded.paymentCard.expMonth` (integer)
  Expiration month of the payment card.
- `_embedded.paymentCard.cvv` (string)
  Card Verification Value (CVV) of the payment card.
- `_embedded.paymentCard.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `_embedded.paymentCard.billingAddress` (object)
  Contact's information.
- `_embedded.paymentCard.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.paymentCard.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.paymentCard.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.paymentCard.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.paymentCard.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.paymentCard.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.paymentCard.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.paymentCard.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.paymentCard.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.paymentCard.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.paymentCard.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.paymentCard.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.paymentCard.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.paymentCard.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.paymentCard.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.paymentCard.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.paymentCard.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.paymentCard.useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `_embedded.paymentCard.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.paymentCard.riskMetadata` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "paymentCard"

# Payment card expiration reminder, 7 days before expiration

Sends a reminder when the active default payment card of a customer is 7 days from expiring.
The reminder is sent only when the customer has an order that contains subscription items,
and that order has started and is not churned.
The reminder is sent once for that expiration,
and remains available until 1 day before the card expires.
For more information, see [Payment card expiration reminders](https://www.rebilly.com/docs/dev-docs/payment-instruments/#payment-card-expiration-reminders).

Endpoint: POST payment-card-expiration-reminder-7-days
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `paymentCardId` (string)
  ID of the payment card.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expiration-reminder-1-day"
- `_embedded` (object)
  Embedded objects related to the payment card event.
- `_embedded.paymentCard` (object)
  Payment card information.
- `_embedded.paymentCard.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.paymentCard.status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `_embedded.paymentCard.pan` (string)
  Primary Account Number (PAN) of the payment card.
- `_embedded.paymentCard.expYear` (integer)
  Expiration year of the payment card.
- `_embedded.paymentCard.expMonth` (integer)
  Expiration month of the payment card.
- `_embedded.paymentCard.cvv` (string)
  Card Verification Value (CVV) of the payment card.
- `_embedded.paymentCard.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `_embedded.paymentCard.billingAddress` (object)
  Contact's information.
- `_embedded.paymentCard.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.paymentCard.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.paymentCard.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.paymentCard.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.paymentCard.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.paymentCard.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.paymentCard.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.paymentCard.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.paymentCard.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.paymentCard.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.paymentCard.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.paymentCard.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.paymentCard.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.paymentCard.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.paymentCard.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.paymentCard.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.paymentCard.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.paymentCard.useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `_embedded.paymentCard.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.paymentCard.riskMetadata` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "paymentCard"

# Payment card expired

Endpoint: POST payment-card-expired
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `paymentCardId` (string)
  ID of the payment instrument.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payment-card-created", "payment-card-expiration-reminder", "payment-card-expired"
- `_embedded` (object)
  Embedded objects related to the payment card event.
- `_embedded.paymentCard` (object)
  Payment card information.
- `_embedded.paymentCard.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.paymentCard.status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `_embedded.paymentCard.pan` (string)
  Primary Account Number (PAN) of the payment card.
- `_embedded.paymentCard.expYear` (integer)
  Expiration year of the payment card.
- `_embedded.paymentCard.expMonth` (integer)
  Expiration month of the payment card.
- `_embedded.paymentCard.cvv` (string)
  Card Verification Value (CVV) of the payment card.
- `_embedded.paymentCard.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `_embedded.paymentCard.billingAddress` (object)
  Contact's information.
- `_embedded.paymentCard.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.paymentCard.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.paymentCard.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.paymentCard.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.paymentCard.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.paymentCard.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.paymentCard.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.paymentCard.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.paymentCard.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.paymentCard.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.paymentCard.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.paymentCard.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.paymentCard.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.paymentCard.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.paymentCard.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.paymentCard.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.paymentCard.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.paymentCard.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.paymentCard.useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `_embedded.paymentCard.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.paymentCard.riskMetadata` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "paymentCard"

# Payment instrument modified

Endpoint: POST payment-instrument-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `paymentInstrumentId` (string)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payment-instrument-modified"
- `_embedded` (object)
  Embedded objects related to the payment instrument event.
- `_embedded.paymentInstrument` (any)

# Create a payment instrument

Creates a payment instrument.
If the payment card, bank account, or alternative payment instrument already exists it is updated.

Endpoint: POST /payment-instruments
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `token` (string, required)
  ID of the payment token.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `method` (string, required)
  Method of the payment instrument.
  Enum: "payment-card"
- `pan` (string, required)
  Primary Account Number (PAN) of the payment card.
- `expYear` (integer, required)
  Expiration year of the payment card.
- `expMonth` (integer, required)
  Expiration month of the payment card.
- `cvv` (string)
  Card Verification Value (CVV) of the payment card.
- `billingAddress` (object, required)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `riskMetadata` (object)
  Risk metadata used for 3D Secure and risk scoring.
- `riskMetadata.ipAddress` (string | null)
  Customer's IP address.
  Example: 93.92.91.90
- `riskMetadata.fingerprint` (string | null)
  Customer's device fingerprint. A device fingerprint is a unique token that is used to identify the customer. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more.
  Example: pIUt3xbgX3l9g3YDiLbx
- `riskMetadata.httpHeaders` (any)
- `riskMetadata.browserData` (object | null)
  Browser data used for 3D Secure and risk scoring.
- `riskMetadata.browserData.colorDepth` (integer, required)
  Browser color depth in bits per pixel. This value is obtained using the `screen.colorDepth` property.
  Example: 24
- `riskMetadata.browserData.isJavaEnabled` (boolean, required)
  Specifies if Java is enabled in a browser. This value is obtained from the `navigator.javaEnabled` property.
- `riskMetadata.browserData.language` (string, required)
  Browser language settings. This value is obtained from the `navigator.language` property.
  Example: en-US
- `riskMetadata.browserData.screenWidth` (integer, required)
  Width of the browser screen. This value is obtained from the `screen.width` property.
  Example: 1920
- `riskMetadata.browserData.screenHeight` (integer, required)
  Height of the browser screen. This value is obtained from the `screen.height` property.
  Example: 1080
- `riskMetadata.browserData.timeZoneOffset` (integer, required)
  Browser time zone offset in minutes from UTC. A positive offset indicates that the local time is behind UTC. A negative offset indicates that the local time is ahead of UTC. You can find this value using the `(new Date()).getTimezoneOffset()` property.
  Example: 300
- `riskMetadata.browserData.isAdBlockEnabled` (boolean | null)
  Specifies if the usage of ad block has been detected in the browser.
- `riskMetadata.extraData` (object | null)
  Third-party data used for risk scoring.
- `riskMetadata.extraData.kountFraudSessionId` (string | null)
  Alpha-numeric `fraudSessionId` as provided by the Kount SDK.
  Example: abcdefg12345abababab123456789012
- `riskMetadata.extraData.payPalMerchantSessionId` (string | null)
  PayPal `MerchantSessionID` as generated by the PayPal Fraudnet SDK.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowa
- `riskMetadata.extraData.threatMetrixSessionId` (string | null)
  Temporary identifier that is unique to the visitor session and passed to ThreatMetrix.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `accountNumberType` (string, required)
  Type of the customer's bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "IBAN"
- `accountNumber` (string, required)
  Customer's bank account number. Detailed information on all ISO 13616-compliant national IBAN formats is available in the [SWIFT IBAN Registry](https://www.swift.com/standards/data-standards/iban).
  Example: DE89370400440532013000
- `routingNumber` (string, required)
  Bank routing number.
  Example: 123456789
- `accountType` (string, required)
  Type of the bank account.
  Enum: "checking", "savings", "other"
- `bankName` (string)
  Name of the bank.
- `bic` (string)
  Bank Identifier Code (BIC).
  Example: DEUTDE8LXXX
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `riskMetadata` (any)

## Response 201 fields

- `id` (string)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `fingerprint` (string)
  Unique value that is used to identify the payment instrument. This value is generated from the `bin` and the `last4` values. This value contains alphanumeric characters.
- `bin` (string)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN).
- `last4` (string)
  Last 4 digits of the associated Primary Account Number (PAN).
- `fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. This value is only present for payment cards created from digital wallet tokens, where the FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in the digital wallet transaction.
- `expYear` (integer)
  Expiration year of the payment card.
- `expMonth` (integer)
  Expiration month of the payment card.
- `brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `bankCountry` (string | null)
  Bank country of the payment instrument.
- `bankName` (string)
  Bank name of the payment instrument.
- `isPayoutable` (boolean)
  Specifies if payouts are supported for cards with this BIN. Defaults to `true`. This value is `false` if the BIN does not support payouts.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `billingPortalUrl` (string)
  URL of the billing portal where the card can be updated.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lastPaymentTime` (string | null)
  Date and time of the last approved payment. Payments are the result of `sale` or `capture` transactions.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `expirationReminderTime` (string | null)
  Date and time when an expiration reminder event is triggered.
- `expirationReminderNumber` (integer | null)
  Number of expiration reminder events that have triggered.
- `digitalWallet` (string | null)
  Digital wallet type.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay", null
- `riskMetadata` (any)
- `revision` (integer)
  Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `bankName` (string)
  Name of the bank.
- `routingNumber` (string)
  Bank routing number.
- `accountNumberType` (string)
  Type of bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "BBAN", "IBAN"
- `accountType` (string)
  Type of bank account.
  Enum: "checking", "savings", "other"
- `bic` (string | null)
  Bank Identifier Code (BIC).
- `fingerprint` (string)
  Unique value which identifies the bank account. This value contains alphanumeric characters. Depending on the type of bank account number, a bank account fingerprint is generated using one of the following: - BBAN: `last4` and `routingNumber` values. - IBAN: First 8 characters of the IBAN and the `last4` value.
- `last4` (string)
  Last 4 digits of the bank account number.
- `status` (string)
  Status of the bank account.
  Enum: "active", "deactivated"
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `username` (string)
  PayPal username.
- `status` (string)
  PayPal account status.
  Enum: "inactive", "active", "deactivated"
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `status` (string)
  Payment instrument status.
  Enum: "active", "deactivated"

## Response 303 fields

- `id` (string)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `fingerprint` (string)
  Unique value that is used to identify the payment instrument. This value is generated from the `bin` and the `last4` values. This value contains alphanumeric characters.
- `bin` (string)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN).
- `last4` (string)
  Last 4 digits of the associated Primary Account Number (PAN).
- `fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. This value is only present for payment cards created from digital wallet tokens, where the FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in the digital wallet transaction.
- `expYear` (integer)
  Expiration year of the payment card.
- `expMonth` (integer)
  Expiration month of the payment card.
- `brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `bankCountry` (string | null)
  Bank country of the payment instrument.
- `bankName` (string)
  Bank name of the payment instrument.
- `isPayoutable` (boolean)
  Specifies if payouts are supported for cards with this BIN. Defaults to `true`. This value is `false` if the BIN does not support payouts.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `billingPortalUrl` (string)
  URL of the billing portal where the card can be updated.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lastPaymentTime` (string | null)
  Date and time of the last approved payment. Payments are the result of `sale` or `capture` transactions.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `expirationReminderTime` (string | null)
  Date and time when an expiration reminder event is triggered.
- `expirationReminderNumber` (integer | null)
  Number of expiration reminder events that have triggered.
- `digitalWallet` (string | null)
  Digital wallet type.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay", null
- `riskMetadata` (any)
- `revision` (integer)
  Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `bankName` (string)
  Name of the bank.
- `routingNumber` (string)
  Bank routing number.
- `accountNumberType` (string)
  Type of bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "BBAN", "IBAN"
- `accountType` (string)
  Type of bank account.
  Enum: "checking", "savings", "other"
- `bic` (string | null)
  Bank Identifier Code (BIC).
- `fingerprint` (string)
  Unique value which identifies the bank account. This value contains alphanumeric characters. Depending on the type of bank account number, a bank account fingerprint is generated using one of the following: - BBAN: `last4` and `routingNumber` values. - IBAN: First 8 characters of the IBAN and the `last4` value.
- `last4` (string)
  Last 4 digits of the bank account number.
- `status` (string)
  Status of the bank account.
  Enum: "active", "deactivated"
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `username` (string)
  PayPal username.
- `status` (string)
  PayPal account status.
  Enum: "inactive", "active", "deactivated"
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `status` (string)
  Payment instrument status.
  Enum: "active", "deactivated"

## 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.

# Deactivate a payment instrument

Deactivates a payment instrument with a specified ID.

Endpoint: POST /payment-instruments/{id}/deactivation
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `id` (string)
  ID of the payment instrument.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `method` (string, required)
  Method of payment instrument.
  Enum: "paypal"
- `status` (string)
  Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [`POST /payment-instruments/{id}/deactivation`](https://www.rebilly.com/catalog/all/payment-instruments/postpaymentinstrumentdeactivation).
  Enum: "active", "inactive", "expired", "deactivated", "verification-needed"
- `fingerprint` (string)
  Unique value that is used to identify the payment instrument. This value is generated from the `bin` and the `last4` values. This value contains alphanumeric characters.
- `bin` (string)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN).
- `last4` (string)
  Last 4 digits of the associated Primary Account Number (PAN).
- `fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. This value is only present for payment cards created from digital wallet tokens, where the FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in the digital wallet transaction.
- `expYear` (integer)
  Expiration year of the payment card.
- `expMonth` (integer)
  Expiration month of the payment card.
- `brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `bankCountry` (string | null)
  Bank country of the payment instrument.
- `bankName` (string)
  Bank name of the payment instrument.
- `isPayoutable` (boolean)
  Specifies if payouts are supported for cards with this BIN. Defaults to `true`. This value is `false` if the BIN does not support payouts.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `useAsBackup` (boolean)
  Specifies if this payment instrument can be used as a backup for invoice payment retries.
- `billingPortalUrl` (string)
  URL of the billing portal where the card can be updated.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `lastPaymentTime` (string | null)
  Date and time of the last approved payment. Payments are the result of `sale` or `capture` transactions.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `expirationReminderTime` (string | null)
  Date and time when an expiration reminder event is triggered.
- `expirationReminderNumber` (integer | null)
  Number of expiration reminder events that have triggered.
- `digitalWallet` (string | null)
  Digital wallet type.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay", null
- `riskMetadata` (any)
- `revision` (integer)
  Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `bankName` (string)
  Name of the bank.
- `routingNumber` (string)
  Bank routing number.
- `accountNumberType` (string)
  Type of bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN).
  Enum: "BBAN", "IBAN"
- `accountType` (string)
  Type of bank account.
  Enum: "checking", "savings", "other"
- `bic` (string | null)
  Bank Identifier Code (BIC).
- `fingerprint` (string)
  Unique value which identifies the bank account. This value contains alphanumeric characters. Depending on the type of bank account number, a bank account fingerprint is generated using one of the following: - BBAN: `last4` and `routingNumber` values. - IBAN: First 8 characters of the IBAN and the `last4` value.
- `last4` (string)
  Last 4 digits of the bank account number.
- `status` (string)
  Status of the bank account.
  Enum: "active", "deactivated"
- `stickyGatewayAccountId` (string | null)
  ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts).
- `username` (string)
  PayPal username.
- `status` (string)
  PayPal account status.
  Enum: "inactive", "active", "deactivated"
- `method` (string, required)
  Payment method of the payment instrument.
  Enum: "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Alfa-click", "Alipay", "AstroPay Card", "AstroPay-GO", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Boleto", "cash-deposit", "CASHlib", "CashToCode", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Cupon-de-pagos", "cryptocurrency", "domestic-cards", "Directa24Card", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "Efecty", "EPS", "ePay.bg", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Gpaysafe", "Google Pay", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "instant-bank-transfer", "InstantPayments", "Interac", "Interac-online", "Interac-eTransfer", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "loonie", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Bancontact", "Bancontact-mobile", "MTS", "Mollie", "MuchBetter", "MuchBetterVoucher", "Multibanco", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-deposit-express", "Pagsmile-lottery", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paymero", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "plaid-account", "PayTabs", "Paysafecard", "Paysafecash", "Pay4Fun", "Paynote", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "Resurs", "SafetyPay", "Samsung Pay", "SEPA", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "swift-dbt", "Tele2", "Terminaly-RF", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "wire", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `status` (string)
  Payment instrument status.
  Enum: "active", "deactivated"

## 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 404 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 409 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 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.

# Verify name on a payment instrument

Performs a name check inquiry on a payment instrument.
Use this operation to confirm the name that is associated with a payment instrument.
This operation supports payment cards only, using VISA ANI requests through Worldpay.

Endpoint: POST /payment-instruments/{id}/name-inquiry
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `gatewayAccountId` (string, required)
  ID of the gateway account.

## Response 200 fields

- `gatewayAccountId` (string, required)
  ID of the gateway account.
- `result` (string)
  Result of the payment instrument name inquiry.
  Enum: "full-match", "partial-match", "no-match", "not-supported", "unknown"
- `response` (string)
  Raw response message from gateway.

## 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 404 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 409 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 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.

# Payment tokens

Use payment tokens to reduce the scope of [PCI DSS compliance](https://www.rebilly.com/docs/pci-compliance/).

A payment token can be made using a different authentication scheme (public key authentication), which enables you to create a payment token directly from the browser.
This bypasses the need to send sensitive cardholder info to your servers.
We recommend using this with the FramePay library, which helps you integrate a form into this API resource and create payment tokens.

- [POST /tokens](/docs/dev-docs/api/payment-tokens/posttoken.md): Creates a payment token which can be exchanged into a payment instrument. [FramePay](https://docs.rebilly.com/docs/developer-docs/framepay/) is the recommended way to create a payment token because it
- [GET /tokens](/docs/dev-docs/api/payment-tokens/gettokencollection.md): Retrieve a list of tokens.
- [GET /tokens/{token}](/docs/dev-docs/api/payment-tokens/gettoken.md): Retrieves a token with a specified ID.
- [POST /digital-wallets/validation](/docs/dev-docs/api/payment-tokens/postdigitalwalletvalidation.md): Validates a digital wallet session. We recommend using [FramePay](https://docs.rebilly.com/docs/developer-docs/framepay/) to validate a digital wallet session.

# Retrieve a token

Retrieves a token with a specified ID.

Endpoint: GET /tokens/{token}
Version: latest
Security: PublishableApiKey

## Path parameters

- `token` (string, required)
  ID of the token.

## Response 200 fields

- `method` (string, required)
  Payment method of the token.
  Enum: "cryptocurrency"
- `paymentInstrument` (object, required)
  Payment card instrument details.
- `paymentInstrument.encryptedCvv` (string | null)
  Encrypted CVV of the payment card. Use to update a payment card with a CVV stored on the client side. This value is returned for client side caching if `cvv` is provided in the request.
- `paymentInstrument.expMonth` (integer, required)
  Expiration month of the payment card.
- `paymentInstrument.expYear` (integer, required)
  Expiration year of the payment card.
- `paymentInstrument.bin` (string | null)
  Bank Identification Number (BIN) of the payment card. This value is the first 6 digits of the payment card number.
- `paymentInstrument.last4` (string | null)
  Last 4 digits of the Primary Account Number (PAN) of the payment card.
- `paymentInstrument.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `isUsed` (boolean)
  Specifies if the token has been used.
- `riskMetadata` (any)
- `leadSource` (any)
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `usageTime` (string | null)
  Date and time when the token is used.
- `expirationTime` (string | null)
  Date and time when the token expired.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `paymentInstrument` (object, required)
  Paypal instrument details required for express checkout.
- `paymentInstrument.paypalMerchantId` (string, required)
  ID of the PayPal merchant.
- `paymentInstrument.billingAgreementToken` (string, required)
  PayPal billing agreement token.
- `billingAddress` (any)
  Billing address object.
- `isUsed` (boolean)
  Specifies if the token is already used.
- `expirationTime` (string | null)
  Date and time when the token expires.
- `paymentInstrument` (object, required)
  Bank account BBAN or IBAN instrument.
- `paymentInstrument` (object, required)
  Payment instrument details.
- `paymentInstrument.type` (string, required)
  Type of digital wallet.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay"
- `paymentInstrument.amount` (number, required)
  Authorized for the digital wallet amount.
- `paymentInstrument.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `paymentInstrument.descriptor` (string, required)
  Descriptor for a payment.
- `paymentInstrument.bin` (string | null)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Device Primary Account Number (DPAN).
- `paymentInstrument.last4` (string)
  Last 4 digits of the Device Primary Account Number (DPAN) of the payment card. The DPAN is the tokenized card number used in digital wallet transactions, as opposed to the Funding Primary Account Number (FPAN) which is the physical card number visible to the cardholder.
- `paymentInstrument.fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. The FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in digital wallet transactions.
- `paymentInstrument.expMonth` (integer)
  Payment card expiration month.
- `paymentInstrument.expYear` (integer)
  Payment card expiration year.
- `paymentInstrument` (object, required)
  Plaid payment instrument details.
- `paymentInstrument.publicToken` (string, required)
  Plaid public token.
- `paymentInstrument.accountId` (string, required)
  ID of the Plaid account.
- `paymentInstrument` (object, required)
  Klarna instrument details required for express checkout.
- `paymentInstrument.klarnaAuthorizationToken` (string, required)
  Klarna authorization token.
- `paymentInstrument.klarnaSessionId` (string, required)
  ID of the Klarna session.
- `walletName` (string | null)
  Name of the crypto wallet.
- `walletAddress` (string | null)
  Address of the crypto wallet.
- `walletCurrency` (string | null)
  Currency of the crypto wallet.
- `walletNetwork` (string | null)
  Network of the crypto wallet.

## 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 404 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.

# Retrieve tokens

Retrieve a list of tokens.

Endpoint: GET /tokens
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.

## Response 200 fields

- `method` (string, required)
  Payment method of the token.
  Enum: "cryptocurrency"
- `paymentInstrument` (object, required)
  Payment card instrument details.
- `paymentInstrument.encryptedCvv` (string | null)
  Encrypted CVV of the payment card. Use to update a payment card with a CVV stored on the client side. This value is returned for client side caching if `cvv` is provided in the request.
- `paymentInstrument.expMonth` (integer, required)
  Expiration month of the payment card.
- `paymentInstrument.expYear` (integer, required)
  Expiration year of the payment card.
- `paymentInstrument.bin` (string | null)
  Bank Identification Number (BIN) of the payment card. This value is the first 6 digits of the payment card number.
- `paymentInstrument.last4` (string | null)
  Last 4 digits of the Primary Account Number (PAN) of the payment card.
- `paymentInstrument.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `isUsed` (boolean)
  Specifies if the token has been used.
- `riskMetadata` (any)
- `leadSource` (any)
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `usageTime` (string | null)
  Date and time when the token is used.
- `expirationTime` (string | null)
  Date and time when the token expired.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `paymentInstrument` (object, required)
  Paypal instrument details required for express checkout.
- `paymentInstrument.paypalMerchantId` (string, required)
  ID of the PayPal merchant.
- `paymentInstrument.billingAgreementToken` (string, required)
  PayPal billing agreement token.
- `billingAddress` (any)
  Billing address object.
- `isUsed` (boolean)
  Specifies if the token is already used.
- `expirationTime` (string | null)
  Date and time when the token expires.
- `paymentInstrument` (object, required)
  Bank account BBAN or IBAN instrument.
- `paymentInstrument` (object, required)
  Payment instrument details.
- `paymentInstrument.type` (string, required)
  Type of digital wallet.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay"
- `paymentInstrument.amount` (number, required)
  Authorized for the digital wallet amount.
- `paymentInstrument.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `paymentInstrument.descriptor` (string, required)
  Descriptor for a payment.
- `paymentInstrument.bin` (string | null)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Device Primary Account Number (DPAN).
- `paymentInstrument.last4` (string)
  Last 4 digits of the Device Primary Account Number (DPAN) of the payment card. The DPAN is the tokenized card number used in digital wallet transactions, as opposed to the Funding Primary Account Number (FPAN) which is the physical card number visible to the cardholder.
- `paymentInstrument.fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. The FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in digital wallet transactions.
- `paymentInstrument.expMonth` (integer)
  Payment card expiration month.
- `paymentInstrument.expYear` (integer)
  Payment card expiration year.
- `paymentInstrument` (object, required)
  Plaid payment instrument details.
- `paymentInstrument.publicToken` (string, required)
  Plaid public token.
- `paymentInstrument.accountId` (string, required)
  ID of the Plaid account.
- `paymentInstrument` (object, required)
  Klarna instrument details required for express checkout.
- `paymentInstrument.klarnaAuthorizationToken` (string, required)
  Klarna authorization token.
- `paymentInstrument.klarnaSessionId` (string, required)
  ID of the Klarna session.
- `walletName` (string | null)
  Name of the crypto wallet.
- `walletAddress` (string | null)
  Address of the crypto wallet.
- `walletCurrency` (string | null)
  Currency of the crypto wallet.
- `walletNetwork` (string | null)
  Network of the crypto wallet.

## 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.

# Validate a digital wallet session

Validates a digital wallet session.

We recommend using [FramePay](https://docs.rebilly.com/docs/developer-docs/framepay/) to validate a digital wallet session.

Endpoint: POST /digital-wallets/validation
Version: latest
Security: PublishableApiKey, SecretApiKey, JWT

## Request fields

- `type` (string, required)
  Type of digital wallet to validate.
  Enum: "Apple Pay"

## Response 201 fields

- `type` (string, required)
  Type of digital wallet to validate.
  Enum: "Apple Pay"

## 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.

# Create a payment token

Creates a payment token which can be exchanged into a payment instrument.
[FramePay](https://docs.rebilly.com/docs/developer-docs/framepay/) is the recommended way to create a payment token because it minimizes PCI DSS compliance.
Once a payment token is created, it can only be used once.

A payment token expires upon first use or within 30 minutes of the token creation, whichever comes first.

Endpoint: POST /tokens
Version: latest
Security: PublishableApiKey, SecretApiKey, JWT

## Request fields

- `method` (string, required)
  Payment method of the token.
  Enum: "cryptocurrency"
- `paymentInstrument` (object, required)
  Payment card instrument details.
- `paymentInstrument.pan` (string)
  Primary Account Number (PAN) of the payment card. This value is required to perform a payment.
- `paymentInstrument.cvv` (string)
  Card Verification Value (CVV/CVC) of the payment card. Takes precedence over `encryptedCvv` if both are included.
- `paymentInstrument.encryptedCvv` (string | null)
  Encrypted CVV of the payment card. Use to update a payment card with a CVV stored on the client side. This value is returned for client side caching if `cvv` is provided in the request.
- `paymentInstrument.expMonth` (integer, required)
  Expiration month of the payment card.
- `paymentInstrument.expYear` (integer, required)
  Expiration year of the payment card.
- `paymentInstrument.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `riskMetadata` (any)
- `leadSource` (any)
- `paymentInstrument` (object, required)
  Paypal instrument details required for express checkout.
- `paymentInstrument.paypalMerchantId` (string, required)
  ID of the PayPal merchant.
- `paymentInstrument.billingAgreementToken` (string, required)
  PayPal billing agreement token.
- `billingAddress` (any)
  Billing address object.
- `paymentInstrument` (object, required)
  Bank account BBAN or IBAN instrument.
- `paymentInstrument` (object, required)
  Payment instrument details.
- `paymentInstrument.type` (string, required)
  Type of digital wallet.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay"
- `paymentInstrument.amount` (number, required)
  Authorized for the digital wallet amount.
- `paymentInstrument.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `paymentInstrument.descriptor` (string, required)
  Descriptor for a payment.
- `paymentInstrument.payload` (object, required)
  Digital wallet encoded data. This field may contain the digital wallet billing address.
- `paymentInstrument` (object, required)
  Plaid payment instrument details.
- `paymentInstrument.linkToken` (string, required)
  Plaid link token.
- `paymentInstrument.publicToken` (string, required)
  Plaid public token.
- `paymentInstrument.accountId` (string, required)
  ID of the Plaid account.
- `paymentInstrument` (object, required)
  Klarna instrument details required for express checkout.
- `paymentInstrument.klarnaAuthorizationToken` (string, required)
  Klarna authorization token.
- `paymentInstrument.klarnaSessionId` (string, required)
  ID of the Klarna session.
- `walletName` (string | null)
  Name of the crypto wallet.
- `walletAddress` (string | null)
  Address of the crypto wallet.
- `walletCurrency` (string | null)
  Currency of the crypto wallet.
- `walletNetwork` (string | null)
  Network of the crypto wallet.

## Response 201 fields

- `method` (string, required)
  Payment method of the token.
  Enum: "cryptocurrency"
- `paymentInstrument` (object, required)
  Payment card instrument details.
- `paymentInstrument.encryptedCvv` (string | null)
  Encrypted CVV of the payment card. Use to update a payment card with a CVV stored on the client side. This value is returned for client side caching if `cvv` is provided in the request.
- `paymentInstrument.expMonth` (integer, required)
  Expiration month of the payment card.
- `paymentInstrument.expYear` (integer, required)
  Expiration year of the payment card.
- `paymentInstrument.bin` (string | null)
  Bank Identification Number (BIN) of the payment card. This value is the first 6 digits of the payment card number.
- `paymentInstrument.last4` (string | null)
  Last 4 digits of the Primary Account Number (PAN) of the payment card.
- `paymentInstrument.brand` (string)
  Brand of payment card.
  Enum: "Visa", "MasterCard", "American Express", "Discover", "Maestro", "Solo", "Electron", "JCB", "Voyager", "Diners Club", "Switch", "Laser", "China UnionPay", "AstroPay Card"
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `isUsed` (boolean)
  Specifies if the token has been used.
- `riskMetadata` (any)
- `leadSource` (any)
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `usageTime` (string | null)
  Date and time when the token is used.
- `expirationTime` (string | null)
  Date and time when the token expired.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"
- `paymentInstrument` (object, required)
  Paypal instrument details required for express checkout.
- `paymentInstrument.paypalMerchantId` (string, required)
  ID of the PayPal merchant.
- `paymentInstrument.billingAgreementToken` (string, required)
  PayPal billing agreement token.
- `billingAddress` (any)
  Billing address object.
- `isUsed` (boolean)
  Specifies if the token is already used.
- `expirationTime` (string | null)
  Date and time when the token expires.
- `paymentInstrument` (object, required)
  Bank account BBAN or IBAN instrument.
- `paymentInstrument` (object, required)
  Payment instrument details.
- `paymentInstrument.type` (string, required)
  Type of digital wallet.
  Enum: "Apple Pay", "Google Pay", "Samsung Pay"
- `paymentInstrument.amount` (number, required)
  Authorized for the digital wallet amount.
- `paymentInstrument.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `paymentInstrument.descriptor` (string, required)
  Descriptor for a payment.
- `paymentInstrument.bin` (string | null)
  Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Device Primary Account Number (DPAN).
- `paymentInstrument.last4` (string)
  Last 4 digits of the Device Primary Account Number (DPAN) of the payment card. The DPAN is the tokenized card number used in digital wallet transactions, as opposed to the Funding Primary Account Number (FPAN) which is the physical card number visible to the cardholder.
- `paymentInstrument.fpanLast4` (string | null)
  Last 4 digits of the Funding Primary Account Number (FPAN) of the payment card. The FPAN is the physical card number visible to the cardholder, as opposed to the Device Primary Account Number (DPAN) used in digital wallet transactions.
- `paymentInstrument.expMonth` (integer)
  Payment card expiration month.
- `paymentInstrument.expYear` (integer)
  Payment card expiration year.
- `paymentInstrument` (object, required)
  Plaid payment instrument details.
- `paymentInstrument.publicToken` (string, required)
  Plaid public token.
- `paymentInstrument.accountId` (string, required)
  ID of the Plaid account.
- `paymentInstrument` (object, required)
  Klarna instrument details required for express checkout.
- `paymentInstrument.klarnaAuthorizationToken` (string, required)
  Klarna authorization token.
- `paymentInstrument.klarnaSessionId` (string, required)
  ID of the Klarna session.
- `walletName` (string | null)
  Name of the crypto wallet.
- `walletAddress` (string | null)
  Address of the crypto wallet.
- `walletCurrency` (string | null)
  Currency of the crypto wallet.
- `walletNetwork` (string | null)
  Network of the crypto wallet.

## 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.

# Plans

Use pricing plans to describe how the customer must pay for [products](https://www.rebilly.com/docs/dev-docs/api/products/).

Rebilly provides the following plan types:

- Trial only: Use this plan to create and offer a free or discounted trial period for your product.
  For example, a free 2 week trial of an internet service.
  After the trial, the customer can choose to sign up for a paid subscription, or stop using the service.
- Recurring: Use this plan to create and offer a subscription for your product.
  For example, a monthly subscription to an internet service that is charged at 20 USD per month.
- One time sale: Use this plan to create and offer a one-off sale for your products.
  For example, a one time purchase of two bags of coffee.

For information on the plans resource, see [Plans](https://www.rebilly.com/docs/dev-docs/concepts/#plans).

For information on plan pricing, see [Pricing formulas](https://www.rebilly.com/docs/settings/pricing-formulas/).

- [GET /plans](/docs/dev-docs/api/plans/getplancollection.md): Retrieves a list of plans. To retrieve plans by type, use `filter=type:{type}`, where `{type}` is `subscription`, `one-time-sale`, or `trial-only`. To retrieve plans of several types, separate the typ
- [POST /plans](/docs/dev-docs/api/plans/postplan.md): Creates a plan.
- [GET /plans/{id}](/docs/dev-docs/api/plans/getplan.md): Retrieves a plan with a specified ID.
- [PUT /plans/{id}](/docs/dev-docs/api/plans/putplan.md): Creates or updates (upserts) a plan with a specified ID.
- [DELETE /plans/{id}](/docs/dev-docs/api/plans/deleteplan.md): Deletes a plan with a specified ID.

# Delete a plan

Deletes a plan with a specified ID.

Endpoint: DELETE /plans/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 409 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 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.

# Retrieve a plan

Retrieves a plan with a specified ID.

Endpoint: GET /plans/{id}
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string, required)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `subscription` when `recurringInterval` is present. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "subscription"
- `name` (string, required)
  Name of the plan. This name is displayed on invoices and receipts.
- `description` (string)
  Plain-text description of the plan. This field accepts plain-text only.
- `richDescription` (string)
  Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks.
- `productId` (string, required)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `currencySign` (string)
  Currency sign.
- `pricing` (object, required)
  Pricing details.
- `setup` (object | null)
  Setup fee information for the plan.
- `setup.price` (number, required)
  One-time setup fee charged when the plan starts. This field is deprecated. Use the `setupFee` field instead.
- `setupFee` (number | null)
  One-time setup fee charged when the plan starts. Set to `0` or `null` if no setup fee applies.
  Example: 0
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `isActive` (boolean)
  Specifies if the plan is active.
- `revision` (integer)
  Number of times the plan is modified. Compare this value with materialized subscription item revision values.
- `isTrialOnly` (boolean)
  Specifies if a plan is a trial that does not have recurring instructions.
- `recurringInterval` (null)
  Service interval settings.
- `recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `recurringInterval.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `recurringInterval.length` (integer, required)
  Length of time.
- `recurringInterval.limit` (integer | null)
  Number of invoices the subscription order generates. If this value is `1`, only the initial order creation is generated. Example: For a 1 year contract that is billed monthly, where the `periodUnit` is `month` and the `periodDuration` is `1`, set this field to `12`.
- `recurringInterval.billingTiming` (string)
  Billing timing in relation to the service period. For `prepaid` plans the customer pays when the service period starts, whereas, for `postpaid` plans, the customer pays when the service period ends.
  Enum: "prepaid", "postpaid"
- `trial` (object | null)
- `trial.price` (number, required)
  Price of setting up a trial. If your service charges a fee for a trial, specify it here. To charge no trial fee, set this value to `0`.
- `trial.period` (object, required)
  Period information.
- `trial.period.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `trial.period.length` (integer, required)
  Length of time.
- `meteredBilling` (object | null)
  Use metered billing when an exact quantity is unknown. Report usage during a service period and charge customers afterwards. Metered billing plans must be postpaid.
- `meteredBilling.strategy` (string, required)
  Enum: "sum", "last"
- `meteredBilling.min` (number | null)
  Minimum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.max` (number | null)
  Maximum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.sticky` (boolean)
  When enabled, if no usage is reported during a service period, the plan bills the last known reported quantity from a previous period instead of zero. This is suitable for hosted or persistent resources whose usage does not change every period. Only supported with `strategy`: `last`.
  Example: false
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments"
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `one-time-sale` when both `recurringInterval` and `trial` are omitted. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "one-time-sale"
- `trial` (null)
  Trial configuration setting.
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `trial-only` when `trial` is present without `recurringInterval`. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "trial-only"
- `trial` (object | null, required)
  Trial configuration settings.

## 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 404 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.

# Retrieve plans

Retrieves a list of plans.

To retrieve plans by type, use `filter=type:{type}`,
where `{type}` is `subscription`, `one-time-sale`, or `trial-only`.
To retrieve plans of several types, separate the types with commas,
for example: `filter=type:one-time-sale,trial-only`.
Other `type` values, including negated values such as `type:!subscription`,
match no plans.

Endpoint: GET /plans
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string, required)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `subscription` when `recurringInterval` is present. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "subscription"
- `name` (string, required)
  Name of the plan. This name is displayed on invoices and receipts.
- `description` (string)
  Plain-text description of the plan. This field accepts plain-text only.
- `richDescription` (string)
  Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks.
- `productId` (string, required)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `currencySign` (string)
  Currency sign.
- `pricing` (object, required)
  Pricing details.
- `setup` (object | null)
  Setup fee information for the plan.
- `setup.price` (number, required)
  One-time setup fee charged when the plan starts. This field is deprecated. Use the `setupFee` field instead.
- `setupFee` (number | null)
  One-time setup fee charged when the plan starts. Set to `0` or `null` if no setup fee applies.
  Example: 0
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `isActive` (boolean)
  Specifies if the plan is active.
- `revision` (integer)
  Number of times the plan is modified. Compare this value with materialized subscription item revision values.
- `isTrialOnly` (boolean)
  Specifies if a plan is a trial that does not have recurring instructions.
- `recurringInterval` (null)
  Service interval settings.
- `recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `recurringInterval.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `recurringInterval.length` (integer, required)
  Length of time.
- `recurringInterval.limit` (integer | null)
  Number of invoices the subscription order generates. If this value is `1`, only the initial order creation is generated. Example: For a 1 year contract that is billed monthly, where the `periodUnit` is `month` and the `periodDuration` is `1`, set this field to `12`.
- `recurringInterval.billingTiming` (string)
  Billing timing in relation to the service period. For `prepaid` plans the customer pays when the service period starts, whereas, for `postpaid` plans, the customer pays when the service period ends.
  Enum: "prepaid", "postpaid"
- `trial` (object | null)
- `trial.price` (number, required)
  Price of setting up a trial. If your service charges a fee for a trial, specify it here. To charge no trial fee, set this value to `0`.
- `trial.period` (object, required)
  Period information.
- `trial.period.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `trial.period.length` (integer, required)
  Length of time.
- `meteredBilling` (object | null)
  Use metered billing when an exact quantity is unknown. Report usage during a service period and charge customers afterwards. Metered billing plans must be postpaid.
- `meteredBilling.strategy` (string, required)
  Enum: "sum", "last"
- `meteredBilling.min` (number | null)
  Minimum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.max` (number | null)
  Maximum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.sticky` (boolean)
  When enabled, if no usage is reported during a service period, the plan bills the last known reported quantity from a previous period instead of zero. This is suitable for hosted or persistent resources whose usage does not change every period. Only supported with `strategy`: `last`.
  Example: false
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments"
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `one-time-sale` when both `recurringInterval` and `trial` are omitted. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "one-time-sale"
- `trial` (null)
  Trial configuration setting.
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `trial-only` when `trial` is present without `recurringInterval`. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "trial-only"
- `trial` (object | null, required)
  Trial configuration settings.

## 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.

# Create a plan

Creates a plan.

Endpoint: POST /plans
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `type` (string)
  Variant of the plan. This field is optional in create and update requests. The variant is `subscription` when `recurringInterval` is present. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "subscription"
- `name` (string, required)
  Name of the plan. This name is displayed on invoices and receipts.
- `description` (string)
  Plain-text description of the plan. This field accepts plain-text only.
- `richDescription` (string)
  Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks.
- `productId` (string, required)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `pricing` (object, required)
  Pricing details.
- `setup` (object | null)
  Setup fee information for the plan.
- `setup.price` (number, required)
  One-time setup fee charged when the plan starts. This field is deprecated. Use the `setupFee` field instead.
- `setupFee` (number | null)
  One-time setup fee charged when the plan starts. Set to `0` or `null` if no setup fee applies.
  Example: 0
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `isActive` (boolean)
  Specifies if the plan is active.
- `recurringInterval` (object, required)
  Service interval settings.
- `recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `recurringInterval.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `recurringInterval.length` (integer, required)
  Length of time.
- `recurringInterval.limit` (integer | null)
  Number of invoices the subscription order generates. If this value is `1`, only the initial order creation is generated. Example: For a 1 year contract that is billed monthly, where the `periodUnit` is `month` and the `periodDuration` is `1`, set this field to `12`.
- `recurringInterval.billingTiming` (string)
  Billing timing in relation to the service period. For `prepaid` plans the customer pays when the service period starts, whereas, for `postpaid` plans, the customer pays when the service period ends.
  Enum: "prepaid", "postpaid"
- `trial` (object | null)
- `trial.price` (number, required)
  Price of setting up a trial. If your service charges a fee for a trial, specify it here. To charge no trial fee, set this value to `0`.
- `trial.period` (object, required)
  Period information.
- `trial.period.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `trial.period.length` (integer, required)
  Length of time.
- `meteredBilling` (object | null)
  Use metered billing when an exact quantity is unknown. Report usage during a service period and charge customers afterwards. Metered billing plans must be postpaid.
- `meteredBilling.strategy` (string, required)
  Enum: "sum", "last"
- `meteredBilling.min` (number | null)
  Minimum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.max` (number | null)
  Maximum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.sticky` (boolean)
  When enabled, if no usage is reported during a service period, the plan bills the last known reported quantity from a previous period instead of zero. This is suitable for hosted or persistent resources whose usage does not change every period. Only supported with `strategy`: `last`.
  Example: false
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `type` (string)
  Variant of the plan. This field is optional in create and update requests. The variant is `one-time-sale` when both `recurringInterval` and `trial` are omitted. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "one-time-sale"
- `type` (string)
  Variant of the plan. This field is optional in create and update requests. The variant is `trial-only` when `trial` is present without `recurringInterval`. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "trial-only"
- `trial` (object | null, required)
  Trial configuration settings.

## Response 201 fields

- `id` (string, required)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `subscription` when `recurringInterval` is present. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "subscription"
- `name` (string, required)
  Name of the plan. This name is displayed on invoices and receipts.
- `description` (string)
  Plain-text description of the plan. This field accepts plain-text only.
- `richDescription` (string)
  Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks.
- `productId` (string, required)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `currencySign` (string)
  Currency sign.
- `pricing` (object, required)
  Pricing details.
- `setup` (object | null)
  Setup fee information for the plan.
- `setup.price` (number, required)
  One-time setup fee charged when the plan starts. This field is deprecated. Use the `setupFee` field instead.
- `setupFee` (number | null)
  One-time setup fee charged when the plan starts. Set to `0` or `null` if no setup fee applies.
  Example: 0
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `isActive` (boolean)
  Specifies if the plan is active.
- `revision` (integer)
  Number of times the plan is modified. Compare this value with materialized subscription item revision values.
- `isTrialOnly` (boolean)
  Specifies if a plan is a trial that does not have recurring instructions.
- `recurringInterval` (null)
  Service interval settings.
- `recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `recurringInterval.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `recurringInterval.length` (integer, required)
  Length of time.
- `recurringInterval.limit` (integer | null)
  Number of invoices the subscription order generates. If this value is `1`, only the initial order creation is generated. Example: For a 1 year contract that is billed monthly, where the `periodUnit` is `month` and the `periodDuration` is `1`, set this field to `12`.
- `recurringInterval.billingTiming` (string)
  Billing timing in relation to the service period. For `prepaid` plans the customer pays when the service period starts, whereas, for `postpaid` plans, the customer pays when the service period ends.
  Enum: "prepaid", "postpaid"
- `trial` (object | null)
- `trial.price` (number, required)
  Price of setting up a trial. If your service charges a fee for a trial, specify it here. To charge no trial fee, set this value to `0`.
- `trial.period` (object, required)
  Period information.
- `trial.period.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `trial.period.length` (integer, required)
  Length of time.
- `meteredBilling` (object | null)
  Use metered billing when an exact quantity is unknown. Report usage during a service period and charge customers afterwards. Metered billing plans must be postpaid.
- `meteredBilling.strategy` (string, required)
  Enum: "sum", "last"
- `meteredBilling.min` (number | null)
  Minimum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.max` (number | null)
  Maximum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.sticky` (boolean)
  When enabled, if no usage is reported during a service period, the plan bills the last known reported quantity from a previous period instead of zero. This is suitable for hosted or persistent resources whose usage does not change every period. Only supported with `strategy`: `last`.
  Example: false
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments"
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `one-time-sale` when both `recurringInterval` and `trial` are omitted. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "one-time-sale"
- `trial` (null)
  Trial configuration setting.
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `trial-only` when `trial` is present without `recurringInterval`. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "trial-only"
- `trial` (object | null, required)
  Trial configuration settings.

## 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.

# Upsert a plan

Creates or updates (upserts) a plan with a specified ID.

Endpoint: PUT /plans/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `type` (string)
  Variant of the plan. This field is optional in create and update requests. The variant is `subscription` when `recurringInterval` is present. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "subscription"
- `name` (string, required)
  Name of the plan. This name is displayed on invoices and receipts.
- `description` (string)
  Plain-text description of the plan. This field accepts plain-text only.
- `richDescription` (string)
  Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks.
- `productId` (string, required)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `pricing` (object, required)
  Pricing details.
- `setup` (object | null)
  Setup fee information for the plan.
- `setup.price` (number, required)
  One-time setup fee charged when the plan starts. This field is deprecated. Use the `setupFee` field instead.
- `setupFee` (number | null)
  One-time setup fee charged when the plan starts. Set to `0` or `null` if no setup fee applies.
  Example: 0
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `isActive` (boolean)
  Specifies if the plan is active.
- `recurringInterval` (object, required)
  Service interval settings.
- `recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `recurringInterval.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `recurringInterval.length` (integer, required)
  Length of time.
- `recurringInterval.limit` (integer | null)
  Number of invoices the subscription order generates. If this value is `1`, only the initial order creation is generated. Example: For a 1 year contract that is billed monthly, where the `periodUnit` is `month` and the `periodDuration` is `1`, set this field to `12`.
- `recurringInterval.billingTiming` (string)
  Billing timing in relation to the service period. For `prepaid` plans the customer pays when the service period starts, whereas, for `postpaid` plans, the customer pays when the service period ends.
  Enum: "prepaid", "postpaid"
- `trial` (object | null)
- `trial.price` (number, required)
  Price of setting up a trial. If your service charges a fee for a trial, specify it here. To charge no trial fee, set this value to `0`.
- `trial.period` (object, required)
  Period information.
- `trial.period.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `trial.period.length` (integer, required)
  Length of time.
- `meteredBilling` (object | null)
  Use metered billing when an exact quantity is unknown. Report usage during a service period and charge customers afterwards. Metered billing plans must be postpaid.
- `meteredBilling.strategy` (string, required)
  Enum: "sum", "last"
- `meteredBilling.min` (number | null)
  Minimum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.max` (number | null)
  Maximum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.sticky` (boolean)
  When enabled, if no usage is reported during a service period, the plan bills the last known reported quantity from a previous period instead of zero. This is suitable for hosted or persistent resources whose usage does not change every period. Only supported with `strategy`: `last`.
  Example: false
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `type` (string)
  Variant of the plan. This field is optional in create and update requests. The variant is `one-time-sale` when both `recurringInterval` and `trial` are omitted. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "one-time-sale"
- `type` (string)
  Variant of the plan. This field is optional in create and update requests. The variant is `trial-only` when `trial` is present without `recurringInterval`. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "trial-only"
- `trial` (object | null, required)
  Trial configuration settings.

## Response 200 fields

- `id` (string, required)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `subscription` when `recurringInterval` is present. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "subscription"
- `name` (string, required)
  Name of the plan. This name is displayed on invoices and receipts.
- `description` (string)
  Plain-text description of the plan. This field accepts plain-text only.
- `richDescription` (string)
  Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks.
- `productId` (string, required)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `currencySign` (string)
  Currency sign.
- `pricing` (object, required)
  Pricing details.
- `setup` (object | null)
  Setup fee information for the plan.
- `setup.price` (number, required)
  One-time setup fee charged when the plan starts. This field is deprecated. Use the `setupFee` field instead.
- `setupFee` (number | null)
  One-time setup fee charged when the plan starts. Set to `0` or `null` if no setup fee applies.
  Example: 0
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `isActive` (boolean)
  Specifies if the plan is active.
- `revision` (integer)
  Number of times the plan is modified. Compare this value with materialized subscription item revision values.
- `isTrialOnly` (boolean)
  Specifies if a plan is a trial that does not have recurring instructions.
- `recurringInterval` (null)
  Service interval settings.
- `recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `recurringInterval.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `recurringInterval.length` (integer, required)
  Length of time.
- `recurringInterval.limit` (integer | null)
  Number of invoices the subscription order generates. If this value is `1`, only the initial order creation is generated. Example: For a 1 year contract that is billed monthly, where the `periodUnit` is `month` and the `periodDuration` is `1`, set this field to `12`.
- `recurringInterval.billingTiming` (string)
  Billing timing in relation to the service period. For `prepaid` plans the customer pays when the service period starts, whereas, for `postpaid` plans, the customer pays when the service period ends.
  Enum: "prepaid", "postpaid"
- `trial` (object | null)
- `trial.price` (number, required)
  Price of setting up a trial. If your service charges a fee for a trial, specify it here. To charge no trial fee, set this value to `0`.
- `trial.period` (object, required)
  Period information.
- `trial.period.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `trial.period.length` (integer, required)
  Length of time.
- `meteredBilling` (object | null)
  Use metered billing when an exact quantity is unknown. Report usage during a service period and charge customers afterwards. Metered billing plans must be postpaid.
- `meteredBilling.strategy` (string, required)
  Enum: "sum", "last"
- `meteredBilling.min` (number | null)
  Minimum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.max` (number | null)
  Maximum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.sticky` (boolean)
  When enabled, if no usage is reported during a service period, the plan bills the last known reported quantity from a previous period instead of zero. This is suitable for hosted or persistent resources whose usage does not change every period. Only supported with `strategy`: `last`.
  Example: false
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments"
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `one-time-sale` when both `recurringInterval` and `trial` are omitted. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "one-time-sale"
- `trial` (null)
  Trial configuration setting.
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `trial-only` when `trial` is present without `recurringInterval`. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "trial-only"
- `trial` (object | null, required)
  Trial configuration settings.

## Response 201 fields

- `id` (string, required)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `subscription` when `recurringInterval` is present. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "subscription"
- `name` (string, required)
  Name of the plan. This name is displayed on invoices and receipts.
- `description` (string)
  Plain-text description of the plan. This field accepts plain-text only.
- `richDescription` (string)
  Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks.
- `productId` (string, required)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `currencySign` (string)
  Currency sign.
- `pricing` (object, required)
  Pricing details.
- `setup` (object | null)
  Setup fee information for the plan.
- `setup.price` (number, required)
  One-time setup fee charged when the plan starts. This field is deprecated. Use the `setupFee` field instead.
- `setupFee` (number | null)
  One-time setup fee charged when the plan starts. Set to `0` or `null` if no setup fee applies.
  Example: 0
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `isActive` (boolean)
  Specifies if the plan is active.
- `revision` (integer)
  Number of times the plan is modified. Compare this value with materialized subscription item revision values.
- `isTrialOnly` (boolean)
  Specifies if a plan is a trial that does not have recurring instructions.
- `recurringInterval` (null)
  Service interval settings.
- `recurringInterval.periodAnchorInstruction` (object | null)
  Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends.
- `recurringInterval.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `recurringInterval.length` (integer, required)
  Length of time.
- `recurringInterval.limit` (integer | null)
  Number of invoices the subscription order generates. If this value is `1`, only the initial order creation is generated. Example: For a 1 year contract that is billed monthly, where the `periodUnit` is `month` and the `periodDuration` is `1`, set this field to `12`.
- `recurringInterval.billingTiming` (string)
  Billing timing in relation to the service period. For `prepaid` plans the customer pays when the service period starts, whereas, for `postpaid` plans, the customer pays when the service period ends.
  Enum: "prepaid", "postpaid"
- `trial` (object | null)
- `trial.price` (number, required)
  Price of setting up a trial. If your service charges a fee for a trial, specify it here. To charge no trial fee, set this value to `0`.
- `trial.period` (object, required)
  Period information.
- `trial.period.unit` (string, required)
  Unit of time.
  Enum: "day", "week", "month", "year"
- `trial.period.length` (integer, required)
  Length of time.
- `meteredBilling` (object | null)
  Use metered billing when an exact quantity is unknown. Report usage during a service period and charge customers afterwards. Metered billing plans must be postpaid.
- `meteredBilling.strategy` (string, required)
  Enum: "sum", "last"
- `meteredBilling.min` (number | null)
  Minimum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.max` (number | null)
  Maximum quantity that is charged at the end of a service period regardless of reported usage.
- `meteredBilling.sticky` (boolean)
  When enabled, if no usage is reported during a service period, the plan bills the last known reported quantity from a previous period instead of zero. This is suitable for hosted or persistent resources whose usage does not change every period. Only supported with `strategy`: `last`.
  Example: false
- `invoiceTimeShift` (object | null)
  Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends.
- `invoiceTimeShift.issueTimeShift` (object)
  Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift).
- `invoiceTimeShift.issueTimeShift.chronology` (string, required)
  Sequential order of the billing time relative to the start of the service period.
  Enum: "before"
- `invoiceTimeShift.issueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice issue time or date.
- `invoiceTimeShift.issueTimeShift.unit` (any, required)
  Unit of time.
- `invoiceTimeShift.dueTimeShift` (object)
  Calculation instruction of the invoice due time. This is used in conjunction with the service period anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/subscriptions#service-period-anchor-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date.
- `invoiceTimeShift.dueTimeShift.duration` (integer, required)
  Amount of time by which to move the invoice due time or date.
- `invoiceTimeShift.dueTimeShift.unit` (any, required)
  Unit of time.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments"
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `one-time-sale` when both `recurringInterval` and `trial` are omitted. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "one-time-sale"
- `trial` (null)
  Trial configuration setting.
- `type` (string, required)
  Variant of the plan. This field is optional in create and update requests. The variant is `trial-only` when `trial` is present without `recurringInterval`. If included, this field must match the applicable variant. A mismatch results in an HTTP `422` response. Responses always include this field.
  Enum: "trial-only"
- `trial` (object | null, required)
  Trial configuration settings.

## 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 404 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 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.

# Products

Use products to describe the goods and services that your business sells.
A product also describes sales items on invoices and receipts.
Product pricing is defined in [plans](https://www.rebilly.com/docs/dev-docs/api/plans/).
A product may have one or many plans.

For information on the product resource, see [Product](https://www.rebilly.com/docs/dev-docs/concepts/#products).

- [GET /products](/docs/dev-docs/api/products/getproductcollection.md): Retrieves a list of products.
- [POST /products](/docs/dev-docs/api/products/postproduct.md): Creates a product.
- [GET /products/{id}](/docs/dev-docs/api/products/getproduct.md): Retrieves a product with a specified ID.
- [PUT /products/{id}](/docs/dev-docs/api/products/putproduct.md): Creates or updates (upserts) a product with a specified ID.
- [DELETE /products/{id}](/docs/dev-docs/api/products/deleteproduct.md): Deletes a product with a specified ID.

# Delete a product

Deletes a product with a specified ID.

Endpoint: DELETE /products/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 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.

# Retrieve a product

Retrieves a product with a specified ID.

Endpoint: GET /products/{id}
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `name` (string, required)
  Name of the product.
  Example: Premium membership
- `unitLabel` (string)
  Unit label, such as per `seat` or per `unit`.
  Example: seat
- `description` (string | null)
  Description of the product.
- `requiresShipping` (boolean)
  Specifies if the product requires shipping. If this value is `true`, shipping calculations are applied.
  Example: false
- `options` (array)
  Product options such as color, size, and so forth. Product option values are defined in plans. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/).
- `taxCategoryId` (string | null)
  Tax category of the product. For a complete list of supported tax categories, see [TaxJar sales tax API reference](https://developers.taxjar.com/api/reference/#get-list-tax-categories). If none of the tax categories from the list are applicable for your product, use the general tax category `00000`.
  Example: 00000
- `accountingCode` (string | null)
  Accounting code of the product.
  Example: 4010
- `recognition` (object | null)
- `recognition.debitAccountId` (string | null)
  ID of the debit journal account.
- `recognition.creditAccountId` (string | null)
  ID of the credit journal account.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve products

Retrieves a list of products.

Endpoint: GET /products
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `name` (string, required)
  Name of the product.
  Example: Premium membership
- `unitLabel` (string)
  Unit label, such as per `seat` or per `unit`.
  Example: seat
- `description` (string | null)
  Description of the product.
- `requiresShipping` (boolean)
  Specifies if the product requires shipping. If this value is `true`, shipping calculations are applied.
  Example: false
- `options` (array)
  Product options such as color, size, and so forth. Product option values are defined in plans. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/).
- `taxCategoryId` (string | null)
  Tax category of the product. For a complete list of supported tax categories, see [TaxJar sales tax API reference](https://developers.taxjar.com/api/reference/#get-list-tax-categories). If none of the tax categories from the list are applicable for your product, use the general tax category `00000`.
  Example: 00000
- `accountingCode` (string | null)
  Accounting code of the product.
  Example: 4010
- `recognition` (object | null)
- `recognition.debitAccountId` (string | null)
  ID of the debit journal account.
- `recognition.creditAccountId` (string | null)
  ID of the credit journal account.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a product

Creates a product.

Endpoint: POST /products
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `name` (string, required)
  Name of the product.
  Example: Premium membership
- `unitLabel` (string)
  Unit label, such as per `seat` or per `unit`.
  Example: seat
- `description` (string | null)
  Description of the product.
- `requiresShipping` (boolean)
  Specifies if the product requires shipping. If this value is `true`, shipping calculations are applied.
  Example: false
- `options` (array)
  Product options such as color, size, and so forth. Product option values are defined in plans. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/).
- `taxCategoryId` (string | null)
  Tax category of the product. For a complete list of supported tax categories, see [TaxJar sales tax API reference](https://developers.taxjar.com/api/reference/#get-list-tax-categories). If none of the tax categories from the list are applicable for your product, use the general tax category `00000`.
  Example: 00000
- `accountingCode` (string | null)
  Accounting code of the product.
  Example: 4010
- `recognition` (object | null)
- `recognition.debitAccountId` (string | null)
  ID of the debit journal account.
- `recognition.creditAccountId` (string | null)
  ID of the credit journal account.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}

## Response 201 fields

- `id` (string)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `name` (string, required)
  Name of the product.
  Example: Premium membership
- `unitLabel` (string)
  Unit label, such as per `seat` or per `unit`.
  Example: seat
- `description` (string | null)
  Description of the product.
- `requiresShipping` (boolean)
  Specifies if the product requires shipping. If this value is `true`, shipping calculations are applied.
  Example: false
- `options` (array)
  Product options such as color, size, and so forth. Product option values are defined in plans. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/).
- `taxCategoryId` (string | null)
  Tax category of the product. For a complete list of supported tax categories, see [TaxJar sales tax API reference](https://developers.taxjar.com/api/reference/#get-list-tax-categories). If none of the tax categories from the list are applicable for your product, use the general tax category `00000`.
  Example: 00000
- `accountingCode` (string | null)
  Accounting code of the product.
  Example: 4010
- `recognition` (object | null)
- `recognition.debitAccountId` (string | null)
  ID of the debit journal account.
- `recognition.creditAccountId` (string | null)
  ID of the credit journal account.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Upsert a product

Creates or updates (upserts) a product with a specified ID.

Endpoint: PUT /products/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `name` (string, required)
  Name of the product.
  Example: Premium membership
- `unitLabel` (string)
  Unit label, such as per `seat` or per `unit`.
  Example: seat
- `description` (string | null)
  Description of the product.
- `requiresShipping` (boolean)
  Specifies if the product requires shipping. If this value is `true`, shipping calculations are applied.
  Example: false
- `options` (array)
  Product options such as color, size, and so forth. Product option values are defined in plans. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/).
- `taxCategoryId` (string | null)
  Tax category of the product. For a complete list of supported tax categories, see [TaxJar sales tax API reference](https://developers.taxjar.com/api/reference/#get-list-tax-categories). If none of the tax categories from the list are applicable for your product, use the general tax category `00000`.
  Example: 00000
- `accountingCode` (string | null)
  Accounting code of the product.
  Example: 4010
- `recognition` (object | null)
- `recognition.debitAccountId` (string | null)
  ID of the debit journal account.
- `recognition.creditAccountId` (string | null)
  ID of the credit journal account.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}

## Response 200 fields

- `id` (string)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `name` (string, required)
  Name of the product.
  Example: Premium membership
- `unitLabel` (string)
  Unit label, such as per `seat` or per `unit`.
  Example: seat
- `description` (string | null)
  Description of the product.
- `requiresShipping` (boolean)
  Specifies if the product requires shipping. If this value is `true`, shipping calculations are applied.
  Example: false
- `options` (array)
  Product options such as color, size, and so forth. Product option values are defined in plans. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/).
- `taxCategoryId` (string | null)
  Tax category of the product. For a complete list of supported tax categories, see [TaxJar sales tax API reference](https://developers.taxjar.com/api/reference/#get-list-tax-categories). If none of the tax categories from the list are applicable for your product, use the general tax category `00000`.
  Example: 00000
- `accountingCode` (string | null)
  Accounting code of the product.
  Example: 4010
- `recognition` (object | null)
- `recognition.debitAccountId` (string | null)
  ID of the debit journal account.
- `recognition.creditAccountId` (string | null)
  ID of the credit journal account.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## Response 201 fields

- `id` (string)
  ID of the product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `name` (string, required)
  Name of the product.
  Example: Premium membership
- `unitLabel` (string)
  Unit label, such as per `seat` or per `unit`.
  Example: seat
- `description` (string | null)
  Description of the product.
- `requiresShipping` (boolean)
  Specifies if the product requires shipping. If this value is `true`, shipping calculations are applied.
  Example: false
- `options` (array)
  Product options such as color, size, and so forth. Product option values are defined in plans. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/).
- `taxCategoryId` (string | null)
  Tax category of the product. For a complete list of supported tax categories, see [TaxJar sales tax API reference](https://developers.taxjar.com/api/reference/#get-list-tax-categories). If none of the tax categories from the list are applicable for your product, use the general tax category `00000`.
  Example: 00000
- `accountingCode` (string | null)
  Accounting code of the product.
  Example: 4010
- `recognition` (object | null)
- `recognition.debitAccountId` (string | null)
  ID of the debit journal account.
- `recognition.creditAccountId` (string | null)
  ID of the credit journal account.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Quotes

Use quote operations to create and manage quotations.
Quotations describe the cost of goods or services to potential customers before they commit to a purchase.
A quote contains an initial invoice preview that can be accepted to become an order.

A quote can contain subscription and one-time sale items.
When a quote contains one or more subscription items, it is a subscription order quote.

- [GET /quotes](/docs/dev-docs/api/quotes/getquotecollection.md): Retrieves a list of quotes.
- [POST /quotes](/docs/dev-docs/api/quotes/postquote.md): Creates a quote.
- [GET /quotes/{id}](/docs/dev-docs/api/quotes/getquote.md): Retrieves a quote with a specified ID.
- [PUT /quotes/{id}](/docs/dev-docs/api/quotes/putquote.md): Creates or updates a quote with a specified ID. The update operation can only be used for quotes with a `status` of `draft`.
- [POST /quotes/{id}/accept](/docs/dev-docs/api/quotes/postquoteacceptance.md): Accepts an issued quote with a specified ID.
- [POST /quotes/{id}/cancel](/docs/dev-docs/api/quotes/postquotecancellation.md): Cancels a draft or issued quote with a specified ID.
- [POST /quotes/{id}/issue](/docs/dev-docs/api/quotes/postquoteissuance.md): Issues a draft quote with a specified ID.
- [POST /quotes/{id}/recall](/docs/dev-docs/api/quotes/postquoterecall.md): Recalls an issued quote with a specified ID so that it can be edited. Recalled quotes are assigned the `status` of `draft`.
- [POST /quotes/{id}/reissue](/docs/dev-docs/api/quotes/postquotereissue.md): Reissues an expired, canceled, or rejected quote with a specified ID. This operation assigns the quote the `status` of `issued`, clears the `canceledTime` and `rejectedTime` fields, and resets the ful
- [POST quote-accepted](/docs/dev-docs/api/quotes/quote-accepted.md)
- [POST quote-canceled](/docs/dev-docs/api/quotes/quote-canceled.md)
- [POST quote-created](/docs/dev-docs/api/quotes/quote-created.md)
- [POST quote-expired](/docs/dev-docs/api/quotes/quote-expired.md)
- [POST quote-issued](/docs/dev-docs/api/quotes/quote-issued.md)
- [POST quote-recalled](/docs/dev-docs/api/quotes/quote-recalled.md)
- [POST quote-rejected](/docs/dev-docs/api/quotes/quote-rejected.md)
- [POST quote-updated](/docs/dev-docs/api/quotes/quote-updated.md)

# Quotes timeline

Use quote timelines to maintain an audit trail of changes and activity for each quote.

- [GET /quotes/{id}/timeline](/docs/dev-docs/api/quotes-timeline/getquotetimelinecollection.md): Retrieves quote timeline messages.
- [POST /quotes/{id}/timeline](/docs/dev-docs/api/quotes-timeline/postquotetimeline.md): Creates a quote timeline comment or custom defined event.

# Retrieve quote timeline messages

Retrieves quote timeline messages.

Endpoint: GET /quotes/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "quote-created", "quote-issued", "quote-accepted", "quote-rejected", "quote-canceled", "quote-recalled", "quote-updated", "quote-expired", "quote-order-attached", "timeline-comment-created"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline message.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Contents of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a quote timeline comment

Creates a quote timeline comment or custom defined event.

Endpoint: POST /quotes/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `message` (string)
  Contents of the timeline message.

## Response 201 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "quote-created", "quote-issued", "quote-accepted", "quote-rejected", "quote-canceled", "quote-recalled", "quote-updated", "quote-expired", "quote-order-attached", "timeline-comment-created"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline message.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Contents of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve a quote

Retrieves a quote with a specified ID.

Endpoint: GET /quotes/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Header parameters

- `Accept` (string)
  Type of response media.

## Response 200 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## 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 404 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.

# Retrieve quotes

Retrieves a list of quotes.

Endpoint: GET /quotes
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## 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.

# Create a quote

Creates a quote.

Endpoint: POST /quotes
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceConditions` (array)
  Conditions that must be met for the quote to be automatically accepted.
  Example: ["payment"]
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.items` (array, required)
  Items included in the quote.
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## Response 201 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## 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 409 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 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.

# Accept a quote

Accepts an issued quote with a specified ID.

Endpoint: POST /quotes/{id}/accept
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## 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 404 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 409 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 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.

# Cancel a quote

Cancels a draft or issued quote with a specified ID.

Endpoint: POST /quotes/{id}/cancel
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## 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 404 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 409 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 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.

# Issue a quote

Issues a draft quote with a specified ID.

Endpoint: POST /quotes/{id}/issue
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## 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 404 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 409 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 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.

# Recall a quote

Recalls an issued quote with a specified ID so that it can be edited.
Recalled quotes are assigned the `status` of `draft`.

Endpoint: POST /quotes/{id}/recall
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## 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 404 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 409 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 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.

# Reissue a quote

Reissues an expired, canceled, or rejected quote with a specified ID.
This operation assigns the quote the `status` of `issued`,
clears the `canceledTime` and `rejectedTime` fields,
and resets the fulfilled acceptance conditions.
If the request omits `expirationTime`, the quote keeps its expiration time when it has not passed,
otherwise the quote expires one month after it is reissued.

This operation restores the voided quotation invoice to the `quotation` status,
and recalculates the invoice from the current quote items and order.
Reissuing a quote triggers the same webhooks, rules, and timeline entries as issuing it.
To reissue a change or reactivation quote, the order must still allow that quote type,
and no other draft or issued quote may exist for the same order.

Endpoint: POST /quotes/{id}/reissue
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `expirationTime` (string | null)
  Date and time when the reissued quote expires. A new expiration time must be later than the current time. If this field is `null` or omitted, the quote keeps its expiration time when it has not passed. Otherwise, the quote expires one month after it is reissued.

## Response 200 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## 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 404 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 409 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 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.

# Upsert a quote

Creates or updates a quote with a specified ID.

The update operation can only be used for quotes with a `status` of `draft`.

Endpoint: PUT /quotes/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceConditions` (array)
  Conditions that must be met for the quote to be automatically accepted.
  Example: ["payment"]
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.items` (array, required)
  Items included in the quote.
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## Response 200 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## Response 201 fields

- `id` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `type` (string, required)
  Type of the quote. When a quote is accepted, a new order is created.
  Enum: "creation"
- `acceptanceFulfillment` (array)
  List of `acceptanceConditions` with fulfillment status.
- `acceptanceFulfillment.condition` (string)
  Enum: "customer", "payment", "organization"
- `acceptanceFulfillment.isFulfilled` (boolean)
- `isNewOrder` (boolean)
  Specifies if the order is a new order.
  Example: true
- `invoiceId` (string)
  ID of the payment invoice.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `status` (string)
  Status of the quote.
  Enum: "draft", "issued", "accepted", "rejected", "canceled", "expired"
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `order` (object, required)
  Properties of the related order.
- `order.id` (string, required)
  ID of the related order.
  Example: ord_01HVKA5975PJBSQ1SX72G3MSZC
- `order.items` (array, required)
  Items included in the quote.
- `order.items.id` (string)
  ID of the quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `order.items.type` (string, required)
  Specifies the type of order item.
  Enum: "one-time-sale"
- `order.items.quantity` (integer)
  Number of product units in the specified plan. Quantity for metered billing is always 0.
- `order.items.quantityFilled` (number | null)
  Number of filled product units. This field is not used for metered billing plans.
  Example: 5.125
- `order.items.plan` (any, required)
  Plan details.
- `order.items.description` (string)
  Description of the quote item.
  Example: Charge per approved transaction with DCC
- `order.items.priceDescription` (string)
  Price description of the quote item. This value is only used for metered billing items.
  Example: 50% of the markup for approved transactions
- `order.items.usageLimits` (any)
- `order.items.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `order.items.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `order.items.quantity` (integer)
  Number of product units in the specified plan.
- `order.autopay` (boolean)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order.
- `order.shipping` (object)
  Shipping settings.
- `order.deliveryAddress` (any)
  Delivery address of the order.
- `order.billingAddress` (any)
  Billing address of the order.
- `order.startTime` (string | null)
  Date and time when the created order starts. If this value is `null`, the quote acceptance time is used.
- `order.isLegacy` (boolean)
  Specifies if the order is a legacy order. If omitted when the quote is created, the value follows the order model that is used by the organization: `false` for the current order model and `true` for the legacy order model. If omitted when the quote is updated, the value does not change. Organizations that use the current order model cannot set this value to `true`.
  Example: true
- `invoicePreview` (object)
  Preview of the quote invoice.
- `invoicePreview.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `invoicePreview.initialAmounts` (object)
  Total amounts of the initial invoice.
- `invoicePreview.initialAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.initialAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.initialAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.initialAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.initialAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.recurringAmounts` (object | null)
  Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`.
- `invoicePreview.recurringAmounts.amount` (number)
  Amount of the invoice.
- `invoicePreview.recurringAmounts.subtotalAmount` (number)
  Subtotal amount of the invoice.
- `invoicePreview.recurringAmounts.discountAmount` (number)
  Discount amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.shippingAmount` (number)
  Shipping amount that is applied to the invoice.
- `invoicePreview.recurringAmounts.taxAmount` (number)
  Tax amount that is applied to the invoice.
- `invoicePreview.items` (array)
  Invoice items.
- `invoicePreview.items.quoteItemId` (string)
  ID of the related quote item.
  Example: qt_itm_01HXCEQNR3F1G2A6RX6HPS3KFY
- `invoicePreview.items.type` (string)
  Type of the invoice item.
  Enum: "debit", "credit"
- `invoicePreview.items.name` (string)
  Name of the invoice item.
- `invoicePreview.items.description` (string)
  Description of the invoice item.
  Example: Charge per approved transaction with DCC
- `invoicePreview.items.priceDescription` (string)
  Price description of the invoice item.
  Example: 50% of the markup for approved transactions
- `invoicePreview.items.unitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.quantity` (integer)
  Quantity of the invoice item.
- `invoicePreview.items.period` (string | null)
  Date interval of the invoice item.
- `invoicePreview.items.setupUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialUnitPrice` (number | null)
  Unit price of the invoice item.
- `invoicePreview.items.trialPeriod` (string | null)
  Date interval of the invoice item trial.
- `invoicePreview.items.taxAmount` (number | null)
  Tax amount of the invoice item.
- `invoicePreview.items.setupTaxAmount` (number | null)
  Tax amount of the setup that is applied to the invoice.
- `invoicePreview.items.trialTaxAmount` (number | null)
  Tax amount of the trial that is applied to the invoice.
- `paymentTerms` (string)
  Payment terms for the customer which are displayed on the quote.
- `expirationTime` (string | null)
  Date and time when the quote expires. A new or updated expiration time must be later than the current time. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`.
- `issuedTime` (string | null)
  Date and time when the quote is issued.
- `acceptedTime` (string | null)
  Date and time when the quote is accepted.
- `rejectedTime` (string | null)
  Date and time when the quote is rejected.
- `canceledTime` (string | null)
  Date and time when the quote is canceled.
- `redirectUrl` (string)
  URL to redirect the customer to when a quote is rejected. The default value is the website URL.
- `signature` (object)
  Written signature and printed organization name.
- `signature.showWrittenSignatureLines` (boolean)
  Specifies whether to show written signature lines.
- `signature.organizationPrintedName` (string | null)
  Printed name of the organization.
- `tax` (object)
  Taxes.
- `couponIds` (array | null)
  List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/).
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer.
  Enum: "self", "quoteAcceptanceFormUrl", "invoicePaymentFormUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.website` (object)
- `_embedded.order` (object)
- `_embedded.invoice` (object)
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the related order. Change quotes can only be created for orders with `active` or `trial-ended` status. For `trial-ended` orders, use this quote type to convert a trial-only order to a regular recurring order.
  Enum: "change"
- `order.renewalPolicy` (string)
  Policy for managing service periods and trial state of the related order when the quote is accepted. The `reset` and `retain` values are deprecated. The deprecated `keepTrial` flag is ignored unless `retain` is used, or this field is omitted. If this field is omitted, this value defaults to `retainRecurring`. If this field is omitted and `keepTrial` is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
  Enum: "resetToRecurring", "retainRecurring", "retainTrialThenRecurring", "reset", "retain"
- `order.prorated` (boolean)
  Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retainRecurring` or `retainTrialThenRecurring`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length.
- `order.effectiveTime` (string | null)
  Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance.
- `order.applyAt` (string)
  Time when the new items are applied. - `now`: The items change at once. `prorated`, `renewalPolicy` and `effectiveTime` apply. - `nextRenewal`: The current items stay until the next renewal. The new items are billed on the next renewal invoice. `prorated` and `renewalPolicy` are ignored. Omit `effectiveTime`. If the request includes `effectiveTime`, a validation error is returned. `couponIds` and `usageSettings` are not supported. If the request includes either field, a validation error is returned. `interimOnly` must be `true`. A later request replaces the pending change. The pending change is locked when the next renewal invoice is issued. One-time sale items that are already on the order are retained. A one-time sale item cannot be added with `nextRenewal`.
  Enum: "now", "nextRenewal"
- `order.keepTrial` (boolean)
  Deprecated. Use the `retainTrialThenRecurring` value of `renewalPolicy` instead. Specifies if the order must retain its active trial. This field is only applicable if `renewalPolicy` is set to the deprecated value `retain`, or omitted. If `renewalPolicy` is omitted and this field is `true`, `renewalPolicy` is set to `retainTrialThenRecurring`.
- `order.interimOnly` (boolean)
  Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. With `applyAt` set to `nextRenewal`, this value must be `true`. To bill the next period now, issue the upcoming invoice of the order.
- `order.usageSettings` (array)
  Usage settings for items with metered billing.
- `order.usageSettings.productId` (string, required)
  ID of the product to use to transfer usage. If the `policy` value is `transfer`, and an existing item and a new item are of the same product, usage can be transferred to the new item. If a new item of the same product does not exist, or does not have a metered billing plan, this transfer is ignored.
  Example: prod_0YV7DENSVGDBW9S71XZNNYYQ0X
- `order.usageSettings.policy` (string, required)
  Policy for removed items that have a metered billing plan.
  Enum: "reset", "transfer"
- `order.autopay` (boolean | null)
  Specifies if payment attempts for the related order are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the order. If this value is `null`, the related order autopay is not affected.
- `order.shipping` (object)
  Shipping settings of the order. If this value is omitted, the order shipping is not affected.
- `order.deliveryAddress` (any)
  Delivery address of the order. If this value is `null`, the order delivery address is not affected.
- `order.billingAddress` (any)
  Billing address of the order. If this value is `null`, the order billing address is not affected.
- `type` (string, required)
  Type of the quote. When a quote is accepted, quote items and settings are applied to the order and the order is reactivated.
  Enum: "reactivation"
- `order.effectiveTime` (string | null)
  Date and time when the service period starts, unless the order is canceled but still active. If the order is still active, the order continues for the current service period. If this field is omitted, this value defaults to the current time.
- `order.renewalTime` (string | null)
  Date and time of the next order renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the order is canceled but still active, it is ignored and the next renewal occurs as scheduled.
- `order.paymentInstrumentId` (string | null)
  ID of the payment instrument. If this field is omitted, the order payment instrument remains unchanged.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `order.includeUnpaidInvoices` (boolean)
  Specifies whether the quote invoice includes items from outstanding unpaid and past-due invoices for the related order. When this value is `true`, the quote invoice includes charges for eligible items from those invoices. When the quote is accepted, only invoices included in the quote that remain unpaid or past due and can be voided are voided.
  Example: false

## 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 404 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 409 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 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.

# Quote accepted

Endpoint: POST quote-accepted
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `quoteId` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated"
- `_embedded` (object)
  Embedded objects related to the quote event.
- `_embedded.quote` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "quote"

# Quote canceled

Endpoint: POST quote-canceled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `quoteId` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated"
- `_embedded` (object)
  Embedded objects related to the quote event.
- `_embedded.quote` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "quote"

# Quote created

Endpoint: POST quote-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `quoteId` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated"
- `_embedded` (object)
  Embedded objects related to the quote event.
- `_embedded.quote` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "quote"

# Quote expired

Endpoint: POST quote-expired
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `quoteId` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated"
- `_embedded` (object)
  Embedded objects related to the quote event.
- `_embedded.quote` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "quote"

# Quote issued

Endpoint: POST quote-issued
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `quoteId` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated"
- `_embedded` (object)
  Embedded objects related to the quote event.
- `_embedded.quote` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "quote"

# Quote recalled

Endpoint: POST quote-recalled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `quoteId` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated"
- `_embedded` (object)
  Embedded objects related to the quote event.
- `_embedded.quote` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "quote"

# Quote rejected

Endpoint: POST quote-rejected
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `quoteId` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated"
- `_embedded` (object)
  Embedded objects related to the quote event.
- `_embedded.quote` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "quote"

# Quote updated

Endpoint: POST quote-updated
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `quoteId` (string)
  ID of the quote.
  Example: qt_01HXBZMEGPETPHJZH6V4RHBMA8
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated"
- `_embedded` (object)
  Embedded objects related to the quote event.
- `_embedded.quote` (any)
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "quote"

# Risk score

Use risk score operations to configure blocklists based on transaction risk factors.

- [GET /risk-score-rules](/docs/dev-docs/api/risk-score/getriskscorerules.md): Retrieves risk score rules.
- [GET /risk-score-rules/blocklists](/docs/dev-docs/api/risk-score/getriskscoreblocklistrules.md): Retrieves risk score blocklist rules.

# Retrieve risk score blocklist rules

Retrieves risk score blocklist rules.

Endpoint: GET /risk-score-rules/blocklists
Version: latest
Security: SecretApiKey, JWT

## Response 200 fields

- `permanentlyBlockList` (object | null)
  Items permanently blocklisted when TTL is equal to `0`.
- `permanentlyBlockList.address` (object)
  Rule that permanently blocklists items when TTL is equal to `0`.
- `permanentlyBlockList.address.riskScoreThreshold` (integer, required)
  Pass and fail threshold for the blocklist.
- `temporaryBlockList` (object | null)
  Items temporarily blocklisted when TTL is greater than `0`.
- `temporaryBlockList.address` (object)
  Items temporarily blocklisted when TTL is greater than `0`.
- `temporaryBlockList.address.riskScoreThreshold` (integer, required)
  Pass and fail threshold for the blocklist.
- `temporaryBlockList.address.ttl` (integer, required)
  Amount of seconds a blocklist exists before it expires. This value must be greater than 0.

## 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.

# Retrieve risk score rules

Retrieves risk score rules.

Endpoint: GET /risk-score-rules
Version: latest
Security: SecretApiKey, JWT

## Response 200 fields

- `isProxy` (object | null, required)
- `isProxy.value` (integer, required)
  Value added to the risk score of the transaction.
- `paymentInstrumentVelocity` (object | null, required)
- `paymentInstrumentVelocity.brackets` (array, required)
  Risk factor values range with corresponding risk score increment value. The first matched bracket is applied.
- `paymentInstrumentVelocity.brackets.end` (any)
- `paymentInstrumentVelocity.brackets.start` (any)

## 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.

# Authentication

# SDKs

# Shipping rates

Use these operations to manage shipping rates.
A shipping rate contains a filter and a pricing for a specific shipping destination.

- [GET /shipping-rates](/docs/dev-docs/api/shipping-rates/getshippingratecollection.md): Retrieves a list of shipping rates.
- [GET /shipping-rates/{id}](/docs/dev-docs/api/shipping-rates/getshippingrate.md): Retrieves a shipping rate with a specified ID.
- [PUT /shipping-rates/{id}](/docs/dev-docs/api/shipping-rates/putshippingrate.md): Creates a shipping rate with a specified ID.

# Retrieve a shipping rate

Retrieves a shipping rate with a specified ID.

Endpoint: GET /shipping-rates/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the shipping rate.
  Example: ship_rate_0YVDN408G4DQE9G1RV1QCFHJ3P
- `name` (string, required)
  Name of the shipping rate.
- `description` (string | null)
  Description of the shipping rate.
- `price` (number, required)
  Price of the shipping rate. If `price` is `0`, shipping is free.
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `filter` (string)
  Filter based on invoice properties that is used to determine when the rate is applicable. If no filters are used, the rate is always applicable.
  Example: deliveryAddress.country:US,CA,RU;amount:100..1000
- `status` (string)
  Status of the shipping rate. If `status` is `inactive` the shipping rate is not applied.
  Enum: "active", "inactive"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve shipping rates

Retrieves a list of shipping rates.

Endpoint: GET /shipping-rates
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the shipping rate.
  Example: ship_rate_0YVDN408G4DQE9G1RV1QCFHJ3P
- `name` (string, required)
  Name of the shipping rate.
- `description` (string | null)
  Description of the shipping rate.
- `price` (number, required)
  Price of the shipping rate. If `price` is `0`, shipping is free.
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `filter` (string)
  Filter based on invoice properties that is used to determine when the rate is applicable. If no filters are used, the rate is always applicable.
  Example: deliveryAddress.country:US,CA,RU;amount:100..1000
- `status` (string)
  Status of the shipping rate. If `status` is `inactive` the shipping rate is not applied.
  Enum: "active", "inactive"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a shipping rate with ID

Creates a shipping rate with a specified ID.

Endpoint: PUT /shipping-rates/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `name` (string, required)
  Name of the shipping rate.
- `description` (string | null)
  Description of the shipping rate.
- `price` (number, required)
  Price of the shipping rate. If `price` is `0`, shipping is free.
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `filter` (string)
  Filter based on invoice properties that is used to determine when the rate is applicable. If no filters are used, the rate is always applicable.
  Example: deliveryAddress.country:US,CA,RU;amount:100..1000
- `status` (string)
  Status of the shipping rate. If `status` is `inactive` the shipping rate is not applied.
  Enum: "active", "inactive"

## Response 200 fields

- `id` (string)
  ID of the shipping rate.
  Example: ship_rate_0YVDN408G4DQE9G1RV1QCFHJ3P
- `name` (string, required)
  Name of the shipping rate.
- `description` (string | null)
  Description of the shipping rate.
- `price` (number, required)
  Price of the shipping rate. If `price` is `0`, shipping is free.
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `filter` (string)
  Filter based on invoice properties that is used to determine when the rate is applicable. If no filters are used, the rate is always applicable.
  Example: deliveryAddress.country:US,CA,RU;amount:100..1000
- `status` (string)
  Status of the shipping rate. If `status` is `inactive` the shipping rate is not applied.
  Enum: "active", "inactive"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## Response 201 fields

- `id` (string)
  ID of the shipping rate.
  Example: ship_rate_0YVDN408G4DQE9G1RV1QCFHJ3P
- `name` (string, required)
  Name of the shipping rate.
- `description` (string | null)
  Description of the shipping rate.
- `price` (number, required)
  Price of the shipping rate. If `price` is `0`, shipping is free.
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `filter` (string)
  Filter based on invoice properties that is used to determine when the rate is applicable. If no filters are used, the rate is always applicable.
  Example: deliveryAddress.country:US,CA,RU;amount:100..1000
- `status` (string)
  Status of the shipping rate. If `status` is `inactive` the shipping rate is not applied.
  Enum: "active", "inactive"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Tags

Use tags to organize and categorize customers or KYC documents based on keywords.

- [GET /tags](/docs/dev-docs/api/tags/gettagcollection.md): Retrieves a list of tags.
- [POST /tags](/docs/dev-docs/api/tags/posttag.md): Creates a tag.
- [POST /tags/{tag}/customers/{customerId}](/docs/dev-docs/api/tags/posttagcustomer.md): Tags a customer.
- [DELETE /tags/{tag}/customers/{customerId}](/docs/dev-docs/api/tags/deletetagcustomer.md): Untags a customer.
- [POST /tags/{tag}/kyc-documents/{kycDocumentId}](/docs/dev-docs/api/tags/posttagkycdocument.md): Tags a KYC document.
- [DELETE /tags/{tag}/kyc-documents/{kycDocumentId}](/docs/dev-docs/api/tags/deletetagkycdocument.md): Untags a KYC document.
- [POST /tags/{tag}/aml-checks/{amlCheckId}](/docs/dev-docs/api/tags/posttagamlcheck.md): Tags an AML check. If an AML check in the list does not have the specified tag applied, the AML check is ignored.
- [DELETE /tags/{tag}/aml-checks/{amlCheckId}](/docs/dev-docs/api/tags/deletetagamlcheck.md): Untags an AML check. If an AML check in the list does not have the specified tag applied, the AML check is ignored.
- [GET /tags-rules](/docs/dev-docs/api/tags/gettagrulecollection.md): Retrieves a list of tags rules.
- [POST /tags-rules](/docs/dev-docs/api/tags/posttagrule.md): Creates a tags rule.
- [GET /tags-rules/{id}](/docs/dev-docs/api/tags/gettagrule.md): Retrieves a tags rule with a specified ID.
- [PUT /tags-rules/{id}](/docs/dev-docs/api/tags/puttagrule.md): Creates a tags rule with a specified ID.

# Untag an AML check

Untags an AML check.

If an AML check in the list does not have the specified tag applied, the AML check is ignored.

Endpoint: DELETE /tags/{tag}/aml-checks/{amlCheckId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `tag` (string, required)
  Name of the tag.
- `amlCheckId` (string, required)
  ID of the AML check to tag.

## 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 404 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 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.

# Untag a customer

Untags a customer.

Endpoint: DELETE /tags/{tag}/customers/{customerId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `tag` (string, required)
  Name of the tag.
- `customerId` (string, required)
  ID of the customer.

## 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 404 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 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.

# Untag a KYC document

Untags a KYC document.

Endpoint: DELETE /tags/{tag}/kyc-documents/{kycDocumentId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `tag` (string, required)
  Name of the tag.
- `kycDocumentId` (string, required)
  ID of the KYC document.

## 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 404 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 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.

# Retrieve tags

Retrieves a list of tags.

Endpoint: GET /tags
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Retrieve a tags rule

Retrieves a tags rule with a specified ID.

Endpoint: GET /tags-rules/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  ID of the rule.
  Example: tag_rule_0YVCEE5APAD7V84MK3P9CCJVYY
- `name` (string, required)
  Name of the rule.
- `eventType` (string, required)
  Type of event.
  Enum: "aml-list-possibly-matched", "application-instance-disabled", "application-instance-enabled", "autodeposit-lookup-performed", "balance-transaction-settled", "coupon-application-removed", "coupon-applied", "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified", "coupon-redeemed", "coupon-redemption-canceled", "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-tax-number-validated", "customer-updated", "data-export-completed", "data-export-failed", "dispute-created", "dispute-modified", "experian-check-performed", "gateway-account-downtime-ended", "gateway-account-downtime-started", "gateway-account-limit-reached", "gateway-account-onboarding-completed", "gateway-account-onboarding-failed", "gateway-account-requested", "hard-usage-limit-reached", "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided", "kyc-document-accepted", "kyc-document-archived", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled", "lead-source-changed", "offsite-payment-completed", "order-abandon-reminder", "order-abandoned", "order-completed", "order-delinquency-reached", "order-change-applied", "order-change-canceled", "order-change-created", "organization-tax-number-validated", "payment-card-created", "payment-card-expiration-reminder", "payment-card-expiration-reminder-1-day", "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expired", "payment-instrument-modified", "payout-request-batch-created", "payout-request-batch-deleted", "payout-request-batch-modified", "payout-request-canceled", "payout-request-changed", "payout-request-created", "payout-request-fulfilled", "payout-request-modified", "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated", "ready-to-pay-requested", "renewal-invoice-issued", "renewal-invoice-payment-canceled", "renewal-invoice-payment-declined", "risk-score-changed", "soft-usage-limit-reached", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-created", "subscription-downgraded", "subscription-items-changed", "subscription-modified", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-quantity-filled-limit-reached", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewal-reminder-1-day", "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewed", "subscription-resumed", "subscription-trial-converted", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-timeout-resolved", "transaction-voided", "trial-usage-limit-reached", "waiting-gateway-transaction-completed"
- `filter` (string | null)
  Filter that determines whether to tag or untag. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filters](https://api-reference.rebilly.com/#section/Using-filter-with-collections).
- `addTags` (array, required)
  List of tags to add to the customer.
- `removeTags` (array, required)
  List of tags to remove for the customer.
- `status` (string)
  Status of the rule.
  Enum: "active", "inactive"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related resource links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve tags rules list

Retrieves a list of tags rules.

Endpoint: GET /tags-rules
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the rule.
  Example: tag_rule_0YVCEE5APAD7V84MK3P9CCJVYY
- `name` (string, required)
  Name of the rule.
- `eventType` (string, required)
  Type of event.
  Enum: "aml-list-possibly-matched", "application-instance-disabled", "application-instance-enabled", "autodeposit-lookup-performed", "balance-transaction-settled", "coupon-application-removed", "coupon-applied", "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified", "coupon-redeemed", "coupon-redemption-canceled", "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-tax-number-validated", "customer-updated", "data-export-completed", "data-export-failed", "dispute-created", "dispute-modified", "experian-check-performed", "gateway-account-downtime-ended", "gateway-account-downtime-started", "gateway-account-limit-reached", "gateway-account-onboarding-completed", "gateway-account-onboarding-failed", "gateway-account-requested", "hard-usage-limit-reached", "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided", "kyc-document-accepted", "kyc-document-archived", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled", "lead-source-changed", "offsite-payment-completed", "order-abandon-reminder", "order-abandoned", "order-completed", "order-delinquency-reached", "order-change-applied", "order-change-canceled", "order-change-created", "organization-tax-number-validated", "payment-card-created", "payment-card-expiration-reminder", "payment-card-expiration-reminder-1-day", "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expired", "payment-instrument-modified", "payout-request-batch-created", "payout-request-batch-deleted", "payout-request-batch-modified", "payout-request-canceled", "payout-request-changed", "payout-request-created", "payout-request-fulfilled", "payout-request-modified", "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated", "ready-to-pay-requested", "renewal-invoice-issued", "renewal-invoice-payment-canceled", "renewal-invoice-payment-declined", "risk-score-changed", "soft-usage-limit-reached", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-created", "subscription-downgraded", "subscription-items-changed", "subscription-modified", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-quantity-filled-limit-reached", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewal-reminder-1-day", "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewed", "subscription-resumed", "subscription-trial-converted", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-timeout-resolved", "transaction-voided", "trial-usage-limit-reached", "waiting-gateway-transaction-completed"
- `filter` (string | null)
  Filter that determines whether to tag or untag. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filters](https://api-reference.rebilly.com/#section/Using-filter-with-collections).
- `addTags` (array, required)
  List of tags to add to the customer.
- `removeTags` (array, required)
  List of tags to remove for the customer.
- `status` (string)
  Status of the rule.
  Enum: "active", "inactive"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related resource links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a tag

Creates a tag.

Endpoint: POST /tags
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"

## Response 201 fields

- `id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 409 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 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.

# Tag an AML check

Tags an AML check.

If an AML check in the list does not have the specified tag applied, the AML check is ignored.

Endpoint: POST /tags/{tag}/aml-checks/{amlCheckId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `tag` (string, required)
  Name of the tag.
- `amlCheckId` (string, required)
  ID of the AML check to tag.

## 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 404 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 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.

# Tag a customer

Tags a customer.

Endpoint: POST /tags/{tag}/customers/{customerId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `tag` (string, required)
  Name of the tag.
- `customerId` (string, required)
  ID of the customer.

## 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 404 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 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.

# Tag a KYC document

Tags a KYC document.

Endpoint: POST /tags/{tag}/kyc-documents/{kycDocumentId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `tag` (string, required)
  Name of the tag.
- `kycDocumentId` (string, required)
  ID of the KYC document.

## 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 404 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 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.

# Create tags rule

Creates a tags rule.

Endpoint: POST /tags-rules
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `name` (string, required)
  Name of the rule.
- `eventType` (string, required)
  Type of event.
  Enum: "aml-list-possibly-matched", "application-instance-disabled", "application-instance-enabled", "autodeposit-lookup-performed", "balance-transaction-settled", "coupon-application-removed", "coupon-applied", "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified", "coupon-redeemed", "coupon-redemption-canceled", "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-tax-number-validated", "customer-updated", "data-export-completed", "data-export-failed", "dispute-created", "dispute-modified", "experian-check-performed", "gateway-account-downtime-ended", "gateway-account-downtime-started", "gateway-account-limit-reached", "gateway-account-onboarding-completed", "gateway-account-onboarding-failed", "gateway-account-requested", "hard-usage-limit-reached", "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided", "kyc-document-accepted", "kyc-document-archived", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled", "lead-source-changed", "offsite-payment-completed", "order-abandon-reminder", "order-abandoned", "order-completed", "order-delinquency-reached", "order-change-applied", "order-change-canceled", "order-change-created", "organization-tax-number-validated", "payment-card-created", "payment-card-expiration-reminder", "payment-card-expiration-reminder-1-day", "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expired", "payment-instrument-modified", "payout-request-batch-created", "payout-request-batch-deleted", "payout-request-batch-modified", "payout-request-canceled", "payout-request-changed", "payout-request-created", "payout-request-fulfilled", "payout-request-modified", "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated", "ready-to-pay-requested", "renewal-invoice-issued", "renewal-invoice-payment-canceled", "renewal-invoice-payment-declined", "risk-score-changed", "soft-usage-limit-reached", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-created", "subscription-downgraded", "subscription-items-changed", "subscription-modified", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-quantity-filled-limit-reached", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewal-reminder-1-day", "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewed", "subscription-resumed", "subscription-trial-converted", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-timeout-resolved", "transaction-voided", "trial-usage-limit-reached", "waiting-gateway-transaction-completed"
- `filter` (string | null)
  Filter that determines whether to tag or untag. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filters](https://api-reference.rebilly.com/#section/Using-filter-with-collections).
- `addTags` (array, required)
  List of tags to add to the customer.
- `removeTags` (array, required)
  List of tags to remove for the customer.
- `status` (string)
  Status of the rule.
  Enum: "active", "inactive"

## Response 201 fields

- `id` (string)
  ID of the rule.
  Example: tag_rule_0YVCEE5APAD7V84MK3P9CCJVYY
- `name` (string, required)
  Name of the rule.
- `eventType` (string, required)
  Type of event.
  Enum: "aml-list-possibly-matched", "application-instance-disabled", "application-instance-enabled", "autodeposit-lookup-performed", "balance-transaction-settled", "coupon-application-removed", "coupon-applied", "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified", "coupon-redeemed", "coupon-redemption-canceled", "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-tax-number-validated", "customer-updated", "data-export-completed", "data-export-failed", "dispute-created", "dispute-modified", "experian-check-performed", "gateway-account-downtime-ended", "gateway-account-downtime-started", "gateway-account-limit-reached", "gateway-account-onboarding-completed", "gateway-account-onboarding-failed", "gateway-account-requested", "hard-usage-limit-reached", "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided", "kyc-document-accepted", "kyc-document-archived", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled", "lead-source-changed", "offsite-payment-completed", "order-abandon-reminder", "order-abandoned", "order-completed", "order-delinquency-reached", "order-change-applied", "order-change-canceled", "order-change-created", "organization-tax-number-validated", "payment-card-created", "payment-card-expiration-reminder", "payment-card-expiration-reminder-1-day", "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expired", "payment-instrument-modified", "payout-request-batch-created", "payout-request-batch-deleted", "payout-request-batch-modified", "payout-request-canceled", "payout-request-changed", "payout-request-created", "payout-request-fulfilled", "payout-request-modified", "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated", "ready-to-pay-requested", "renewal-invoice-issued", "renewal-invoice-payment-canceled", "renewal-invoice-payment-declined", "risk-score-changed", "soft-usage-limit-reached", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-created", "subscription-downgraded", "subscription-items-changed", "subscription-modified", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-quantity-filled-limit-reached", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewal-reminder-1-day", "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewed", "subscription-resumed", "subscription-trial-converted", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-timeout-resolved", "transaction-voided", "trial-usage-limit-reached", "waiting-gateway-transaction-completed"
- `filter` (string | null)
  Filter that determines whether to tag or untag. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filters](https://api-reference.rebilly.com/#section/Using-filter-with-collections).
- `addTags` (array, required)
  List of tags to add to the customer.
- `removeTags` (array, required)
  List of tags to remove for the customer.
- `status` (string)
  Status of the rule.
  Enum: "active", "inactive"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related resource links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a tags rule with specified ID

Creates a tags rule with a specified ID.

Endpoint: PUT /tags-rules/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `name` (string, required)
  Name of the rule.
- `eventType` (string, required)
  Type of event.
  Enum: "aml-list-possibly-matched", "application-instance-disabled", "application-instance-enabled", "autodeposit-lookup-performed", "balance-transaction-settled", "coupon-application-removed", "coupon-applied", "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified", "coupon-redeemed", "coupon-redemption-canceled", "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-tax-number-validated", "customer-updated", "data-export-completed", "data-export-failed", "dispute-created", "dispute-modified", "experian-check-performed", "gateway-account-downtime-ended", "gateway-account-downtime-started", "gateway-account-limit-reached", "gateway-account-onboarding-completed", "gateway-account-onboarding-failed", "gateway-account-requested", "hard-usage-limit-reached", "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided", "kyc-document-accepted", "kyc-document-archived", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled", "lead-source-changed", "offsite-payment-completed", "order-abandon-reminder", "order-abandoned", "order-completed", "order-delinquency-reached", "order-change-applied", "order-change-canceled", "order-change-created", "organization-tax-number-validated", "payment-card-created", "payment-card-expiration-reminder", "payment-card-expiration-reminder-1-day", "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expired", "payment-instrument-modified", "payout-request-batch-created", "payout-request-batch-deleted", "payout-request-batch-modified", "payout-request-canceled", "payout-request-changed", "payout-request-created", "payout-request-fulfilled", "payout-request-modified", "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated", "ready-to-pay-requested", "renewal-invoice-issued", "renewal-invoice-payment-canceled", "renewal-invoice-payment-declined", "risk-score-changed", "soft-usage-limit-reached", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-created", "subscription-downgraded", "subscription-items-changed", "subscription-modified", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-quantity-filled-limit-reached", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewal-reminder-1-day", "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewed", "subscription-resumed", "subscription-trial-converted", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-timeout-resolved", "transaction-voided", "trial-usage-limit-reached", "waiting-gateway-transaction-completed"
- `filter` (string | null)
  Filter that determines whether to tag or untag. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filters](https://api-reference.rebilly.com/#section/Using-filter-with-collections).
- `addTags` (array, required)
  List of tags to add to the customer.
- `removeTags` (array, required)
  List of tags to remove for the customer.
- `status` (string)
  Status of the rule.
  Enum: "active", "inactive"

## Response 200 fields

- `id` (string)
  ID of the rule.
  Example: tag_rule_0YVCEE5APAD7V84MK3P9CCJVYY
- `name` (string, required)
  Name of the rule.
- `eventType` (string, required)
  Type of event.
  Enum: "aml-list-possibly-matched", "application-instance-disabled", "application-instance-enabled", "autodeposit-lookup-performed", "balance-transaction-settled", "coupon-application-removed", "coupon-applied", "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified", "coupon-redeemed", "coupon-redemption-canceled", "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-tax-number-validated", "customer-updated", "data-export-completed", "data-export-failed", "dispute-created", "dispute-modified", "experian-check-performed", "gateway-account-downtime-ended", "gateway-account-downtime-started", "gateway-account-limit-reached", "gateway-account-onboarding-completed", "gateway-account-onboarding-failed", "gateway-account-requested", "hard-usage-limit-reached", "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided", "kyc-document-accepted", "kyc-document-archived", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled", "lead-source-changed", "offsite-payment-completed", "order-abandon-reminder", "order-abandoned", "order-completed", "order-delinquency-reached", "order-change-applied", "order-change-canceled", "order-change-created", "organization-tax-number-validated", "payment-card-created", "payment-card-expiration-reminder", "payment-card-expiration-reminder-1-day", "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expired", "payment-instrument-modified", "payout-request-batch-created", "payout-request-batch-deleted", "payout-request-batch-modified", "payout-request-canceled", "payout-request-changed", "payout-request-created", "payout-request-fulfilled", "payout-request-modified", "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated", "ready-to-pay-requested", "renewal-invoice-issued", "renewal-invoice-payment-canceled", "renewal-invoice-payment-declined", "risk-score-changed", "soft-usage-limit-reached", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-created", "subscription-downgraded", "subscription-items-changed", "subscription-modified", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-quantity-filled-limit-reached", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewal-reminder-1-day", "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewed", "subscription-resumed", "subscription-trial-converted", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-timeout-resolved", "transaction-voided", "trial-usage-limit-reached", "waiting-gateway-transaction-completed"
- `filter` (string | null)
  Filter that determines whether to tag or untag. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filters](https://api-reference.rebilly.com/#section/Using-filter-with-collections).
- `addTags` (array, required)
  List of tags to add to the customer.
- `removeTags` (array, required)
  List of tags to remove for the customer.
- `status` (string)
  Status of the rule.
  Enum: "active", "inactive"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related resource links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## Response 201 fields

- `id` (string)
  ID of the rule.
  Example: tag_rule_0YVCEE5APAD7V84MK3P9CCJVYY
- `name` (string, required)
  Name of the rule.
- `eventType` (string, required)
  Type of event.
  Enum: "aml-list-possibly-matched", "application-instance-disabled", "application-instance-enabled", "autodeposit-lookup-performed", "balance-transaction-settled", "coupon-application-removed", "coupon-applied", "coupon-expiration-modified", "coupon-expired", "coupon-issued", "coupon-modified", "coupon-redeemed", "coupon-redemption-canceled", "credit-memo-applied", "credit-memo-created", "credit-memo-modified", "credit-memo-partially-applied", "credit-memo-voided", "customer-created", "customer-merged", "customer-one-time-password-requested", "customer-redirected-offsite", "customer-returned", "customer-tax-number-validated", "customer-updated", "data-export-completed", "data-export-failed", "dispute-created", "dispute-modified", "experian-check-performed", "gateway-account-downtime-ended", "gateway-account-downtime-started", "gateway-account-limit-reached", "gateway-account-onboarding-completed", "gateway-account-onboarding-failed", "gateway-account-requested", "hard-usage-limit-reached", "invoice-abandoned", "invoice-created", "invoice-issued", "invoice-modified", "invoice-paid", "invoice-partially-paid", "invoice-partially-refunded", "invoice-past-due", "invoice-past-due-reminder", "invoice-past-due-reminder-15-days", "invoice-past-due-reminder-30-days", "invoice-past-due-reminder-60-days", "invoice-past-due-reminder-90-days", "invoice-refunded", "invoice-reissued", "invoice-tax-calculation-failed", "invoice-voided", "kyc-document-accepted", "kyc-document-archived", "kyc-document-created", "kyc-document-modified", "kyc-document-rejected", "kyc-document-reviewed", "kyc-request-attempted", "kyc-request-failed", "kyc-request-fulfilled", "kyc-request-partially-fulfilled", "lead-source-changed", "offsite-payment-completed", "order-abandon-reminder", "order-abandoned", "order-completed", "order-delinquency-reached", "order-change-applied", "order-change-canceled", "order-change-created", "organization-tax-number-validated", "payment-card-created", "payment-card-expiration-reminder", "payment-card-expiration-reminder-1-day", "payment-card-expiration-reminder-14-days", "payment-card-expiration-reminder-7-days", "payment-card-expired", "payment-instrument-modified", "payout-request-batch-created", "payout-request-batch-deleted", "payout-request-batch-modified", "payout-request-canceled", "payout-request-changed", "payout-request-created", "payout-request-fulfilled", "payout-request-modified", "quote-accepted", "quote-canceled", "quote-created", "quote-expired", "quote-issued", "quote-recalled", "quote-rejected", "quote-updated", "ready-to-pay-requested", "renewal-invoice-issued", "renewal-invoice-payment-canceled", "renewal-invoice-payment-declined", "risk-score-changed", "soft-usage-limit-reached", "subscription-activated", "subscription-canceled", "subscription-churned", "subscription-created", "subscription-downgraded", "subscription-items-changed", "subscription-modified", "subscription-pause-created", "subscription-pause-modified", "subscription-pause-revoked", "subscription-paused", "subscription-quantity-filled-limit-reached", "subscription-reactivated", "subscription-renewal-reminder", "subscription-renewal-reminder-1-day", "subscription-renewal-reminder-30-days", "subscription-renewal-reminder-7-days", "subscription-renewed", "subscription-resumed", "subscription-trial-converted", "subscription-trial-end-reminder", "subscription-trial-ended", "subscription-upgraded", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-partially-refunded", "transaction-refunded", "transaction-timeout-resolved", "transaction-voided", "trial-usage-limit-reached", "waiting-gateway-transaction-completed"
- `filter` (string | null)
  Filter that determines whether to tag or untag. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filters](https://api-reference.rebilly.com/#section/Using-filter-with-collections).
- `addTags` (array, required)
  List of tags to add to the customer.
- `removeTags` (array, required)
  List of tags to remove for the customer.
- `status` (string)
  Status of the rule.
  Enum: "active", "inactive"
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related resource links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Transactions

Use these operations to:

- set up payment instruments for payments
- authorize and hold funds
- capture funds
- make payments
- make payouts
- refund transactions.

- [POST /ready-to-pay](/docs/dev-docs/api/transactions/postreadytopay.md): Retrieves available payment methods for a specific transaction or purchase. The order in which the payment methods are displayed to the customer should be the same as the order in the response. The li
- [POST /transactions](/docs/dev-docs/api/transactions/posttransaction.md): Creates a transaction of type `sale`, `authorize` or `setup`. Use this operation for the following transactions. #### Real-time decision and response In this transaction, you send a request and inspec
- [GET /transactions](/docs/dev-docs/api/transactions/gettransactioncollection.md): Retrieves a list of transactions.
- [GET /transactions/{id}](/docs/dev-docs/api/transactions/gettransaction.md): Retrieves a transaction with a specified ID.
- [PATCH /transactions/{id}](/docs/dev-docs/api/transactions/patchtransaction.md): Updates the custom fields of a transaction with a specified ID.
- [POST /payouts](/docs/dev-docs/api/transactions/postpayout.md): Creates a transaction of type `credit`.
- [POST /transactions/{id}/query](/docs/dev-docs/api/transactions/posttransactionquery.md): Queries a transaction with a specified ID. The query interacts with the related gateway account to obtain the result, amount, and currency. If after analysis, the transaction must be updated, see [Upd
- [POST /transactions/{id}/update](/docs/dev-docs/api/transactions/posttransactionupdate.md): Updates the status of a transaction with a specified ID to `completed`, with a specified `result` and optional currency and amount values.
- [POST /transactions/{id}/refund](/docs/dev-docs/api/transactions/posttransactionrefund.md): Refunds a transaction with a specified ID. The refund is in the same currency as the original transaction.
- [GET /payout-requests](/docs/dev-docs/api/transactions/getpayoutrequestcollection.md): Retrieves a list of payout requests. Filter by: `id`, `customerId`, `websiteId`, `batchId`, `status`, `blocked`, `blockReason`, `splitReason`, `createdTime`, `updatedTime`, `currency`, `amount`.
- [POST /payout-requests](/docs/dev-docs/api/transactions/postpayoutrequest.md): Creates a payout request. In the response, the `selectPaymentInstrumentUrl` field is used to redirect the customer to select a preferred payment instrument. After a payment instrument is selected, the
- [GET /payout-requests/{id}](/docs/dev-docs/api/transactions/getpayoutrequest.md): Retrieves a payout request with a specified ID.
- [PATCH /payout-requests/{id}](/docs/dev-docs/api/transactions/patchpayoutrequest.md): Updates a payout request with a specified ID. Use this operation to update the status, description, and blocked state.
- [GET /payout-requests/{id}/payment-instruments](/docs/dev-docs/api/transactions/getpayoutrequestpaymentinstruments.md): Retrieves the payment gateway and a list of payment instruments that are associated with a payout request with a specified ID.
- [POST /payout-request-auto-allocations](/docs/dev-docs/api/transactions/postpayoutrequestautoallocations.md): Creates allocations for a payout request using automatically selected payment instruments and gateway accounts. Only the payout request ID is required. When an allocation is created, the payout reques
- [GET /payout-request-allocations](/docs/dev-docs/api/transactions/getpayoutrequestallocationcollection.md): Retrieves a list of payout request allocations.
- [POST /payout-request-allocations](/docs/dev-docs/api/transactions/postpayoutrequestallocation.md): Creates an allocation for a payout request. When an allocation is created, the payout request transitions to the `in-progress` status, and the allocation starts in the `pending` status. The allocation
- [PATCH /payout-request-allocations/{id}](/docs/dev-docs/api/transactions/patchpayoutrequestallocation.md): Updates the status of a payout request allocation with a specified ID. Only the `processing` and `canceled` statuses can be set with this operation. The `processing` status transitions an allocation f
- [GET /payout-request-batches](/docs/dev-docs/api/transactions/getpayoutrequestbatchcollection.md): Retrieves a list of payout request batches.
- [POST customer-redirected-offsite](/docs/dev-docs/api/transactions/customer-redirected-offsite.md)
- [POST customer-returned](/docs/dev-docs/api/transactions/customer-returned.md)
- [POST gateway-account-requested](/docs/dev-docs/api/transactions/gateway-account-requested.md)
- [POST offsite-payment-completed](/docs/dev-docs/api/transactions/offsite-payment-completed.md)
- [POST payout-request-batch-created](/docs/dev-docs/api/transactions/payout-request-batch-created.md)
- [POST payout-request-batch-deleted](/docs/dev-docs/api/transactions/payout-request-batch-deleted.md)
- [POST payout-request-batch-modified](/docs/dev-docs/api/transactions/payout-request-batch-modified.md)
- [POST payout-request-canceled](/docs/dev-docs/api/transactions/payout-request-canceled.md)
- [POST payout-request-changed](/docs/dev-docs/api/transactions/payout-request-changed.md)
- [POST payout-request-created](/docs/dev-docs/api/transactions/payout-request-created.md)
- [POST payout-request-fulfilled](/docs/dev-docs/api/transactions/payout-request-fulfilled.md)
- [POST payout-request-modified](/docs/dev-docs/api/transactions/payout-request-modified.md)
- [POST ready-to-pay-requested](/docs/dev-docs/api/transactions/ready-to-pay-requested.md)
- [POST risk-score-changed](/docs/dev-docs/api/transactions/risk-score-changed.md)
- [POST transaction-amount-discrepancy-found](/docs/dev-docs/api/transactions/transaction-amount-discrepancy-found.md)
- [POST transaction-declined](/docs/dev-docs/api/transactions/transaction-declined.md)
- [POST transaction-discrepancy-found](/docs/dev-docs/api/transactions/transaction-discrepancy-found.md)
- [POST transaction-process-requested](/docs/dev-docs/api/transactions/transaction-process-requested.md)
- [POST transaction-processed](/docs/dev-docs/api/transactions/transaction-processed.md)
- [POST transaction-reconciled](/docs/dev-docs/api/transactions/transaction-reconciled.md)
- [POST transaction-partially-refunded](/docs/dev-docs/api/transactions/transaction-partially-refunded.md)
- [POST transaction-refunded](/docs/dev-docs/api/transactions/transaction-refunded.md)
- [POST transaction-voided](/docs/dev-docs/api/transactions/transaction-voided.md)
- [POST transaction-timeout-resolved](/docs/dev-docs/api/transactions/transaction-timeout-resolved.md)
- [POST waiting-gateway-transaction-completed](/docs/dev-docs/api/transactions/waiting-gateway-transaction-completed.md)
- [POST autodeposit-lookup-performed](/docs/dev-docs/api/transactions/autodeposit-lookup-performed.md)

# Transactions timeline

Use transaction timelines to maintain an audit trail of changes and activity for each transaction.

- [GET /transactions/{id}/timeline](/docs/dev-docs/api/transactions-timeline/gettransactiontimelinecollection.md): Retrieves a list of transaction timeline messages.
- [POST /transactions/{id}/timeline](/docs/dev-docs/api/transactions-timeline/posttransactiontimeline.md): Creates a transaction timeline comment.
- [GET /transactions/{id}/timeline/{messageId}](/docs/dev-docs/api/transactions-timeline/gettransactiontimeline.md): Retrieves a timeline message with a specified ID.
- [DELETE /transactions/{id}/timeline/{messageId}](/docs/dev-docs/api/transactions-timeline/deletetransactiontimeline.md): Deletes a transaction timeline message with a specified ID.
- [GET /payout-requests/{id}/timeline](/docs/dev-docs/api/transactions-timeline/getpayoutrequesttimelinecollection.md): Retrieves a list of payout request timeline messages.

# Delete a transaction timeline message

Deletes a transaction timeline message with a specified ID.

Endpoint: DELETE /transactions/{id}/timeline/{messageId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `messageId` (string, required)
  ID of the transaction timeline message.

## 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 404 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 409 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 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.

# Retrieve payout request timeline messages

Retrieves a list of payout request timeline messages.

Endpoint: GET /payout-requests/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string, required)
  ID of the message.
  Example: tlm_0YVDMDE2BMC6KBB5MX76RF6T80
- `type` (string, required)
  Type of timeline event.
  Enum: "timeline-comment-created", "payout-request-created", "payout-request-ready", "payout-request-returned-to-pending", "payout-request-approved", "payout-request-approval-undone", "payout-request-allocated", "payout-request-processing-started", "payout-request-fulfilled", "payout-request-canceled", "payout-request-reversed", "payout-request-blocked", "payout-request-unblocked", "payout-request-added-to-batch", "payout-request-removed-from-batch"
- `occurredTime` (string, required)
  Read-only timestamp in ISO 8601 date-time format.
- `triggeredBy` (string, required)
  Who or what triggered this event.
  Enum: "rebilly", "app", "direct-api"
- `message` (string, required)
  Human-readable message describing the timeline event.
- `extraData` (object, required)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com

## 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 404 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 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.

# Retrieve a transaction Timeline message

Retrieves a timeline message with a specified ID.

Endpoint: GET /transactions/{id}/timeline/{messageId}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.
- `messageId` (string, required)
  ID of the transaction timeline message.

## Response 200 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "amount-adjusted", "blocklist-matched", "bump-offer-accepted", "bump-offer-presented", "bump-offer-rejected", "customer-redirected-offsite", "customer-returned", "dcc-offer-accepted", "dcc-offer-forced", "dcc-offer-presented", "dcc-offer-rejected", "dispute-changed", "dispute-created", "dispute-forfeited", "dispute-lost", "dispute-responded", "dispute-won", "gateway-connection-failed", "gateway-connection-timed-out", "gateway-response-received", "offsite-transaction-completed", "quickbooks-payment-created", "quickbooks-refund-receipt-created", "quickbooks-transaction-task-failed", "risk-score-changed", "timeline-comment-created", "transaction-abandoned", "transaction-amount-discrepancy-found", "transaction-approved", "transaction-canceled", "transaction-capture-delayed", "transaction-captured", "transaction-declined", "transaction-discrepancy-found", "transaction-disputed", "transaction-initiated", "transaction-payment-method-changed", "transaction-partially-refunded", "transaction-process-requested", "transaction-processed", "transaction-queried", "transaction-reconciled", "transaction-refunded", "transaction-retried", "transaction-rules-processed", "transaction-scheduled-time-changed", "transaction-timeout-resolved", "transaction-updated", "transaction-voided", "transaction-waiting-gateway", "transaction-waiting-gateway-completed"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline message.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Contents of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 404 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.

# Retrieve transaction timeline messages

Retrieves a list of transaction timeline messages.

Endpoint: GET /transactions/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "amount-adjusted", "blocklist-matched", "bump-offer-accepted", "bump-offer-presented", "bump-offer-rejected", "customer-redirected-offsite", "customer-returned", "dcc-offer-accepted", "dcc-offer-forced", "dcc-offer-presented", "dcc-offer-rejected", "dispute-changed", "dispute-created", "dispute-forfeited", "dispute-lost", "dispute-responded", "dispute-won", "gateway-connection-failed", "gateway-connection-timed-out", "gateway-response-received", "offsite-transaction-completed", "quickbooks-payment-created", "quickbooks-refund-receipt-created", "quickbooks-transaction-task-failed", "risk-score-changed", "timeline-comment-created", "transaction-abandoned", "transaction-amount-discrepancy-found", "transaction-approved", "transaction-canceled", "transaction-capture-delayed", "transaction-captured", "transaction-declined", "transaction-discrepancy-found", "transaction-disputed", "transaction-initiated", "transaction-payment-method-changed", "transaction-partially-refunded", "transaction-process-requested", "transaction-processed", "transaction-queried", "transaction-reconciled", "transaction-refunded", "transaction-retried", "transaction-rules-processed", "transaction-scheduled-time-changed", "transaction-timeout-resolved", "transaction-updated", "transaction-voided", "transaction-waiting-gateway", "transaction-waiting-gateway-completed"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline message.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Contents of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a transaction timeline comment

Creates a transaction timeline comment.

Endpoint: POST /transactions/{id}/timeline
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `message` (string)
  Contents of the timeline message.

## Response 201 fields

- `id` (string)
  ID of the timeline message.
  Example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC
- `type` (string)
  Type of timeline message.
  Enum: "amount-adjusted", "blocklist-matched", "bump-offer-accepted", "bump-offer-presented", "bump-offer-rejected", "customer-redirected-offsite", "customer-returned", "dcc-offer-accepted", "dcc-offer-forced", "dcc-offer-presented", "dcc-offer-rejected", "dispute-changed", "dispute-created", "dispute-forfeited", "dispute-lost", "dispute-responded", "dispute-won", "gateway-connection-failed", "gateway-connection-timed-out", "gateway-response-received", "offsite-transaction-completed", "quickbooks-payment-created", "quickbooks-refund-receipt-created", "quickbooks-transaction-task-failed", "risk-score-changed", "timeline-comment-created", "transaction-abandoned", "transaction-amount-discrepancy-found", "transaction-approved", "transaction-canceled", "transaction-capture-delayed", "transaction-captured", "transaction-declined", "transaction-discrepancy-found", "transaction-disputed", "transaction-initiated", "transaction-payment-method-changed", "transaction-partially-refunded", "transaction-process-requested", "transaction-processed", "transaction-queried", "transaction-reconciled", "transaction-refunded", "transaction-retried", "transaction-rules-processed", "transaction-scheduled-time-changed", "transaction-timeout-resolved", "transaction-updated", "transaction-voided", "transaction-waiting-gateway", "transaction-waiting-gateway-completed"
- `triggeredBy` (string)
  Specifies who, or what, triggered the timeline message.
  Enum: "rebilly", "app", "direct-api"
- `message` (string)
  Contents of the timeline message.
- `extraData` (object)
  Additional data.
- `extraData.actions` (array)
  Actions available for a timeline message. If no actions are available, this field is empty.
- `extraData.actions.action` (string)
  Enum: "ruleset-restore"
- `extraData.actions.redemptionId` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `extraData.actions.version` (integer)
  Version of the ruleset to restore.
- `extraData.tables` (array)
  Table data that is attached to the timeline message.
- `extraData.tables.type` (string)
  Enum: "list", "one-columns", "two-columns", "three-columns"
- `extraData.tables.title` (string)
  Data table title.
- `extraData.tables.footer` (string)
  Data table footer.
- `extraData.author` (object)
  Author of the timeline message.
- `extraData.author.userFullName` (string)
  Full name of the author.
- `extraData.author.userId` (string)
  ID of the author.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `extraData.links` (array)
  Links that are attached to a timeline message.
- `extraData.links.resourceType` (string)
  Enum: "kyc-document", "invoice", "subscription", "transaction", "email-message", "dispute", "coupon", "external", "payout-request-batch"
- `extraData.links.placeholder` (string)
  Example: KYC document
- `extraData.links.externalUrl` (string)
  Example: http://example.com
- `occurredTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Autodeposit lookup performed

Endpoint: POST autodeposit-lookup-performed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `autodepositLookupResponse` (object)
  Autodeposit lookup response.
- `autodepositLookupResponse.enrolled` (boolean)
  Specifies whether the autodeposit lookup is enrolled or not.
- `autodepositLookupResponse.firstName` (string | null)
  First name from the autodeposit lookup response.
- `autodepositLookupResponse.lastName` (string | null)
  Last name from the autodeposit lookup response.
- `autodepositLookupResponse.middleName` (string | null)
  Middle name from the autodeposit lookup response.
- `autodepositLookupResponse.companyName` (string | null)
  Company name from the autodeposit lookup response.
- `autodepositLookupResponse.tradeName` (string | null)
  Trade name from the autodeposit lookup response.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the autodeposit lookup event.
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "customer", "transaction"

# Customer redirected offsite

Endpoint: POST customer-redirected-offsite
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `redirectUrl` (string)
  URL customer redirected to.
- `ipAddress` (string)
  Customer's IP address.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "customer-redirected-offsite", "customer-returned"
- `_embedded` (object)
  Embedded objects related to the customer redirect event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Customer returned

Endpoint: POST customer-returned
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `redirectUrl` (string)
  URL customer redirected to.
- `ipAddress` (string)
  Customer's IP address.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "customer-redirected-offsite", "customer-returned"
- `_embedded` (object)
  Embedded objects related to the customer redirect event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Gateway account requested

Endpoint: POST gateway-account-requested
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Retrieve a payout request

Retrieves a payout request with a specified ID.

Endpoint: GET /payout-requests/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `id` (string)
  Unique resource ID.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `splitFromPayoutRequestId` (string | null)
  ID of the payout request from which this request is split, or `null` if this request is not created by a split operation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `mergedIntoPayoutRequestId` (string | null)
  ID of the payout request that this request is merged into, or `null` if it is not merged into another request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number, required)
  Amount of the payout.
- `availableAmount` (number)
  Available payout request amount that has not been allocated.
- `description` (string | null)
  Description of payout request.
- `status` (string)
  Status of the request.
  Enum: "pending", "ready", "approved", "in-progress", "fulfilled", "canceled", "split", "merged"
- `blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `blockReason` (any)
- `splitReason` (any)
- `batchId` (string | null)
  ID of the payout request batch that contains this request.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `batchName` (string | null)
  Short name of the payout request batch that contains this request. This value is `null` if the request is not in a batch or the batch has no name.
  Example: Weekly CAD payouts
- `batchDescription` (string | null)
  Description of the payout request batch that contains this request. This value is `null` if the request is not in a batch or the batch has no description.
  Example: Batch processed on 2024-01-15
- `selectPaymentInstrumentUrl` (string)
  URL for the customer to select a preferred payment instrument.
- `allocations` (array)
  List of payout request allocations for the payout request.
- `allocations.id` (string)
  ID of the resource.
  Example: pra_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.payoutRequestId` (string, required)
  ID of the payout request associated with this allocation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.batchId` (string | null)
  ID of the payout request batch that contains the payout request for this allocation.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.paymentInstrumentId` (string, required)
  ID of the payment instrument allocated to the payout request.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.paymentMethod` (string)
  Payment method of the allocation.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `allocations.gatewayAccountId` (string, required)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.gatewayName` (string)
  Name of the gateway account to use for processing this allocation.
  Example: TestProcessor
- `allocations.gatewayPayoutInstruction` (string | null)
  Payout configuration of the gateway account that processes this allocation.
  Enum: "all", "covered-payout", "approved-payment", "none", null
- `allocations.amount` (number, required)
  Amount allocated to this payment instrument.
- `allocations.exposureAmount` (number)
  Approved sales and captures minus approved payouts for the customer, gateway account, and payment instrument, in the allocation currency. The calculation includes only transactions created within the last 180 days. The value is `0` when there are no transactions in the last 180 days, the gateway account is inactive, or its `readyToPayoutInstruction` is `none`.
  Example: 2
- `allocations.status` (string)
  Status of this payout request allocation.
  Enum: "pending", "queued", "processing", "waiting-completion", "completed", "failed", "canceled", "declined"
- `allocations.transactionId` (string | null)
  ID of the transaction that is created when processing this allocation, if applicable.
  Example: txn_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.transactionResult` (string | null)
  Result of the transaction created for this allocation, if applicable.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown", null
- `allocations.transactionStatus` (string | null)
  Status of the transaction created for this allocation, if applicable.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund", null
- `allocations.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `allocations.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `allocations._links` (array)
  Related links.
- `allocations._links.href` (string)
  Link URL.
- `allocations._links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "gatewayAccount", "payoutRequest", "paymentInstrument"
- `selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success
- `cancellationReason` (object | null)
  Reason the payout request is canceled.
- `cancellationReason.canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "system"
- `cancellationReason.description` (string)
  Description of the cancellation reason in free form.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "splitFrom", "mergedInto", "paymentInstrument"

## 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 404 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.

# Retrieve payout request allocations

Retrieves a list of payout request allocations.

Endpoint: GET /payout-request-allocations
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the resource.
  Example: pra_0YVDMDE2BMC6KBB5MX76RF6T80
- `payoutRequestId` (string, required)
  ID of the payout request associated with this allocation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `batchId` (string | null)
  ID of the payout request batch that contains the payout request for this allocation.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `paymentInstrumentId` (string, required)
  ID of the payment instrument allocated to the payout request.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `paymentMethod` (string)
  Payment method of the allocation.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `gatewayAccountId` (string, required)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `gatewayName` (string)
  Name of the gateway account to use for processing this allocation.
  Example: TestProcessor
- `gatewayPayoutInstruction` (string | null)
  Payout configuration of the gateway account that processes this allocation.
  Enum: "all", "covered-payout", "approved-payment", "none", null
- `amount` (number, required)
  Amount allocated to this payment instrument.
- `exposureAmount` (number)
  Approved sales and captures minus approved payouts for the customer, gateway account, and payment instrument, in the allocation currency. The calculation includes only transactions created within the last 180 days. The value is `0` when there are no transactions in the last 180 days, the gateway account is inactive, or its `readyToPayoutInstruction` is `none`.
  Example: 2
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `status` (string)
  Status of this payout request allocation.
  Enum: "pending", "queued", "processing", "waiting-completion", "completed", "failed", "canceled", "declined"
- `transactionId` (string | null)
  ID of the transaction that is created when processing this allocation, if applicable.
  Example: txn_0YVB8KPKNXCBR9EDX7JHSED75N
- `transactionResult` (string | null)
  Result of the transaction created for this allocation, if applicable.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown", null
- `transactionStatus` (string | null)
  Status of the transaction created for this allocation, if applicable.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund", null
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "gatewayAccount", "payoutRequest", "paymentInstrument"

## 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.

# Retrieve payout request batches

Retrieves a list of payout request batches.

Endpoint: GET /payout-request-batches
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  ID of the batch.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `userId` (string)
  ID of the user who created the batch.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `user` (object)
  Creator of the batch.
- `user.id` (string, required)
  User ID of the creator.
  Example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4
- `user.name` (string, required)
  First and last name of the creator.
  Example: John Doe
- `totalCount` (integer)
  Total number of payout requests in the batch.
  Example: 10
- `customerCount` (integer)
  Number of unique customers in the batch.
  Example: 3
- `totalAmountByCurrency` (array)
  Total payout amount grouped by currency in the batch.
- `totalAmountByCurrency.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `totalAmountByCurrency.amount` (number, required)
- `name` (string | null)
  Name that is used to identify the batch. This value is `null` if the batch has no name.
  Example: Weekly CAD payouts
- `description` (string | null)
  Optional description of the batch.
  Example: Batch processed on 2024-01-15
- `allocationOrder` (array | null)
  Order for auto-allocation of payout requests in this batch. When set, this field overrides the organization-level allocation order during batch auto-allocation. Must contain `selected-payment-instrument` exactly once. Valid values: `payment-card` (payment cards), `alternative-payment-methods` (catch-all for alternative payment methods), `selected-payment-instrument` (customer-requested instrument), or any payment method API name (for example, `paypal`, `Interac-eTransfer`).
  Example: ["paypal","Interac-eTransfer","payment-card","alternative-payment-methods","selected-payment-instrument"]
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "payoutRequests"

## 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 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.

# Retrieve payout requests

Retrieves a list of payout requests.

Filter by: `id`, `customerId`, `websiteId`, `batchId`, `status`, `blocked`, `blockReason`, `splitReason`, `createdTime`, `updatedTime`, `currency`, `amount`.

Endpoint: GET /payout-requests
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.

## Response 200 fields

- `id` (string)
  Unique resource ID.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `splitFromPayoutRequestId` (string | null)
  ID of the payout request from which this request is split, or `null` if this request is not created by a split operation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `mergedIntoPayoutRequestId` (string | null)
  ID of the payout request that this request is merged into, or `null` if it is not merged into another request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number, required)
  Amount of the payout.
- `availableAmount` (number)
  Available payout request amount that has not been allocated.
- `description` (string | null)
  Description of payout request.
- `status` (string)
  Status of the request.
  Enum: "pending", "ready", "approved", "in-progress", "fulfilled", "canceled", "split", "merged"
- `blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `blockReason` (any)
- `splitReason` (any)
- `batchId` (string | null)
  ID of the payout request batch that contains this request.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `batchName` (string | null)
  Short name of the payout request batch that contains this request. This value is `null` if the request is not in a batch or the batch has no name.
  Example: Weekly CAD payouts
- `batchDescription` (string | null)
  Description of the payout request batch that contains this request. This value is `null` if the request is not in a batch or the batch has no description.
  Example: Batch processed on 2024-01-15
- `selectPaymentInstrumentUrl` (string)
  URL for the customer to select a preferred payment instrument.
- `allocations` (array)
  List of payout request allocations for the payout request.
- `allocations.id` (string)
  ID of the resource.
  Example: pra_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.payoutRequestId` (string, required)
  ID of the payout request associated with this allocation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.batchId` (string | null)
  ID of the payout request batch that contains the payout request for this allocation.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.paymentInstrumentId` (string, required)
  ID of the payment instrument allocated to the payout request.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.paymentMethod` (string)
  Payment method of the allocation.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `allocations.gatewayAccountId` (string, required)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.gatewayName` (string)
  Name of the gateway account to use for processing this allocation.
  Example: TestProcessor
- `allocations.gatewayPayoutInstruction` (string | null)
  Payout configuration of the gateway account that processes this allocation.
  Enum: "all", "covered-payout", "approved-payment", "none", null
- `allocations.amount` (number, required)
  Amount allocated to this payment instrument.
- `allocations.exposureAmount` (number)
  Approved sales and captures minus approved payouts for the customer, gateway account, and payment instrument, in the allocation currency. The calculation includes only transactions created within the last 180 days. The value is `0` when there are no transactions in the last 180 days, the gateway account is inactive, or its `readyToPayoutInstruction` is `none`.
  Example: 2
- `allocations.status` (string)
  Status of this payout request allocation.
  Enum: "pending", "queued", "processing", "waiting-completion", "completed", "failed", "canceled", "declined"
- `allocations.transactionId` (string | null)
  ID of the transaction that is created when processing this allocation, if applicable.
  Example: txn_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.transactionResult` (string | null)
  Result of the transaction created for this allocation, if applicable.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown", null
- `allocations.transactionStatus` (string | null)
  Status of the transaction created for this allocation, if applicable.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund", null
- `allocations.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `allocations.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `allocations._links` (array)
  Related links.
- `allocations._links.href` (string)
  Link URL.
- `allocations._links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "gatewayAccount", "payoutRequest", "paymentInstrument"
- `selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success
- `cancellationReason` (object | null)
  Reason the payout request is canceled.
- `cancellationReason.canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "system"
- `cancellationReason.description` (string)
  Description of the cancellation reason in free form.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "splitFrom", "mergedInto", "paymentInstrument"

## 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.

# Retrieve associated payment instruments

Retrieves the payment gateway and a list of payment instruments that are associated with a payout request with a specified ID.

Endpoint: GET /payout-requests/{id}/payment-instruments
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 200 fields

- `paymentInstrumentId` (string)
  ID of the payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `gatewayName` (string | null)
  Name of the payment gateway and payment instrument to use for the payout. This field is empty if the requested payment instrument has not been used yet.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `gatewayAccountId` (string)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `gatewayPayoutInstruction` (string | null)
  Payout configuration for the gateway account.
  Enum: "all", "covered-payout", "approved-payment", "none", null
- `exposureAmount` (number)
  Approved sales and captures minus approved payouts for the specified gateway account and payment instrument in the last 180 days. Allocations on the same gateway account and payment instrument that are pending, queued, processing, or waiting-completion are also subtracted. The resulting amount is the usable exposure for ranking during auto-allocation.
- `previousAllocatedAmount` (number)
  Total amount of allocated credit for the payout request for the specified gateway and instrument.
- `lastPaymentTime` (string | null)
  Date and time when the last payment is created for the gateway and the payment instrument. Payments are the result of `sale` or `capture` transactions.
- `lastPayoutTime` (string | null)
  Date and time when the last payout is created for the gateway and the payment instrument.

## 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 404 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.

# Retrieve a transaction

Retrieves a transaction with a specified ID.

Endpoint: GET /transactions/{id}
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Header parameters

- `Accept` (string)
  Type of response media.

## Response 200 fields

- `id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `amount` (number)
  Total amount of the transaction.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `childTransactions` (array)
  IDs of child transactions.
- `invoiceIds` (array)
  Related invoice IDs.
- `subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `3ds.server` (string)
  Name of the 3D Secure server.
- `3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `isRetry` (boolean)
  Specifies if a transaction is a retry.
- `billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `description` (string)
  Description of the payment.
- `requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `processedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `gateway` (object)
  Related gateway information.
- `gateway.response` (object)
  Gateway response.
- `gateway.response.code` (string | null)
  Gateway response code.
- `gateway.response.message` (string | null)
  Gateway response message.
- `gateway.response.type` (string | null)
  Gateway response type.
- `gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `gateway.avsResponse.code` (string | null)
  Response code.
- `gateway.avsResponse.message` (string | null)
  Response message.
- `gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `gateway.cvvResponse.code` (string | null)
  Response code.
- `gateway.cvvResponse.message` (string | null)
  Response message.
- `gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `method` (string)
  Payment method. > **Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `paymentInstrument` (object)
- `hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `dcc.base` (object)
- `dcc.base.amount` (number, required)
  Example: 10
- `dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `riskScore` (integer)
  Risk score for the transaction.
- `riskMetadata` (any)
- `notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `limits` (object | null)
  Transaction amount limit information.
- `limits.amount` (number)
  Limit amount.
  Example: 275.35
- `limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.parentTransaction` (object)
- `_embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.gatewayAccount` (object)
- `_embedded.customer` (object)
- `_embedded.leadSource` (object)
- `_embedded.website` (object)
- `_embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.organization` (object)
- `_embedded.dispute` (object)
- `_embedded.paymentCard` (object)
- `_embedded.bankAccount` (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 404 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.

# Retrieve transactions

Retrieves a list of transactions.

Endpoint: GET /transactions
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Query parameters

- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `q` (string)
  Use this field to perform a partial search of text fields.
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `amount` (number)
  Total amount of the transaction.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `childTransactions` (array)
  IDs of child transactions.
- `invoiceIds` (array)
  Related invoice IDs.
- `subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `3ds.server` (string)
  Name of the 3D Secure server.
- `3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `isRetry` (boolean)
  Specifies if a transaction is a retry.
- `billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `description` (string)
  Description of the payment.
- `requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `processedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `gateway` (object)
  Related gateway information.
- `gateway.response` (object)
  Gateway response.
- `gateway.response.code` (string | null)
  Gateway response code.
- `gateway.response.message` (string | null)
  Gateway response message.
- `gateway.response.type` (string | null)
  Gateway response type.
- `gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `gateway.avsResponse.code` (string | null)
  Response code.
- `gateway.avsResponse.message` (string | null)
  Response message.
- `gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `gateway.cvvResponse.code` (string | null)
  Response code.
- `gateway.cvvResponse.message` (string | null)
  Response message.
- `gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `paymentInstrument` (object)
- `hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `dcc.base` (object)
- `dcc.base.amount` (number, required)
  Example: 10
- `dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `riskScore` (integer)
  Risk score for the transaction.
- `riskMetadata` (any)
- `notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `limits` (object | null)
  Transaction amount limit information.
- `limits.amount` (number)
  Limit amount.
  Example: 275.35
- `limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.parentTransaction` (object)
- `_embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.gatewayAccount` (object)
- `_embedded.customer` (object)
- `_embedded.leadSource` (object)
- `_embedded.website` (object)
- `_embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.organization` (object)
- `_embedded.dispute` (object)
- `_embedded.paymentCard` (object)
- `_embedded.bankAccount` (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.

# Offsite payment completed

Endpoint: POST offsite-payment-completed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Update a payout request

Updates a payout request with a specified ID. 
Use this operation to update the status, description, and blocked state.

Endpoint: PATCH /payout-requests/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `status` (string)
  Status of the request.
  Enum: "pending", "ready", "approved", "canceled"
- `canceledBy` (string)
  Initiator of the cancellation. Required when `status` is `canceled`.
  Enum: "customer", "merchant", "system"
- `cancellationDescription` (string | null)
  Description of the cancellation reason.
- `description` (string | null)
  Description of the payout request.
- `blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. This field can only be applied to payout requests in the following statuses: `pending`, `ready`, `approved`, or `in-progress`. When a payout request is blocked, it cannot: - Transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. - Have allocations created. - Start allocation processing. - Cancel pending allocations. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `blockReason` (any)
- `blockDescription` (string | null)
  Additional description for blocking the payout request.

## Response 200 fields

- `id` (string)
  Unique resource ID.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `splitFromPayoutRequestId` (string | null)
  ID of the payout request from which this request is split, or `null` if this request is not created by a split operation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `mergedIntoPayoutRequestId` (string | null)
  ID of the payout request that this request is merged into, or `null` if it is not merged into another request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number, required)
  Amount of the payout.
- `availableAmount` (number)
  Available payout request amount that has not been allocated.
- `description` (string | null)
  Description of payout request.
- `status` (string)
  Status of the request.
  Enum: "pending", "ready", "approved", "in-progress", "fulfilled", "canceled", "split", "merged"
- `blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `blockReason` (any)
- `splitReason` (any)
- `batchId` (string | null)
  ID of the payout request batch that contains this request.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `batchName` (string | null)
  Short name of the payout request batch that contains this request. This value is `null` if the request is not in a batch or the batch has no name.
  Example: Weekly CAD payouts
- `batchDescription` (string | null)
  Description of the payout request batch that contains this request. This value is `null` if the request is not in a batch or the batch has no description.
  Example: Batch processed on 2024-01-15
- `selectPaymentInstrumentUrl` (string)
  URL for the customer to select a preferred payment instrument.
- `allocations` (array)
  List of payout request allocations for the payout request.
- `allocations.id` (string)
  ID of the resource.
  Example: pra_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.payoutRequestId` (string, required)
  ID of the payout request associated with this allocation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.batchId` (string | null)
  ID of the payout request batch that contains the payout request for this allocation.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.paymentInstrumentId` (string, required)
  ID of the payment instrument allocated to the payout request.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.paymentMethod` (string)
  Payment method of the allocation.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `allocations.gatewayAccountId` (string, required)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.gatewayName` (string)
  Name of the gateway account to use for processing this allocation.
  Example: TestProcessor
- `allocations.gatewayPayoutInstruction` (string | null)
  Payout configuration of the gateway account that processes this allocation.
  Enum: "all", "covered-payout", "approved-payment", "none", null
- `allocations.amount` (number, required)
  Amount allocated to this payment instrument.
- `allocations.exposureAmount` (number)
  Approved sales and captures minus approved payouts for the customer, gateway account, and payment instrument, in the allocation currency. The calculation includes only transactions created within the last 180 days. The value is `0` when there are no transactions in the last 180 days, the gateway account is inactive, or its `readyToPayoutInstruction` is `none`.
  Example: 2
- `allocations.status` (string)
  Status of this payout request allocation.
  Enum: "pending", "queued", "processing", "waiting-completion", "completed", "failed", "canceled", "declined"
- `allocations.transactionId` (string | null)
  ID of the transaction that is created when processing this allocation, if applicable.
  Example: txn_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.transactionResult` (string | null)
  Result of the transaction created for this allocation, if applicable.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown", null
- `allocations.transactionStatus` (string | null)
  Status of the transaction created for this allocation, if applicable.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund", null
- `allocations.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `allocations.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `allocations._links` (array)
  Related links.
- `allocations._links.href` (string)
  Link URL.
- `allocations._links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "gatewayAccount", "payoutRequest", "paymentInstrument"
- `selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success
- `cancellationReason` (object | null)
  Reason the payout request is canceled.
- `cancellationReason.canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "system"
- `cancellationReason.description` (string)
  Description of the cancellation reason in free form.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "splitFrom", "mergedInto", "paymentInstrument"

## 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 404 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 409 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 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.

# Update allocation status

Updates the status of a payout request allocation with a specified ID.

Only the `processing` and `canceled` statuses can be set with this operation.
The `processing` status transitions an allocation from `pending` when payment processing begins.
The `canceled` status stops the allocation before it is processed.

The `completed`, `waiting-completion` and `failed` statuses are set automatically during transaction processing.
Allocations are always created in the `pending` status.

Endpoint: PATCH /payout-request-allocations/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `status` (string, required)
  New status for the allocation. Use `processing` to move an allocation from `pending` to `processing`, which begins payment processing. Use `canceled` to stop the allocation before it is processed.
  Enum: "processing", "canceled"

## Response 200 fields

- `id` (string)
  ID of the resource.
  Example: pra_0YVDMDE2BMC6KBB5MX76RF6T80
- `payoutRequestId` (string, required)
  ID of the payout request associated with this allocation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `batchId` (string | null)
  ID of the payout request batch that contains the payout request for this allocation.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `paymentInstrumentId` (string, required)
  ID of the payment instrument allocated to the payout request.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `paymentMethod` (string)
  Payment method of the allocation.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `gatewayAccountId` (string, required)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `gatewayName` (string)
  Name of the gateway account to use for processing this allocation.
  Example: TestProcessor
- `gatewayPayoutInstruction` (string | null)
  Payout configuration of the gateway account that processes this allocation.
  Enum: "all", "covered-payout", "approved-payment", "none", null
- `amount` (number, required)
  Amount allocated to this payment instrument.
- `exposureAmount` (number)
  Approved sales and captures minus approved payouts for the customer, gateway account, and payment instrument, in the allocation currency. The calculation includes only transactions created within the last 180 days. The value is `0` when there are no transactions in the last 180 days, the gateway account is inactive, or its `readyToPayoutInstruction` is `none`.
  Example: 2
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `status` (string)
  Status of this payout request allocation.
  Enum: "pending", "queued", "processing", "waiting-completion", "completed", "failed", "canceled", "declined"
- `transactionId` (string | null)
  ID of the transaction that is created when processing this allocation, if applicable.
  Example: txn_0YVB8KPKNXCBR9EDX7JHSED75N
- `transactionResult` (string | null)
  Result of the transaction created for this allocation, if applicable.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown", null
- `transactionStatus` (string | null)
  Status of the transaction created for this allocation, if applicable.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund", null
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "gatewayAccount", "payoutRequest", "paymentInstrument"

## 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 404 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 409 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 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.

# Update a transaction

Updates the custom fields of a transaction with a specified ID.

Endpoint: PATCH /transactions/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}

## Response 200 fields

- `id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `amount` (number)
  Total amount of the transaction.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `childTransactions` (array)
  IDs of child transactions.
- `invoiceIds` (array)
  Related invoice IDs.
- `subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `3ds.server` (string)
  Name of the 3D Secure server.
- `3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `isRetry` (boolean)
  Specifies if a transaction is a retry.
- `billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `description` (string)
  Description of the payment.
- `requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `processedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `gateway` (object)
  Related gateway information.
- `gateway.response` (object)
  Gateway response.
- `gateway.response.code` (string | null)
  Gateway response code.
- `gateway.response.message` (string | null)
  Gateway response message.
- `gateway.response.type` (string | null)
  Gateway response type.
- `gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `gateway.avsResponse.code` (string | null)
  Response code.
- `gateway.avsResponse.message` (string | null)
  Response message.
- `gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `gateway.cvvResponse.code` (string | null)
  Response code.
- `gateway.cvvResponse.message` (string | null)
  Response message.
- `gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `method` (string)
  Payment method. > **Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `paymentInstrument` (object)
- `hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `dcc.base` (object)
- `dcc.base.amount` (number, required)
  Example: 10
- `dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `riskScore` (integer)
  Risk score for the transaction.
- `riskMetadata` (any)
- `notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `limits` (object | null)
  Transaction amount limit information.
- `limits.amount` (number)
  Limit amount.
  Example: 275.35
- `limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.parentTransaction` (object)
- `_embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.gatewayAccount` (object)
- `_embedded.customer` (object)
- `_embedded.leadSource` (object)
- `_embedded.website` (object)
- `_embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.organization` (object)
- `_embedded.dispute` (object)
- `_embedded.paymentCard` (object)
- `_embedded.bankAccount` (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 404 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 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.

# Payout request batch created

Endpoint: POST payout-request-batch-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `batchId` (string, required)
  ID of the batch of payout requests.
  Example: preq_batch_0YVDMDE2BMC6KBB5MX76RF6T80
- `eventType` (string, required)
  Type of event that triggered the webhook.
  Enum: "payout-request-batch-created", "payout-request-batch-modified"
- `occurredTime` (string, required)
  Date and time when the batch change occurred.
- `_embedded` (object, required)
  Embedded objects related to the batch event for payout requests.
- `_embedded.payoutRequestBatch` (object, required)
- `_embedded.payoutRequestBatch.name` (string | null)
  Name that is used to identify the batch. This value is `null` if the batch has no name.
  Example: Weekly CAD payouts
- `_embedded.payoutRequestBatch.description` (string | null)
  Optional description of the batch.
  Example: Batch processed on 2024-01-15
- `_embedded.payoutRequestBatch.allocationOrder` (array | null)
  Order for auto-allocation of payout requests in this batch. When set, this field overrides the organization-level allocation order during batch auto-allocation. Must contain `selected-payment-instrument` exactly once. Valid values: `payment-card` (payment cards), `alternative-payment-methods` (catch-all for alternative payment methods), `selected-payment-instrument` (customer-requested instrument), or any payment method API name (for example, `paypal`, `Interac-eTransfer`).
  Example: ["paypal","Interac-eTransfer","payment-card","alternative-payment-methods","selected-payment-instrument"]
- `_links` (array, required)
  Links to related resources.
- `_links.href` (string, required)
  URL of the link.
- `_links.rel` (string, required)
  Type of relationship for the link.
  Enum: "payoutRequestBatch"

# Payout request batch deleted

Endpoint: POST payout-request-batch-deleted
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `batchId` (string, required)
  ID of the deleted batch of payout requests.
  Example: preq_batch_0YVDMDE2BMC6KBB5MX76RF6T80
- `eventType` (string, required)
  Type of event that triggered the webhook.
  Enum: "payout-request-batch-deleted"
- `occurredTime` (string, required)
  Date and time of the batch deletion.

# Payout request batch modified

Endpoint: POST payout-request-batch-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `batchId` (string, required)
  ID of the batch of payout requests.
  Example: preq_batch_0YVDMDE2BMC6KBB5MX76RF6T80
- `eventType` (string, required)
  Type of event that triggered the webhook.
  Enum: "payout-request-batch-created", "payout-request-batch-modified"
- `occurredTime` (string, required)
  Date and time when the batch change occurred.
- `_embedded` (object, required)
  Embedded objects related to the batch event for payout requests.
- `_embedded.payoutRequestBatch` (object, required)
- `_embedded.payoutRequestBatch.name` (string | null)
  Name that is used to identify the batch. This value is `null` if the batch has no name.
  Example: Weekly CAD payouts
- `_embedded.payoutRequestBatch.description` (string | null)
  Optional description of the batch.
  Example: Batch processed on 2024-01-15
- `_embedded.payoutRequestBatch.allocationOrder` (array | null)
  Order for auto-allocation of payout requests in this batch. When set, this field overrides the organization-level allocation order during batch auto-allocation. Must contain `selected-payment-instrument` exactly once. Valid values: `payment-card` (payment cards), `alternative-payment-methods` (catch-all for alternative payment methods), `selected-payment-instrument` (customer-requested instrument), or any payment method API name (for example, `paypal`, `Interac-eTransfer`).
  Example: ["paypal","Interac-eTransfer","payment-card","alternative-payment-methods","selected-payment-instrument"]
- `_links` (array, required)
  Links to related resources.
- `_links.href` (string, required)
  URL of the link.
- `_links.rel` (string, required)
  Type of relationship for the link.
  Enum: "payoutRequestBatch"

# Payout request canceled

Endpoint: POST payout-request-canceled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `payoutRequestId` (string)
  ID of the payout request.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payout-request-created", "payout-request-modified", "payout-request-canceled", "payout-request-fulfilled"
- `_embedded` (object)
  Embedded objects related to the payout request event.
- `_embedded.payoutRequest` (object)
- `_embedded.payoutRequest.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.payoutRequest.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.payoutRequest.paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.payoutRequest.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.payoutRequest.amount` (number, required)
  Amount of the payout.
- `_embedded.payoutRequest.description` (string | null)
  Description of payout request.
- `_embedded.payoutRequest.blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `_embedded.payoutRequest.blockReason` (any)
- `_embedded.payoutRequest.splitReason` (any)
- `_embedded.payoutRequest.selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "payoutRequest"

# Payout request changed

Endpoint: POST payout-request-changed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `eventType` (string, required)
  Webhook event type.
- `changeType` (string, required)
  Specific payout request change that triggered the webhook.
  Enum: "payout-request-created", "payout-request-modified", "payout-request-blocked", "payout-request-unblocked", "payout-request-ready", "payout-request-returned-to-pending", "payout-request-approved", "payout-request-approval-undone", "payout-request-processing-started", "payout-request-fulfilled", "payout-request-payment-instrument-selected", "payout-request-allocated", "payout-request-split", "payout-request-merged", "payout-request-canceled"
- `change` (object, required)
  Details specific to the payout request or allocation change that triggered the webhook.
- `change.previousStatus` (string)
  Resource status before the change.
- `change.status` (string)
  Resource status after the change.
- `change.blockReason` (string)
  Reason for blocking the payout request.
- `change.blockDescription` (string | null)
  Additional information about the block.
- `change.splitReason` (string)
  Reason for splitting the payout request.
- `change.splitDescription` (string | null)
  Additional information about the split.
- `change.canceledBy` (string)
  Party that canceled the payout request.
- `change.description` (string)
  Additional information about the cancellation.
- `change.amount` (number)
  Amount of the change in the resource currency.
- `change.remainingAllocationAmount` (number)
  Payout request amount that remains available for allocation.
- `change.totalFulfilled` (number)
  Total fulfilled amount in the payout request currency.
- `change.paymentInstrumentId` (string)
  ID of the payment instrument.
- `change.allocationId` (string)
  ID of the payout request allocation.
- `change.transactionId` (string | null)
  ID of the transaction, or `null` when no transaction is available.
- `change.mergedIntoPayoutRequestId` (string)
  ID of the payout request that received the merged amount.
- `change.replayTransferId` (string | null)
  ID of the transfer that reserves the payout funds. This value is `null` if no transfer exists.
- `change.isAutoAllocation` (boolean)
  Specifies whether the allocation is created automatically.
- `change.replacedByRemainder` (boolean)
  Specifies whether a replacement payout request contains the remaining amount.
- `payoutRequestId` (string, required)
  ID of the payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `customerId` (string, required)
  ID of the customer associated with the payout request.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `occurredTime` (string, required)
  Date and time when the change occurred.
- `_embedded` (object, required)
- `_embedded.payoutRequest` (object, required)
- `_embedded.payoutRequest.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.payoutRequest.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.payoutRequest.paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.payoutRequest.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.payoutRequest.amount` (number, required)
  Amount of the payout.
- `_embedded.payoutRequest.description` (string | null)
  Description of payout request.
- `_embedded.payoutRequest.blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `_embedded.payoutRequest.blockReason` (any)
- `_embedded.payoutRequest.splitReason` (any)
- `_embedded.payoutRequest.selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success
- `_embedded.customer` (object, required)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_links` (array, required)
- `_links.href` (string, required)
  URL of the related payout request.
- `_links.rel` (string, required)
- `changeType` (string, required)
  Specific payout request allocation change that triggered the webhook.
  Enum: "payout-request-allocation-created", "payout-request-allocation-queued", "payout-request-allocation-returned-to-pending", "payout-request-allocation-processing-started", "payout-request-allocation-waiting-completion", "payout-request-allocation-completed", "payout-request-allocation-declined", "payout-request-allocation-failed", "payout-request-allocation-canceled"
- `allocationId` (string, required)
  ID of the changed payout request allocation.
  Example: pra_0YVDMDE2BMC6KBB5MX76RF6T80
- `_embedded.allocation` (object, required)
- `_embedded.allocation.paymentInstrumentId` (string, required)
  ID of the payment instrument allocated to the payout request.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.allocation.paymentMethod` (string)
  Payment method of the allocation.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.allocation.gatewayAccountId` (string, required)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.allocation.gatewayName` (string)
  Name of the gateway account to use for processing this allocation.
  Example: TestProcessor
- `_embedded.allocation.amount` (number, required)
  Amount allocated to this payment instrument.
- `_embedded.allocation.status` (string)
  Status of this payout request allocation.
  Enum: "pending", "queued", "processing", "waiting-completion", "completed", "failed", "canceled", "declined"
- `_links.href` (string, required)
  URL of the related resource.
- `_links.rel` (string, required)
  Type of related resource.
  Enum: "allocation", "payoutRequest"

# Payout request created

Endpoint: POST payout-request-created
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `payoutRequestId` (string)
  ID of the payout request.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payout-request-created", "payout-request-modified", "payout-request-canceled", "payout-request-fulfilled"
- `_embedded` (object)
  Embedded objects related to the payout request event.
- `_embedded.payoutRequest` (object)
- `_embedded.payoutRequest.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.payoutRequest.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.payoutRequest.paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.payoutRequest.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.payoutRequest.amount` (number, required)
  Amount of the payout.
- `_embedded.payoutRequest.description` (string | null)
  Description of payout request.
- `_embedded.payoutRequest.blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `_embedded.payoutRequest.blockReason` (any)
- `_embedded.payoutRequest.splitReason` (any)
- `_embedded.payoutRequest.selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "payoutRequest"

# Payout request fulfilled

Endpoint: POST payout-request-fulfilled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `payoutRequestId` (string)
  ID of the payout request.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payout-request-created", "payout-request-modified", "payout-request-canceled", "payout-request-fulfilled"
- `_embedded` (object)
  Embedded objects related to the payout request event.
- `_embedded.payoutRequest` (object)
- `_embedded.payoutRequest.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.payoutRequest.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.payoutRequest.paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.payoutRequest.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.payoutRequest.amount` (number, required)
  Amount of the payout.
- `_embedded.payoutRequest.description` (string | null)
  Description of payout request.
- `_embedded.payoutRequest.blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `_embedded.payoutRequest.blockReason` (any)
- `_embedded.payoutRequest.splitReason` (any)
- `_embedded.payoutRequest.selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "payoutRequest"

# Payout request modified

Endpoint: POST payout-request-modified
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `payoutRequestId` (string)
  ID of the payout request.
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "payout-request-created", "payout-request-modified", "payout-request-canceled", "payout-request-fulfilled"
- `_embedded` (object)
  Embedded objects related to the payout request event.
- `_embedded.payoutRequest` (object)
- `_embedded.payoutRequest.websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.payoutRequest.customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.payoutRequest.paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.payoutRequest.currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.payoutRequest.amount` (number, required)
  Amount of the payout.
- `_embedded.payoutRequest.description` (string | null)
  Description of payout request.
- `_embedded.payoutRequest.blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `_embedded.payoutRequest.blockReason` (any)
- `_embedded.payoutRequest.splitReason` (any)
- `_embedded.payoutRequest.selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "payoutRequest"

# Create a credit transaction

Creates a transaction of type `credit`.

Endpoint: POST /payouts
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Request fields

- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number, required)
  Amount of the transaction.
  Example: 97.97
- `invoiceIds` (array | null)
  Array of invoice IDs.
- `paymentInstruction` (any)
- `billingAddress` (any)
  Billing address. If this value is not supplied, the billing address associated with the payment instrument is used. If no billing address is associated with the payment instrument, the customer's billing address is used.
- `requestId` (string | null)
  Use this field to prevent duplicate transaction requests that may occur within a short period of time. If a duplicate request is sent with the same `requestId`, it is ignored to prevent double-billing. This value must be unique within a 24-hour period. > **Important:** This field is recommended.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `gatewayAccountId` (string | null)
  ID of the gateway account. Rebilly selects the payment gateway account for the transaction based on transaction properties and the rules configuration of the `gateway-account-requested` event. To prevent Rebilly from making the gateway account selection, supply a gateway account ID in this field. Only use this field if you intend to override the settings.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `description` (string | null)
  Payment description.
- `notificationUrl` (string | null)
  URL where a server-to-server `POST` notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `redirectUrl` (string | null)
  URL to redirect the end-user when an offsite transaction is completed. Defaults to the configured URL of the website. You may use `{id}` or `{result}` as placeholders in the URL, these are replaced the with the transaction ID and result accordingly.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `riskMetadata` (object)
  Risk metadata used for 3D Secure and risk scoring.
- `riskMetadata.ipAddress` (string | null)
  Customer's IP address.
  Example: 93.92.91.90
- `riskMetadata.fingerprint` (string | null)
  Customer's device fingerprint. A device fingerprint is a unique token that is used to identify the customer. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more.
  Example: pIUt3xbgX3l9g3YDiLbx
- `riskMetadata.httpHeaders` (any)
- `riskMetadata.browserData` (object | null)
  Browser data used for 3D Secure and risk scoring.
- `riskMetadata.browserData.colorDepth` (integer, required)
  Browser color depth in bits per pixel. This value is obtained using the `screen.colorDepth` property.
  Example: 24
- `riskMetadata.browserData.isJavaEnabled` (boolean, required)
  Specifies if Java is enabled in a browser. This value is obtained from the `navigator.javaEnabled` property.
- `riskMetadata.browserData.language` (string, required)
  Browser language settings. This value is obtained from the `navigator.language` property.
  Example: en-US
- `riskMetadata.browserData.screenWidth` (integer, required)
  Width of the browser screen. This value is obtained from the `screen.width` property.
  Example: 1920
- `riskMetadata.browserData.screenHeight` (integer, required)
  Height of the browser screen. This value is obtained from the `screen.height` property.
  Example: 1080
- `riskMetadata.browserData.timeZoneOffset` (integer, required)
  Browser time zone offset in minutes from UTC. A positive offset indicates that the local time is behind UTC. A negative offset indicates that the local time is ahead of UTC. You can find this value using the `(new Date()).getTimezoneOffset()` property.
  Example: 300
- `riskMetadata.browserData.isAdBlockEnabled` (boolean | null)
  Specifies if the usage of ad block has been detected in the browser.
- `riskMetadata.extraData` (object | null)
  Third-party data used for risk scoring.
- `riskMetadata.extraData.kountFraudSessionId` (string | null)
  Alpha-numeric `fraudSessionId` as provided by the Kount SDK.
  Example: abcdefg12345abababab123456789012
- `riskMetadata.extraData.payPalMerchantSessionId` (string | null)
  PayPal `MerchantSessionID` as generated by the PayPal Fraudnet SDK.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowa
- `riskMetadata.extraData.threatMetrixSessionId` (string | null)
  Temporary identifier that is unique to the visitor session and passed to ThreatMetrix.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa
- `isProcessedOutside` (boolean)
  Specifies when the transaction is processed outside Rebilly.
- `isMerchantInitiated` (boolean)
  Specifies when the transaction is initiated by the merchant.
- `processedTime` (string)
  Time the transaction is processed. This field is only specified if the transaction is processed outside Rebilly.
- `payoutRequestId` (string)
  ID of the payout request for which the transaction is fully allocated. > **Note:** Use the payout request allocation flow instead of this field. > Create an allocation with `POST /payout-request-allocations`. > To process a selected set, send `POST /payout-request-allocation-operations` with `type` set to `process`. > To process a batch, send `POST /payout-request-batch-operations` with `type` set to `process`.

## Response 201 fields

- `id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `amount` (number)
  Total amount of the transaction.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `childTransactions` (array)
  IDs of child transactions.
- `invoiceIds` (array)
  Related invoice IDs.
- `subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `3ds.server` (string)
  Name of the 3D Secure server.
- `3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `isRetry` (boolean)
  Specifies if a transaction is a retry.
- `billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `description` (string)
  Description of the payment.
- `requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `processedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `gateway` (object)
  Related gateway information.
- `gateway.response` (object)
  Gateway response.
- `gateway.response.code` (string | null)
  Gateway response code.
- `gateway.response.message` (string | null)
  Gateway response message.
- `gateway.response.type` (string | null)
  Gateway response type.
- `gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `gateway.avsResponse.code` (string | null)
  Response code.
- `gateway.avsResponse.message` (string | null)
  Response message.
- `gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `gateway.cvvResponse.code` (string | null)
  Response code.
- `gateway.cvvResponse.message` (string | null)
  Response message.
- `gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `method` (string)
  Payment method. > **Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `paymentInstrument` (object)
- `hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `dcc.base` (object)
- `dcc.base.amount` (number, required)
  Example: 10
- `dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `riskScore` (integer)
  Risk score for the transaction.
- `riskMetadata` (any)
- `notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `limits` (object | null)
  Transaction amount limit information.
- `limits.amount` (number)
  Limit amount.
  Example: 275.35
- `limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.parentTransaction` (object)
- `_embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.gatewayAccount` (object)
- `_embedded.customer` (object)
- `_embedded.leadSource` (object)
- `_embedded.website` (object)
- `_embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.organization` (object)
- `_embedded.dispute` (object)
- `_embedded.paymentCard` (object)
- `_embedded.bankAccount` (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 409 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 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.

# Create a payout request

Creates a payout request.
In the response, the `selectPaymentInstrumentUrl` field is used to redirect the customer to select a preferred payment instrument.
After a payment instrument is selected, the customer is redirected to the `selectedPaymentInstrumentRedirectUrl` value.

> **Important:** The selected payment gateway must be configured to support payout requests.
> For more information, see the [readyToPayoutInstruction](https://www.rebilly.com/catalog/all/gateway-accounts/getgatewayaccountcollection#gateway-accounts/getgatewayaccountcollection/t=response&c=200&path=&d=0/readytopayoutinstruction) field.

Endpoint: POST /payout-requests
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number, required)
  Amount of the payout.
- `description` (string | null)
  Description of payout request.
- `blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `blockReason` (any)
- `splitReason` (any)
- `selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success

## Response 201 fields

- `id` (string)
  Unique resource ID.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `paymentInstrumentId` (string | null)
  ID of the requested payment instrument to offer for the payout.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `splitFromPayoutRequestId` (string | null)
  ID of the payout request from which this request is split, or `null` if this request is not created by a split operation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `mergedIntoPayoutRequestId` (string | null)
  ID of the payout request that this request is merged into, or `null` if it is not merged into another request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number, required)
  Amount of the payout.
- `availableAmount` (number)
  Available payout request amount that has not been allocated.
- `description` (string | null)
  Description of payout request.
- `status` (string)
  Status of the request.
  Enum: "pending", "ready", "approved", "in-progress", "fulfilled", "canceled", "split", "merged"
- `blocked` (boolean)
  Specifies whether the payout request is blocked or unblocked. When blocked, the payout request cannot transition to `ready`, `approved`, `in-progress`, `merged`, `split`, or `canceled`. Allocation creation, allocation processing, and cancellation of pending allocations are also prevented. A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.
  Example: false
- `blockReason` (any)
- `splitReason` (any)
- `batchId` (string | null)
  ID of the payout request batch that contains this request.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `batchName` (string | null)
  Short name of the payout request batch that contains this request. This value is `null` if the request is not in a batch or the batch has no name.
  Example: Weekly CAD payouts
- `batchDescription` (string | null)
  Description of the payout request batch that contains this request. This value is `null` if the request is not in a batch or the batch has no description.
  Example: Batch processed on 2024-01-15
- `selectPaymentInstrumentUrl` (string)
  URL for the customer to select a preferred payment instrument.
- `allocations` (array)
  List of payout request allocations for the payout request.
- `allocations.id` (string)
  ID of the resource.
  Example: pra_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.payoutRequestId` (string, required)
  ID of the payout request associated with this allocation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.batchId` (string | null)
  ID of the payout request batch that contains the payout request for this allocation.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `allocations.paymentInstrumentId` (string, required)
  ID of the payment instrument allocated to the payout request.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.paymentMethod` (string)
  Payment method of the allocation.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `allocations.gatewayAccountId` (string, required)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.gatewayName` (string)
  Name of the gateway account to use for processing this allocation.
  Example: TestProcessor
- `allocations.gatewayPayoutInstruction` (string | null)
  Payout configuration of the gateway account that processes this allocation.
  Enum: "all", "covered-payout", "approved-payment", "none", null
- `allocations.amount` (number, required)
  Amount allocated to this payment instrument.
- `allocations.exposureAmount` (number)
  Approved sales and captures minus approved payouts for the customer, gateway account, and payment instrument, in the allocation currency. The calculation includes only transactions created within the last 180 days. The value is `0` when there are no transactions in the last 180 days, the gateway account is inactive, or its `readyToPayoutInstruction` is `none`.
  Example: 2
- `allocations.status` (string)
  Status of this payout request allocation.
  Enum: "pending", "queued", "processing", "waiting-completion", "completed", "failed", "canceled", "declined"
- `allocations.transactionId` (string | null)
  ID of the transaction that is created when processing this allocation, if applicable.
  Example: txn_0YVB8KPKNXCBR9EDX7JHSED75N
- `allocations.transactionResult` (string | null)
  Result of the transaction created for this allocation, if applicable.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown", null
- `allocations.transactionStatus` (string | null)
  Status of the transaction created for this allocation, if applicable.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund", null
- `allocations.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `allocations.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `allocations._links` (array)
  Related links.
- `allocations._links.href` (string)
  Link URL.
- `allocations._links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "gatewayAccount", "payoutRequest", "paymentInstrument"
- `selectedPaymentInstrumentRedirectUrl` (string)
  URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID.
  Example: https://example.com/payout-request-success
- `cancellationReason` (object | null)
  Reason the payout request is canceled.
- `cancellationReason.canceledBy` (string)
  Specifies who initiated the cancellation.
  Enum: "merchant", "customer", "system"
- `cancellationReason.description` (string)
  Description of the cancellation reason in free form.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "splitFrom", "mergedInto", "paymentInstrument"

## 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.

# Create a payout request allocation

Creates an allocation for a payout request.

When an allocation is created, the payout request transitions to the `in-progress` status,
and the allocation starts in the `pending` status.

The allocation transitions to the `processing` status when payment processing begins.

Endpoint: POST /payout-request-allocations
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `payoutRequestId` (string, required)
  ID of the payout request to allocate.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `paymentInstrumentId` (string, required)
  ID of the payment instrument to allocate.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `gatewayAccountId` (string, required)
  ID of the gateway account.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `amount` (number, required)
  Amount to allocate to this payment instrument.

## Response 201 fields

- `id` (string)
  ID of the resource.
  Example: pra_0YVDMDE2BMC6KBB5MX76RF6T80
- `payoutRequestId` (string, required)
  ID of the payout request associated with this allocation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `batchId` (string | null)
  ID of the payout request batch that contains the payout request for this allocation.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `paymentInstrumentId` (string, required)
  ID of the payment instrument allocated to the payout request.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `paymentMethod` (string)
  Payment method of the allocation.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `gatewayAccountId` (string, required)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `gatewayName` (string)
  Name of the gateway account to use for processing this allocation.
  Example: TestProcessor
- `gatewayPayoutInstruction` (string | null)
  Payout configuration of the gateway account that processes this allocation.
  Enum: "all", "covered-payout", "approved-payment", "none", null
- `amount` (number, required)
  Amount allocated to this payment instrument.
- `exposureAmount` (number)
  Approved sales and captures minus approved payouts for the customer, gateway account, and payment instrument, in the allocation currency. The calculation includes only transactions created within the last 180 days. The value is `0` when there are no transactions in the last 180 days, the gateway account is inactive, or its `readyToPayoutInstruction` is `none`.
  Example: 2
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `status` (string)
  Status of this payout request allocation.
  Enum: "pending", "queued", "processing", "waiting-completion", "completed", "failed", "canceled", "declined"
- `transactionId` (string | null)
  ID of the transaction that is created when processing this allocation, if applicable.
  Example: txn_0YVB8KPKNXCBR9EDX7JHSED75N
- `transactionResult` (string | null)
  Result of the transaction created for this allocation, if applicable.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown", null
- `transactionStatus` (string | null)
  Status of the transaction created for this allocation, if applicable.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund", null
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "gatewayAccount", "payoutRequest", "paymentInstrument"

## 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 404 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 409 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 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.

# Create automatic payout request allocations

Creates allocations for a payout request using automatically selected payment instruments and gateway accounts.
Only the payout request ID is required.

When an allocation is created, the payout request transitions to the `in-progress` status,
and the allocation starts in the `pending` status.
The allocation transitions to the `processing` status when payment processing begins.
This operation returns the created allocations.

Endpoint: POST /payout-request-auto-allocations
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `payoutRequestId` (string, required)
  ID of the payout request to allocate automatically. A payout request is a customer request to withdraw funds.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80

## Response 201 fields

- `id` (string)
  ID of the resource.
  Example: pra_0YVDMDE2BMC6KBB5MX76RF6T80
- `payoutRequestId` (string, required)
  ID of the payout request associated with this allocation.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `batchId` (string | null)
  ID of the payout request batch that contains the payout request for this allocation.
  Example: prb_0YVDMDE2BMC6KBB5MX76RF6T80
- `paymentInstrumentId` (string, required)
  ID of the payment instrument allocated to the payout request.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `paymentMethod` (string)
  Payment method of the allocation.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `gatewayAccountId` (string, required)
  ID of the gateway account to use for processing this allocation.
  Example: gateway_0YVB8KPKNXCBR9EDX7JHSED75N
- `gatewayName` (string)
  Name of the gateway account to use for processing this allocation.
  Example: TestProcessor
- `gatewayPayoutInstruction` (string | null)
  Payout configuration of the gateway account that processes this allocation.
  Enum: "all", "covered-payout", "approved-payment", "none", null
- `amount` (number, required)
  Amount allocated to this payment instrument.
- `exposureAmount` (number)
  Approved sales and captures minus approved payouts for the customer, gateway account, and payment instrument, in the allocation currency. The calculation includes only transactions created within the last 180 days. The value is `0` when there are no transactions in the last 180 days, the gateway account is inactive, or its `readyToPayoutInstruction` is `none`.
  Example: 2
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `status` (string)
  Status of this payout request allocation.
  Enum: "pending", "queued", "processing", "waiting-completion", "completed", "failed", "canceled", "declined"
- `transactionId` (string | null)
  ID of the transaction that is created when processing this allocation, if applicable.
  Example: txn_0YVB8KPKNXCBR9EDX7JHSED75N
- `transactionResult` (string | null)
  Result of the transaction created for this allocation, if applicable.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown", null
- `transactionStatus` (string | null)
  Status of the transaction created for this allocation, if applicable.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund", null
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "transaction", "gatewayAccount", "payoutRequest", "paymentInstrument"

## Response 400 fields

- `status` (integer)
  HTTP status code.
- `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.
- `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 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 404 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 409 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 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.

# Ready to pay

Retrieves available payment methods for a specific transaction or purchase.

The order in which the payment methods are displayed to the customer should be the same as the order in the response.

The list of payment methods is generated from available gateway accounts and the last matched `adjust-ready-to-pay` action on the `ready-to-pay-requested` event.
If no rules match for the specific request, all methods supported by the gateway accounts are sent.

To invert this behavior, place an all matching rule at the end of the `ready-to-pay-requested` event in the rules engine,
and include an empty `paymentMethods` property for the `adjust-ready-to-pay` action.

For more information, see [Update event rules](https://www.rebilly.com/catalog/all/rules#operation/PutEventRule) and [Gateway accounts](https://www.rebilly.com/catalog/all/gateway-accounts).

Endpoint: POST /ready-to-pay
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `currency` (string, required)
  Currency code in ISO 4217 format.
  Example: USD
- `amount` (number, required)
  Amount to pay.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `riskMetadata` (object, required)
  Risk metadata used for 3D Secure and risk scoring.
- `riskMetadata.ipAddress` (string | null)
  Customer's IP address.
  Example: 93.92.91.90
- `riskMetadata.fingerprint` (string | null)
  Customer's device fingerprint. A device fingerprint is a unique token that is used to identify the customer. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more.
  Example: pIUt3xbgX3l9g3YDiLbx
- `riskMetadata.httpHeaders` (any)
- `riskMetadata.browserData` (object | null)
  Browser data used for 3D Secure and risk scoring.
- `riskMetadata.browserData.colorDepth` (integer, required)
  Browser color depth in bits per pixel. This value is obtained using the `screen.colorDepth` property.
  Example: 24
- `riskMetadata.browserData.isJavaEnabled` (boolean, required)
  Specifies if Java is enabled in a browser. This value is obtained from the `navigator.javaEnabled` property.
- `riskMetadata.browserData.language` (string, required)
  Browser language settings. This value is obtained from the `navigator.language` property.
  Example: en-US
- `riskMetadata.browserData.screenWidth` (integer, required)
  Width of the browser screen. This value is obtained from the `screen.width` property.
  Example: 1920
- `riskMetadata.browserData.screenHeight` (integer, required)
  Height of the browser screen. This value is obtained from the `screen.height` property.
  Example: 1080
- `riskMetadata.browserData.timeZoneOffset` (integer, required)
  Browser time zone offset in minutes from UTC. A positive offset indicates that the local time is behind UTC. A negative offset indicates that the local time is ahead of UTC. You can find this value using the `(new Date()).getTimezoneOffset()` property.
  Example: 300
- `riskMetadata.browserData.isAdBlockEnabled` (boolean | null)
  Specifies if the usage of ad block has been detected in the browser.
- `riskMetadata.extraData` (object | null)
  Third-party data used for risk scoring.
- `riskMetadata.extraData.kountFraudSessionId` (string | null)
  Alpha-numeric `fraudSessionId` as provided by the Kount SDK.
  Example: abcdefg12345abababab123456789012
- `riskMetadata.extraData.payPalMerchantSessionId` (string | null)
  PayPal `MerchantSessionID` as generated by the PayPal Fraudnet SDK.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowa
- `riskMetadata.extraData.threatMetrixSessionId` (string | null)
  Temporary identifier that is unique to the visitor session and passed to ThreatMetrix.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa
- `items` (array, required)
- `items.planId` (string, required)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer, required)
  Number of product units in the specified plan.

## Response 200 fields

- `method` (string, required)
  Payment method.
  Enum: "Klarna"
- `feature` (any)
  Specific feature of this method. For example, a digital wallet. If the method does not have any features, this value is null.
- `brands` (array)
  List of supported brands.
- `filters` (array)
  For the method to be applicable, one or more of the following filters must match. If no filters are sent, no restrictions are applied. For more information, see [Using filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `feature` (any)
  Specific feature of this method. For example, a digital wallet or a processor. If the method does not have any features, this value is null.
- `feature` (any)
  Specific features of PayPal.

## 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.

# Create a transaction

Creates a transaction of type `sale`, `authorize` or `setup`.

Use this operation for the following transactions.

#### Real-time decision and response

In this transaction, you send a request and inspect the `result` of the response for `approved` or `declined`.

#### User approval/interaction required

In this transaction, user approval is required to complete the transaction.
User approval generally requires the user to interact with a third party,
and is common in many transactions for alternative methods.
For example, PayPal requires user permission to complete a payment or to accept a billing agreement.
Payment cards may also require user approval for 3D secure authentication.

If approval is required, you receive a response with a `result` value of `unknown` and a `status` value of `waiting-approval`.
The `_links` property of the response has a link for the `approvalUrl`.
Open the `approvalUrl` in an iframe or in a pop. A pop is a better workflow for mobile devices.

Endpoint: POST /transactions
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Query parameters

- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Request fields

- `upsertCustomer` (boolean)
  Specifies whether to create or update (upsert) a customer. If this value is `true`, the operation creates or updates (upserts) a customer. If this value is `false`, the `customerId` already exists, and the related customer is not updated.
- `type` (string, required)
  Type of transaction. This field supports a limited subset of transaction types. To refund or void, see [Refund a transaction](https://www.rebilly.com/catalog/all/transactions/posttransactionrefund). To `capture`, use the `sale` type. If any existing `authorize` transactions are eligible, they are captured and the `sale` converts to a `capture` type. The `setup` type sets up the payment instrument by following the `setupInstruction` in the selected gateway account. If the instruction is to `do-nothing`, a transaction with result `approved` of type `setup` returns.
  Enum: "sale", "authorize", "setup"
- `limits` (object | null)
  Transaction amount limit information.
- `limits.amount` (number)
  Limit amount.
  Example: 275.35
- `limits.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `websiteId` (string, required)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `amount` (number, required)
  Amount of the transaction.
  Example: 97.97
- `invoiceIds` (array | null)
  Array of invoice IDs.
- `paymentInstruction` (any)
- `billingAddress` (any)
  Billing address. If this value is not supplied, the billing address associated with the payment instrument is used. If no billing address is associated with the payment instrument, the customer's billing address is used.
- `requestId` (string | null)
  Use this field to prevent duplicate transaction requests that may occur within a short period of time. If a duplicate request is sent with the same `requestId`, it is ignored to prevent double-billing. This value must be unique within a 24-hour period. > **Important:** This field is recommended.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `gatewayAccountId` (string | null)
  ID of the gateway account. Rebilly selects the payment gateway account for the transaction based on transaction properties and the rules configuration of the `gateway-account-requested` event. To prevent Rebilly from making the gateway account selection, supply a gateway account ID in this field. Only use this field if you intend to override the settings.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `description` (string | null)
  Payment description.
- `notificationUrl` (string | null)
  URL where a server-to-server `POST` notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `redirectUrl` (string | null)
  URL to redirect the end-user when an offsite transaction is completed. Defaults to the configured URL of the website. You may use `{id}` or `{result}` as placeholders in the URL, these are replaced the with the transaction ID and result accordingly.
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `riskMetadata` (object)
  Risk metadata used for 3D Secure and risk scoring.
- `riskMetadata.ipAddress` (string | null)
  Customer's IP address.
  Example: 93.92.91.90
- `riskMetadata.fingerprint` (string | null)
  Customer's device fingerprint. A device fingerprint is a unique token that is used to identify the customer. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more.
  Example: pIUt3xbgX3l9g3YDiLbx
- `riskMetadata.httpHeaders` (any)
- `riskMetadata.browserData` (object | null)
  Browser data used for 3D Secure and risk scoring.
- `riskMetadata.browserData.colorDepth` (integer, required)
  Browser color depth in bits per pixel. This value is obtained using the `screen.colorDepth` property.
  Example: 24
- `riskMetadata.browserData.isJavaEnabled` (boolean, required)
  Specifies if Java is enabled in a browser. This value is obtained from the `navigator.javaEnabled` property.
- `riskMetadata.browserData.language` (string, required)
  Browser language settings. This value is obtained from the `navigator.language` property.
  Example: en-US
- `riskMetadata.browserData.screenWidth` (integer, required)
  Width of the browser screen. This value is obtained from the `screen.width` property.
  Example: 1920
- `riskMetadata.browserData.screenHeight` (integer, required)
  Height of the browser screen. This value is obtained from the `screen.height` property.
  Example: 1080
- `riskMetadata.browserData.timeZoneOffset` (integer, required)
  Browser time zone offset in minutes from UTC. A positive offset indicates that the local time is behind UTC. A negative offset indicates that the local time is ahead of UTC. You can find this value using the `(new Date()).getTimezoneOffset()` property.
  Example: 300
- `riskMetadata.browserData.isAdBlockEnabled` (boolean | null)
  Specifies if the usage of ad block has been detected in the browser.
- `riskMetadata.extraData` (object | null)
  Third-party data used for risk scoring.
- `riskMetadata.extraData.kountFraudSessionId` (string | null)
  Alpha-numeric `fraudSessionId` as provided by the Kount SDK.
  Example: abcdefg12345abababab123456789012
- `riskMetadata.extraData.payPalMerchantSessionId` (string | null)
  PayPal `MerchantSessionID` as generated by the PayPal Fraudnet SDK.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowa
- `riskMetadata.extraData.threatMetrixSessionId` (string | null)
  Temporary identifier that is unique to the visitor session and passed to ThreatMetrix.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa
- `isProcessedOutside` (boolean)
  Specifies when the transaction is processed outside Rebilly.
- `isMerchantInitiated` (boolean)
  Specifies when the transaction is initiated by the merchant.
- `processedTime` (string)
  Time the transaction is processed. This field is only specified if the transaction is processed outside Rebilly.

## Response 201 fields

- `id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `amount` (number)
  Total amount of the transaction.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `childTransactions` (array)
  IDs of child transactions.
- `invoiceIds` (array)
  Related invoice IDs.
- `subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `3ds.server` (string)
  Name of the 3D Secure server.
- `3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `isRetry` (boolean)
  Specifies if a transaction is a retry.
- `billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `description` (string)
  Description of the payment.
- `requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `processedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `gateway` (object)
  Related gateway information.
- `gateway.response` (object)
  Gateway response.
- `gateway.response.code` (string | null)
  Gateway response code.
- `gateway.response.message` (string | null)
  Gateway response message.
- `gateway.response.type` (string | null)
  Gateway response type.
- `gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `gateway.avsResponse.code` (string | null)
  Response code.
- `gateway.avsResponse.message` (string | null)
  Response message.
- `gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `gateway.cvvResponse.code` (string | null)
  Response code.
- `gateway.cvvResponse.message` (string | null)
  Response message.
- `gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `method` (string)
  Payment method. > **Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `paymentInstrument` (object)
- `hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `dcc.base` (object)
- `dcc.base.amount` (number, required)
  Example: 10
- `dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `riskScore` (integer)
  Risk score for the transaction.
- `riskMetadata` (any)
- `notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `limits` (object | null)
  Transaction amount limit information.
- `limits.amount` (number)
  Limit amount.
  Example: 275.35
- `limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.parentTransaction` (object)
- `_embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.gatewayAccount` (object)
- `_embedded.customer` (object)
- `_embedded.leadSource` (object)
- `_embedded.website` (object)
- `_embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.organization` (object)
- `_embedded.dispute` (object)
- `_embedded.paymentCard` (object)
- `_embedded.bankAccount` (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 409 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 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.

# Query a transaction

Queries a transaction with a specified ID.

The query interacts with the related gateway account to obtain the result, amount, and currency.
If after analysis, the transaction must be updated, see [Update a transaction status](https://www.rebilly.com/catalog/all/transactions/posttransactionupdate).

Endpoint: POST /transactions/{id}/query
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Response 201 fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "suspended", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `amount` (number)
  Amount of the transaction.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD

## 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 404 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 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.

# Refund a transaction

Refunds a transaction with a specified ID.

The refund is in the same currency as the original transaction.

Endpoint: POST /transactions/{id}/refund
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Query parameters

- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Request fields

- `amount` (number, required)
  Amount of the refund.
- `description` (string)
  Description of the refund.
- `isProcessedOutside` (boolean)
  Specifies if the refund is processed outside of Rebilly.

## Response 201 fields

- `id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `amount` (number)
  Total amount of the transaction.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `childTransactions` (array)
  IDs of child transactions.
- `invoiceIds` (array)
  Related invoice IDs.
- `subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `3ds.server` (string)
  Name of the 3D Secure server.
- `3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `isRetry` (boolean)
  Specifies if a transaction is a retry.
- `billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `description` (string)
  Description of the payment.
- `requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `processedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `gateway` (object)
  Related gateway information.
- `gateway.response` (object)
  Gateway response.
- `gateway.response.code` (string | null)
  Gateway response code.
- `gateway.response.message` (string | null)
  Gateway response message.
- `gateway.response.type` (string | null)
  Gateway response type.
- `gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `gateway.avsResponse.code` (string | null)
  Response code.
- `gateway.avsResponse.message` (string | null)
  Response message.
- `gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `gateway.cvvResponse.code` (string | null)
  Response code.
- `gateway.cvvResponse.message` (string | null)
  Response message.
- `gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `method` (string)
  Payment method. > **Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `paymentInstrument` (object)
- `hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `dcc.base` (object)
- `dcc.base.amount` (number, required)
  Example: 10
- `dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `riskScore` (integer)
  Risk score for the transaction.
- `riskMetadata` (any)
- `notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `limits` (object | null)
  Transaction amount limit information.
- `limits.amount` (number)
  Limit amount.
  Example: 275.35
- `limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.parentTransaction` (object)
- `_embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.gatewayAccount` (object)
- `_embedded.customer` (object)
- `_embedded.leadSource` (object)
- `_embedded.website` (object)
- `_embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.organization` (object)
- `_embedded.dispute` (object)
- `_embedded.paymentCard` (object)
- `_embedded.bankAccount` (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 404 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 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.

# Update a transaction status

Updates the status of a transaction with a specified ID to `completed`,
with a specified `result` and optional currency and amount values.

Endpoint: POST /transactions/{id}/update
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `result` (string, required)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined"
- `amount` (number)
  Amount of the transaction.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD

## Response 200 fields

- `id` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `type` (string)
  Type of transaction.
  Enum: "3ds-authentication", "authorize", "capture", "credit", "refund", "sale", "setup", "void"
- `status` (string)
  Status of the transaction.
  Enum: "completed", "conn-error", "disputed", "never-sent", "offsite", "partially-refunded", "pending", "refunded", "sending", "timeout", "voided", "waiting-approval", "waiting-capture", "waiting-gateway", "waiting-refund"
- `result` (string)
  Result of the transaction.
  Enum: "abandoned", "approved", "canceled", "declined", "unknown"
- `amount` (number)
  Total amount of the transaction.
- `currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `purchaseAmount` (number)
  Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount.
- `requestAmount` (number)
  Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount.
- `childTransactions` (array)
  IDs of child transactions.
- `invoiceIds` (array)
  Related invoice IDs.
- `subscriptionIds` (array)
  Subscription IDs of invoices that are related to the transaction.
- `planIds` (array)
  Plan IDs of orders that are related to the transaction.
- `isRebill` (boolean)
  Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees.
- `rebillNumber` (integer)
  Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees.
- `billingAddress` (object)
  Contact's information.
- `billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `billingAddress.hash` (string)
  Hash value for the contact. Use this value to compare contacts for identical attribute values.
  Example: 056ae6d97c788b9e98b049ebafd7b229bf852221
- `has3ds` (boolean)
  Specifies if the transaction uses 3D Secure.
- `3ds` (object)
  Authentication object. For more information, see [3D Secure (3DS)](https://www.rebilly.com/docs/settings/3ds/).
- `3ds.server` (string)
  Name of the 3D Secure server.
- `3ds.version` (string)
  Version of 3D Secure.
  Enum: "1.0.2", "2.1.0", "2.2.0"
- `3ds.enrolled` (string)
  Specifies if the cardholder is enrolled in 3D Secure.
  Enum: "yes", "no", "invalid card/timeout", "unavailable"
- `3ds.authenticated` (string)
  Authentication response status for 3D Secure.
  Enum: "yes", "no", "not applicable", "attempted"
- `3ds.liability` (string)
  Enum: "protected", "not protected", "protected (attempt)"
- `3ds.flow` (string)
  Authentication flow for 3D Secure 2.
  Enum: "frictionless", "challenge"
- `3ds.isDowngraded` (boolean)
  Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1.
- `redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `retryNumber` (integer)
  Position of the transaction in the sequence of retries.
- `isRetry` (boolean)
  Specifies if a transaction is a retry.
- `billingDescriptor` (string | null)
  Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters.
- `description` (string)
  Description of the payment.
- `requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `hasAmountAdjustment` (boolean)
  Specifies if the transaction has amount adjustment.
- `gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `processedTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `gatewayAccountId` (string | null)
  ID of the gateway account that processed the transaction.
  Example: gw_acc_0YVCXMF26DDNKAERE5NW727S34
- `gatewayTransactionId` (string | null)
  ID of the gateway transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `gateway` (object)
  Related gateway information.
- `gateway.response` (object)
  Gateway response.
- `gateway.response.code` (string | null)
  Gateway response code.
- `gateway.response.message` (string | null)
  Gateway response message.
- `gateway.response.type` (string | null)
  Gateway response type.
- `gateway.response.originalCode` (string | null)
  Raw, unmapped gateway response code.
- `gateway.response.originalMessage` (string | null)
  Raw, unmapped gateway response message.
- `gateway.avsResponse` (object)
  Gateway Address Verification System (AVS) response.
- `gateway.avsResponse.code` (string | null)
  Response code.
- `gateway.avsResponse.message` (string | null)
  Response message.
- `gateway.avsResponse.originalCode` (string | null)
  Raw response code.
- `gateway.avsResponse.originalMessage` (string | null)
  Raw response message.
- `gateway.cvvResponse` (object)
  Gateway Card Verification Value (CVV) response.
- `gateway.cvvResponse.code` (string | null)
  Response code.
- `gateway.cvvResponse.message` (string | null)
  Response message.
- `gateway.cvvResponse.originalCode` (string | null)
  Raw response code.
- `gateway.cvvResponse.originalMessage` (string | null)
  Raw response message.
- `acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `method` (string)
  Payment method. > **Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `revision` (integer)
  Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation.
- `bin` (string | null)
  Payment card Bank Identification Number (BIN).
- `paymentInstrumentFingerprint` (string | null)
  Unique value that is used to identify the payment instrument of the transaction. This value is `null` if the transaction has no payment instrument, or the payment instrument has no fingerprint.
- `paymentInstrument` (object)
- `hasDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) applies to the transaction.
- `dcc` (object | null)
  Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`.
- `dcc.base` (object)
- `dcc.base.amount` (number, required)
  Example: 10
- `dcc.outcome` (string)
  Dynamic currency conversion outcome.
  Enum: "unprocessed", "rejected", "selected"
- `dcc.isForceDcc` (boolean)
  Specifies if Dynamic Currency Conversion (DCC) is forced for the transaction.
- `riskScore` (integer)
  Risk score for the transaction.
- `riskMetadata` (any)
- `notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `isDisputed` (boolean)
  Specifies if a transaction is disputed.
- `disputeTime` (string | null)
  Date and time when the dispute is created. If the transaction is not disputed, this value is `null`.
- `disputeStatus` (string | null)
  Status of the dispute.
  Enum: null, "response-needed", "under-review", "forfeited", "won", "lost", "unknown"
- `isReconciled` (boolean)
  Specifies if the transaction is verified with gateway batch data.
- `isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `hadDiscrepancy` (boolean)
  Specifies if the transaction is updated due to a discrepancy with its source of truth.
- `orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `arn` (string | null)
  Acquirer reference number.
  Example: 74836950144358910018150
- `reportAmount` (number)
  Transaction amount converted to the report currency of the organization.
- `settlementTime` (string | null)
  Date and time when the transaction is settled by the banking institution.
- `discrepancyTime` (string | null)
  Date and time of the most recent discrepancy on the transaction.
- `limits` (object | null)
  Transaction amount limit information.
- `limits.amount` (number)
  Limit amount.
  Example: 275.35
- `limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `depositRequestId` (string | null)
  ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request.
  Example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7
- `transferId` (string | null)
  ID of the ledger transfer if applicable. The transaction is linked to this transfer when processed in the wallet ledger.
  Example: tb_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `payoutRequestId` (string | null)
  ID of the payout request if applicable. The created transaction is based on the properties of this payout request.
  Example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "attachments", "website", "customer", "gatewayAccount", "paymentCard", "parentTransaction", "leadSource", "approvalUrl", "refundUrl", "updateUrl", "disputes", "invoices", "queryUrl", "redirectUrl"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.parentTransaction` (object)
- `_embedded.childTransactions` (array)
  Most recent child transactions.
- `_embedded.gatewayAccount` (object)
- `_embedded.customer` (object)
- `_embedded.leadSource` (object)
- `_embedded.website` (object)
- `_embedded.invoices` (array)
  Most recent related invoices.
- `_embedded.organization` (object)
- `_embedded.dispute` (object)
- `_embedded.paymentCard` (object)
- `_embedded.bankAccount` (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 404 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 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.

# Ready to pay requested

Endpoint: POST ready-to-pay-requested
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "ready-to-pay-requested"
- `websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `currency` (string)
  Currency of the ready to pay request.
- `amount` (number)
  Amount of the ready to pay request.
- `items` (array)
- `items.planId` (string, required)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.quantity` (integer, required)
  Number of product units in the specified plan.
- `billingAddress` (any)
  Customer's billing address.
- `riskMetadata` (object)
  Risk metadata used for 3D Secure and risk scoring.
- `riskMetadata.ipAddress` (string | null)
  Customer's IP address.
  Example: 93.92.91.90
- `riskMetadata.fingerprint` (string | null)
  Customer's device fingerprint. A device fingerprint is a unique token that is used to identify the customer. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more.
  Example: pIUt3xbgX3l9g3YDiLbx
- `riskMetadata.httpHeaders` (any)
- `riskMetadata.browserData` (object | null)
  Browser data used for 3D Secure and risk scoring.
- `riskMetadata.browserData.colorDepth` (integer, required)
  Browser color depth in bits per pixel. This value is obtained using the `screen.colorDepth` property.
  Example: 24
- `riskMetadata.browserData.isJavaEnabled` (boolean, required)
  Specifies if Java is enabled in a browser. This value is obtained from the `navigator.javaEnabled` property.
- `riskMetadata.browserData.language` (string, required)
  Browser language settings. This value is obtained from the `navigator.language` property.
  Example: en-US
- `riskMetadata.browserData.screenWidth` (integer, required)
  Width of the browser screen. This value is obtained from the `screen.width` property.
  Example: 1920
- `riskMetadata.browserData.screenHeight` (integer, required)
  Height of the browser screen. This value is obtained from the `screen.height` property.
  Example: 1080
- `riskMetadata.browserData.timeZoneOffset` (integer, required)
  Browser time zone offset in minutes from UTC. A positive offset indicates that the local time is behind UTC. A negative offset indicates that the local time is ahead of UTC. You can find this value using the `(new Date()).getTimezoneOffset()` property.
  Example: 300
- `riskMetadata.browserData.isAdBlockEnabled` (boolean | null)
  Specifies if the usage of ad block has been detected in the browser.
- `riskMetadata.extraData` (object | null)
  Third-party data used for risk scoring.
- `riskMetadata.extraData.kountFraudSessionId` (string | null)
  Alpha-numeric `fraudSessionId` as provided by the Kount SDK.
  Example: abcdefg12345abababab123456789012
- `riskMetadata.extraData.payPalMerchantSessionId` (string | null)
  PayPal `MerchantSessionID` as generated by the PayPal Fraudnet SDK.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowa
- `riskMetadata.extraData.threatMetrixSessionId` (string | null)
  Temporary identifier that is unique to the visitor session and passed to ThreatMetrix.
  Example: dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa
- `customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `_embedded` (object)
  Embedded objects related to the ready to pay event.
- `_embedded.checkoutForm` (object)
- `_embedded.checkoutForm.customDomain` (string | null)
  Custom domain for the checkout form.
- `_embedded.checkoutForm.plans` (array, required)
  List of plans that are applied to a customer order by default. Plans describe how the customer must pay for products. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/).
- `_embedded.checkoutForm.plans.planId` (string, required)
  ID of the plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `_embedded.checkoutForm.plans.type` (string, required)
  Type of plan. If this value is set to `fixed`, customers cannot choose the plan quantity. If this value is set to `variable`, customers can choose the plan quantity.
  Enum: "fixed"
- `_embedded.checkoutForm.plans.quantity` (integer, required)
  Quantity of the plan.
- `_embedded.checkoutForm.plans.type` (string, required)
  Type of plan. If this value is set to `variable`, customers can choose the plan quantity. If this value is set to `fixed`, customers cannot choose the plan quantity.
  Enum: "variable"
- `_embedded.checkoutForm.plans.quantity` (integer, required)
  Default plan quantity.
- `_embedded.checkoutForm.plans.minimum` (integer)
  Minimum plan quantity.
- `_embedded.checkoutForm.plans.multipleOf` (integer)
  Multiple by which the plan quantity increases.
- `_embedded.checkoutForm.plans.maximum` (integer)
  Maximum plan quantity.
- `_embedded.checkoutForm.addonPlans` (array)
  List of add-on plans that are displayed to the customer on the payment screen. Add-ons are plans that the customer has not already subscribed to. The customer selects whether to add an add-on plan to their current order.
- `_embedded.checkoutForm.bumpPlans` (array)
  List of bump plans that are displayed to the customer on the payment screen. Use bump plans to offer purchase bonuses, discounts, and deals to the customer. The customer selects whether to purchase bump plans, or to use the plans that are specified in their current order.
- `_embedded.checkoutForm.accountsEnabled` (boolean)
  Specifies if the account is enabled. If this value is `true`, the customer can sign-up and sign-in using the checkout form.
- `_embedded.checkoutForm.couponsEnabled` (boolean)
  Specifies if coupons are enabled in the checkout form. If this value is `true`, the customer can use coupons in the checkout form. Use coupons to reward customers, generate sales, or to test new pricing strategies.
- `_embedded.checkoutForm.purchaseLimit` (integer | null)
  Limits the number of purchases that can be made using a specific checkout form. If a purchase limit value is set, each purchase decreases this value. When the purchases limit value reaches zero, the checkout form becomes inactive.
- `_embedded.checkoutForm.paymentMethods` (array)
  List of available payment methods. Payment methods must have at least one active gateway account. If not specified, all available payment methods are displayed.
- `_embedded.checkoutForm.customization` (object)
  Visual customization options for the checkout form.
- `_embedded.checkoutForm.customization.logoId` (string | null)
  ID of the linked file object.
  Example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N
- `_embedded.checkoutForm.customization.summary` (string | null)
  Summary text.
- `_embedded.checkoutForm.customization.buttonText` (string)
  Button text. Use the `{{amount}}` placeholder to display the checkout form total.
- `_embedded.checkoutForm.customization.colors` (object)
  Primary color used in the checkout form and button text.
- `_embedded.checkoutForm.customization.colors.primary` (string)
  Primary color for the checkout form in hexadecimal format.
- `_embedded.checkoutForm.customization.colors.buttonText` (string)
  Button text color for the checkout form in hexadecimal format.
- `_embedded.checkoutForm.customization.links` (object)
  URLs that are displayed on the checkout form.
- `_embedded.checkoutForm.customization.links.refundPolicy` (string | null)
  Website refund policy URL.
- `_embedded.checkoutForm.customization.links.privacyPolicy` (string | null)
  Website privacy policy URL.
- `_embedded.checkoutForm.customization.links.termsOfService` (string | null)
  Website terms of service URL.
- `_embedded.checkoutForm.customization.tracking` (object)
  Tracking system IDs.
- `_embedded.checkoutForm.customization.tracking.googleAnalytics` (string | null)
  Google Analytics tracking ID.
  Example: UA-XXXXX-YY
- `_embedded.checkoutForm.customization.tracking.googleTagManager` (string | null)
  Google Tag Manager tracking ID.
  Example: GTM-XXXXX
- `_embedded.checkoutForm.customization.tracking.gtagJs` (string | null)
  Google Analytics tracking ID. This value is used by Google Global Site Tag (gtag.js) service.
  Example: UA-XXXXX-YY
- `_embedded.checkoutForm.customization.tracking.facebookPixel` (string | null)
  Facebook Pixel tracking ID.
  Example: 1234567890
- `_embedded.checkoutForm.customization.tracking.segmentAnalytics` (string | null)
  Segment Analytics tracking ID.
  Example: 1234567890
- `_embedded.checkoutForm.customization.tracking.heapIo` (string | null)
  Heap.io tracking ID.
  Example: 1234567890
- `_embedded.checkoutForm.customization.requiredAdditionalFields` (array)
  List of required fields.
  Example: ["information.companyName","information.phoneNumber"]
- `_embedded.checkoutForm.name` (string, required)
  Name of the checkout form. This name value is for internal display, and is not visible to your customers. Use this name to locate and organize your checkout forms.
- `_embedded.checkoutForm.status` (string)
  Status of the checkout form. If the `status` value is `inactive`, the checkout form URL produces a 404 error.
  Enum: "active", "inactive"
- `_embedded.customer` (object)
  Customer information.
- `_embedded.customer.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.customer.paymentToken` (string)
  Write-only payment token. If supplied, the token is converted into a payment instrument, and its ID is assigned to `defaultPaymentInstrumentId` value. The value of this property overrides the `defaultPaymentInstrumentId` if both are supplied. This token may only be used once before it expires.
- `_embedded.customer.defaultPaymentInstrumentId` (string | null)
  ID of the customer's default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.preferredPayoutInstrumentId` (string | null)
  ID of the customer's preferred payment instrument for payouts.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `_embedded.customer.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.customer.primaryAddress` (any)
  Customer's primary address.
- `_embedded.customer.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.customer.locale` (string | null)
  Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format.
  Example: fr-FR
- `_embedded.customer.taxNumbers` (array | null)
  Tax numbers of the customer.
- `_embedded.customer.taxNumbers.type` (string, required)
  Type of the tax number.
  Enum: "eu-vat", "other"
- `_embedded.customer.taxNumbers.value` (string, required)
  Value of the tax number.
  Example: GB980780684
- `_embedded.customer.taxNumbers.isDefault` (boolean)
  Determines if the tax number is selected as default to display on invoices.
  Example: true
- `_embedded.customer.leadSource` (object)
  Lead source information.
- `_embedded.customer.leadSource.medium` (string | null)
  Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on.
- `_embedded.customer.leadSource.source` (string | null)
  Domain, platform, or channel from which the lead source originates.
- `_embedded.customer.leadSource.campaign` (string | null)
  Campaign name of the lead source.
- `_embedded.customer.leadSource.term` (string | null)
  Term associated with a lead source.
- `_embedded.customer.leadSource.content` (string | null)
  Content contained in the lead source content. For example, content could be graphics, video, and so on.
- `_embedded.customer.leadSource.affiliate` (string | null)
  Individual or entity that is affiliated with the lead source.
- `_embedded.customer.leadSource.subAffiliate` (string | null)
  Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some.
- `_embedded.customer.leadSource.salesAgent` (string | null)
  Name of the sales agent associated with the lead source.
- `_embedded.customer.leadSource.clickId` (string | null)
  ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution.
- `_embedded.customer.leadSource.path` (string | null)
  URL from which the lead source originates.
- `_embedded.customer.leadSource.referrer` (string | null)
  Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer).
  Example: https://www.rebilly.com
- `_embedded.customer.personId` (string | null)
  ID of the associated person.
  Example: prs_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.customer.notificationEmails` (array)
  Email addresses for notification delivery in event-based email notifications. When you configure event-based email notifications, you can send to these addresses, the customer's primary email address, or another email address you specify. For more information, see [Manage notification emails](https://www.rebilly.com/docs/data-tables/manage-customer-information#manage-notification-emails).
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_embedded.website` (object)
- `_embedded.website.id` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.website.name` (string, required)
  Name of the website.
- `_embedded.website.url` (string, required)
  Domain address of the website.
- `_embedded.website.servicePhone` (string, required)
  Customer service phone number of the website.
- `_embedded.website.serviceEmail` (string, required)
  Customer service email address of the website.
- `_embedded.website.settings` (object)
  Website settings.
- `_embedded.website.settings.paymentForm` (object)
  Payment form settings.
- `_embedded.website.settings.paymentForm.css` (string | null)
  Hosted payment form [CSS options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#2-use-css-property-to-override-any-styles).
- `_embedded.website.settings.paymentForm.features` (object | null)
  Hosted payment form features.
- `_embedded.website.settings.paymentForm.features.showCoupons` (array | null)
- `_embedded.website.settings.paymentForm.features.fullPageRedirect` (boolean | null)
  Specifies whether the hosted payment form uses a full page redirect, or the default iframe modal, for approval URL redirects.
- `_embedded.website.settings.paymentForm.features.skipRedirectOnPaymentComplete` (boolean | null)
  Specifies whether the hosted payment form skips the redirect to the website URL when the payment is completed.
- `_embedded.website.settings.paymentForm.features.hideZeroAmountSummaryItems` (boolean | null)
  Specifies if the hosted payment form displays 0 amount line items in the summary.
- `_embedded.website.settings.amplitude` (object)
  Amplitude settings. Amplitude is an analytics tool for tracking user behavior.
- `_embedded.website.settings.amplitude.tracking` (boolean)
  Specifies if the hosted pages, such as KYC pages, include Amplitude analytics.
- `_embedded.website.settings.amplitude.apiKey` (string | null)
  API key of an Amplitude project.
  Example: 35d1795750c585984f7e6b01c0ca6e19
- `_embedded.website.settings.payoutRequest` (object)
  Payout request settings for the website.
- `_embedded.website.settings.payoutRequest.automaticReadinessEnabled` (boolean)
  Specifies whether pending payout requests are automatically marked as `ready`. When this value is `false`, payout requests are created in the `ready` status and automatic transition is not used. When this value is `true`, payout requests remain in the `pending` status until the pending period elapses and the configured transition time is reached.
- `_embedded.website.settings.payoutRequest.pendingPeriodHours` (integer)
  Minimum number of hours a payout request stays in the `pending` status before it can be automatically set to `ready`. Required when `automaticReadinessEnabled` is `true`.
  Example: 48
- `_embedded.website.settings.payoutRequest.automaticReadinessTime` (string)
  Time of day when the automatic readiness job processes eligible pending payout requests. Required when `automaticReadinessEnabled` is `true`. Use extended ISO-8601 time format (`HH:MM:SS`) with an optional timezone offset. When the timezone offset is omitted, the server timezone is used.
  Example: 10:00:00Z
- `_embedded.website.logoId` (string | null)
  ID of the linked file object.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `_embedded.website.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "checkoutForm", "customer", "transaction", "website"

# Risk score changed

Endpoint: POST risk-score-changed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Transaction amount discrepancy found

Endpoint: POST transaction-amount-discrepancy-found
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Transaction declined

Endpoint: POST transaction-declined
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Transaction discrepancy found

Endpoint: POST transaction-discrepancy-found
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Transaction partially refunded

Endpoint: POST transaction-partially-refunded
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "transaction-partially-refunded", "transaction-refunded", "transaction-voided"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction", "childTransaction"

# Transaction process requested

Endpoint: POST transaction-process-requested
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Transaction processed

Endpoint: POST transaction-processed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Transaction reconciled

Endpoint: POST transaction-reconciled
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Transaction refunded

Endpoint: POST transaction-refunded
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "transaction-partially-refunded", "transaction-refunded", "transaction-voided"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction", "childTransaction"

# Transaction timeout resolved

Endpoint: POST transaction-timeout-resolved
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Transaction voided

Endpoint: POST transaction-voided
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "transaction-partially-refunded", "transaction-refunded", "transaction-voided"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction", "childTransaction"

# Waiting gateway transaction completed

Endpoint: POST waiting-gateway-transaction-completed
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `eventType` (string)
  Type of event that triggered the webhook.
  Enum: "gateway-account-requested", "offsite-payment-completed", "risk-score-changed", "transaction-amount-discrepancy-found", "transaction-declined", "transaction-discrepancy-found", "transaction-process-requested", "transaction-processed", "transaction-reconciled", "transaction-timeout-resolved", "waiting-gateway-transaction-completed", "autodeposit-lookup-performed"
- `_embedded` (object)
  Embedded objects related to the transaction event.
- `_embedded.transaction` (object)
  Transaction information.
- `_embedded.transaction.websiteId` (string)
  ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG
- `_embedded.transaction.customerId` (string)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `_embedded.transaction.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `_embedded.transaction.billingAddress` (object)
  Contact's information.
- `_embedded.transaction.billingAddress.firstName` (string | null)
  Contact's first name.
  Example: Benjamin
- `_embedded.transaction.billingAddress.lastName` (string | null)
  Contact's last name.
  Example: Franklin
- `_embedded.transaction.billingAddress.organization` (string | null)
  Contact's organization.
  Example: Rebilly
- `_embedded.transaction.billingAddress.address` (string | null)
  First line of the contact's street address.
  Example: 36 Craven St
- `_embedded.transaction.billingAddress.address2` (string | null)
  Second line of the contact's street address.
- `_embedded.transaction.billingAddress.city` (string | null)
  Contact's city of residence.
  Example: Austin
- `_embedded.transaction.billingAddress.region` (string | null)
  Contact's region of residence.
  Example: Texas
- `_embedded.transaction.billingAddress.country` (string | null)
  Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/).
  Example: GB
- `_embedded.transaction.billingAddress.postalCode` (string | null)
  Contact's postal code.
  Example: WC2N 5NF
- `_embedded.transaction.billingAddress.phoneNumbers` (array)
  List of phone numbers associated with the contact.
- `_embedded.transaction.billingAddress.phoneNumbers.label` (string, required)
  Phone number label or name.
  Example: main
- `_embedded.transaction.billingAddress.phoneNumbers.value` (string, required)
  Phone number value.
  Example: 1-512-777-0269
- `_embedded.transaction.billingAddress.phoneNumbers.primary` (boolean)
  Specifies if the phone number is the contact's primary phone number.
  Example: true
- `_embedded.transaction.billingAddress.emails` (array)
  List of email addresses associated with the contact.
- `_embedded.transaction.billingAddress.emails.label` (string, required)
  Email label or name.
  Example: main
- `_embedded.transaction.billingAddress.emails.value` (string, required)
  Email address value.
  Example: rebilly@example.com
- `_embedded.transaction.billingAddress.emails.primary` (boolean)
  Specifies if the email address is the contact's primary email address.
  Example: true
- `_embedded.transaction.billingAddress.dob` (string | null)
  Contact's date of birth in ISO-8601 `YYYY-MM-DD` format.
  Example: 1980-04-01
- `_embedded.transaction.billingAddress.jobTitle` (string | null)
  Contact's job title.
  Example: CEO
- `_embedded.transaction.redirectUrl` (string | null)
  URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL.
- `_embedded.transaction.description` (string)
  Description of the payment.
- `_embedded.transaction.requestId` (string)
  Request ID of the transaction. This ID must be unique within a 24-hour period. Use this field to prevent duplicate transactions.
- `_embedded.transaction.gatewayName` (string | null)
  Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction.
  Enum: "A1Gateway", "ACI", "Adyen", "Aera", "Aircash", "Airpay", "Airwallex", "AsiaPay", "AmazonPay", "AmexVPC", "Antom", "ApcoPay", "AsiaPaymentGateway", "AstroPayCard", "AuthorizeNet", "Awepay", "Bambora", "BankSEND", "BitPay", "BlueSnap", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "Cashflows", "CASHlib", "Cashterminal", "CashToCode", "CauriPayment", "Cayan", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptomus", "Cryptonator", "CyberSource", "DataCash", "Dengi", "Dimoco", "Directa24", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "ecoPayzTurkey", "EcorePay", "Elavon", "Euteller", "eMerchantPay", "EMS", "ePay", "EPG", "EPro", "Ezeebill", "eZeeWallet", "ezyEFT", "FasterPay", "Finrax", "Flexepin", "FinTecSystems", "FundSend", "Forte", "gate2way", "GET", "Gigadat", "GlobalOnePay", "GoCardless", "Gooney", "Gpaysafe", "Greenbox", "HiPay", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "iDebit", "Ilixium", "IMerchant", "Ingenico", "INOVAPAY", "Inovio", "Intuit", "InstaDebit", "IpayOptions", "Isx", "JetPay", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "LaCore", "Limepay", "Loonio", "loonie", "LPG", "MaxiCash", "MercadoPago", "MiFinity", "Mollie", "MobilePay", "Moneris", "Monolo", "MonRem", "MtaPay", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "Naewe", "Neosurf", "Netbanking", "Neteller", "NGenius", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Pagadito", "Pagsmile", "Panamerican", "ParamountCommerce", "ParamountEft", "ParamountInterac", "PandaGateway", "Pay4Fun", "Paybilt", "PayCash", "Paycly", "PayClub", "PayCom", "PayEcards", "Payeezy", "Payflow", "PayGlocal", "Paynote", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "Paysafe", "Paysafecard", "Paysafecash", "PayTabs", "PayU", "PayULatam", "Payvision", "PayXpert", "PharosPayments", "Piastrix", "Pin4Pay", "Plugnpay", "PostFinance", "Powertranz", "PPRO", "Prosa", "PSiGate", "Quickpay", "Rapyd", "Realex", "Realtime", "Redsys", "Rotessa", "RPN", "Safecharge", "SaltarPay", "Sagepay", "SeamlessChex", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "Splitit", "StaticGateway", "STPMexico", "Stripe", "Tabby", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "TrustsPay", "Trustly", "TWINT", "Txn", "Unlimit", "UPayCard", "USAePay", "VantivLitle", "vegaaH", "VCreditos", "VegaWallet", "Viva", "Wallet88", "Walpay", "WesternUnion", "Wirecard", "WorldlineAtosFrankfurt", "Worldpay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.customFields` (object)
  Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields).
  Example: {"foo":"bar"}
- `_embedded.transaction.acquirerName` (string | null)
  Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`.
  Enum: "Adyen", "ACI", "Aera", "Alipay", "AIB", "Aircash", "Airpay", "AmazonPay", "ApcoPay", "AsiaPaymentGateway", "AstroPay Card", "Awepay", "Ipay Options", "B+S", "Bambora", "BitPay", "Bank of America", "Bank of Moscow", "Bank of Rebilly", "Bank One", "BankSEND", "BMO Harris Bank", "Borgun", "BraintreePayments", "Buckaroo", "BVNK", "Cardknox", "CASHlib", "Cashterminal", "CashToCode", "Catalunya Caixa", "CCAvenue", "Chase", "CheckoutCom", "Chillstock", "ChinaUnionPay", "CIM", "Circle", "Citadel", "Clearhaus", "Cleo", "CODVoucher", "Coinbase", "CoinGate", "CoinPayments", "Conekta", "Coppr", "Cps", "Credorax", "Cryptonator", "CyberSource", "Dimoco", "dLocal", "Dragonphoenix", "Dropayment", "EasyPayDirect", "EBANX", "ecoPayz", "EcorePay", "Elavon", "EMS", "ePay", "EPG", "Euteller", "Ezeebill", "eZeeWallet", "ezyEFT", "Fifth Third Bank", "Finrax", "First Data Buypass", "First Data Nashville", "First Data North", "First Data Omaha", "FinTecSystems", "Flexepin", "Forte", "FundSend", "gate2way", "Gigadat", "Global East", "Gooney", "Gpaysafe", "Heartland", "HiPay", "HSBC", "iCashOne", "iCanPay", "ICEPAY", "iCheque", "Ilixium", "Ingenico", "INOVAPAY", "Intuit", "Isx", "Jeton", "JPMOrbital", "Khelocard", "Klarna", "Konnektive", "Kushki", "Limepay", "Loonio", "loonie", "LPG", "Masapay", "MaxiCash", "MercadoPago", "Merrick", "Mission Valley Bank", "MiFinity", "MobilePay", "Moneris", "Monolo", "MonRem", "MuchBetter", "MuchBetterGateway", "MyFatoorah", "NATWEST", "Neosurf", "Netbanking", "Neteller", "NinjaWallet", "NMI", "NordikCoin", "NOWPayments", "NuaPay", "Nuvei", "OchaPay", "OmniMatrix", "Onlineueberweisen", "OnRamp", "Orbital", "Other", "Panamerican", "Panda Bank", "Paramount", "ParamountCommerce", "ParamountEft", "ParamountInterac", "Pay4fun", "Paybilt", "PayCash", "PayClub", "PayEcards", "PayGlocal", "PaymentAsia", "PaymenTechnologies", "PaymentsOS", "Paymero", "Paynetics", "PayPal", "Payper", "Payr", "PayRedeem", "PayRetailers", "PayTabs", "PayU", "PayULatam", "Payvision", "PharosPayments", "Piastrix", "Pin4Pay", "Peoples Trust Company", "PostFinance", "PPRO", "Privatbank", "Prosa", "PSiGate", "QQPay", "Rapyd", "RBC", "RBS WorldPay", "RealTime", "Rotessa", "Safecharge", "SaltarPay", "SecureTrading", "SecurionPay", "Skrill", "SmartInvoice", "SMSVoucher", "Sofort", "SparkPay", "State Bank of Mauritius", "STPMexico", "Stripe", "Tabby", "TBI", "Telr", "TestProcessor", "Thunes", "ToditoCash", "Triple000", "Truevo", "Trustly", "TrustPay", "TrustsPay", "TSYS", "TWINT", "Txn", "UPayCard", "Vantiv", "VCreditos", "VegaWallet", "VoicePay", "Wallet88", "WeChat Pay", "Wells Fargo", "Wing Hang Bank", "Wirecard", "WorldPay", "XPay", "Zimpler", "Zotapay"
- `_embedded.transaction.method` (string)
  Payment method. >**Note:** Use `paymentInstrument.method` instead.
  Enum: "payment-card", "ach", "cash", "check", "paypal", "AdvCash", "Aera", "Affirm", "Afterpay", "Aircash", "Airpay", "Alfa-click", "Alipay", "AmazonPay", "Apple Pay", "AstroPay Card", "AstroPay-GO", "BankSEND", "BankReferenced", "bank-transfer", "bank-transfer-2", "bank-transfer-3", "bank-transfer-4", "bank-transfer-5", "bank-transfer-6", "bank-transfer-7", "bank-transfer-8", "bank-transfer-9", "Baloto", "Beeline", "Belfius-direct-net", "bitcoin", "Bizum", "Blik", "Boleto", "Boleto-2", "Boleto-3", "cash-deposit", "CASHlib", "CashToCode", "CCAvenue", "China UnionPay", "Clearpay", "Cleo", "CODVoucher", "Conekta-oxxo", "Conekta-spei", "cryptocurrency", "Cupon-de-pagos", "CyberSource", "Dimoco-pay-smart", "Directa24Card", "domestic-cards", "Efecty", "echeck", "ecoPayz", "ecoPayzTurkey", "ecoVoucher", "EPS", "ePay.bg", "Ethereum", "e-wallet", "ezyEFT", "eZeeWallet", "FasterPay", "Flexepin", "Giropay", "Google Pay", "Gpaysafe", "iCashOne Voucher", "iDebit", "iDEAL", "ING-homepay", "INOVAPAY-pin", "INOVAPAY-wallet", "InstaDebit", "InstantPayments", "instant-bank-transfer", "Interac-online", "Interac-eTransfer", "Interac-express-connect", "Interac", "invoice", "iWallet", "Jeton", "JetonCash", "jpay", "KakaoPay", "Khelocard", "Klarna", "KNOT", "Litecoin", "loonie", "LPG-online", "LPG-payment-card", "Matrix", "MaxiCash", "Megafon", "MercadoPago", "MiFinity-eWallet", "miscellaneous", "MobilePay", "Mollie", "Multibanco", "Bancontact", "Bancontact-mobile", "MTS", "MuchBetter", "MuchBetterVoucher", "MyFatoorah", "Neosurf", "Netbanking", "Neteller", "Nordea-Solo", "NordikCoin", "OchaPay", "online-bank-transfer", "Onlineueberweisen", "oriental-wallet", "OXXO", "P24", "Pagadito", "PagoEffectivo", "Pagsmile-lottery", "Pagsmile-deposit-express", "PayCash", "Payco", "Payeer", "PaymentAsia-crypto", "Paysafecard", "PayTabs", "Pay4Fun", "Paynote", "Paymero", "Paymero-QR", "PayU", "PayULatam", "Perfect-money", "Piastrix", "PIX", "PIX-Automatico", "PinPay", "phone", "PhonePe", "POLi", "PostFinance-card", "PostFinance-e-finance", "QIWI", "QPay", "QQPay", "Quickpay", "rapyd-checkout", "rebilly-hosted-payment-form", "Resurs", "reverse-withdrawal", "Ripple", "SafetyPay", "Samsung Pay", "SEPA", "Siirto", "Skrill", "Skrill Rapid Transfer", "SMSVoucher", "Sofort", "SparkPay", "SPEI", "swift-dbt", "Tele2", "Telr", "Terminaly-RF", "Tether", "Thunes-Checkout", "ToditoCash-card", "Trustly", "Tupay", "TWINT", "UniCrypt", "UPayCard", "UPI", "USD-coin", "VCreditos", "VegaWallet", "VenusPoint", "Viva", "voucher", "voucher-2", "voucher-3", "voucher-4", "Wallet88", "Webmoney", "Webpay", "Webpay-2", "Webpay Card", "WeChat Pay", "XPay-P2P", "XPay-QR", "Yandex-money", "Zotapay", "Zimpler", "Zip"
- `_embedded.transaction.velocity` (integer)
  Number of transactions by the same customer in the past 24 hours.
- `_embedded.transaction.paymentInstrument` (object)
- `_embedded.transaction.riskMetadata` (any)
- `_embedded.transaction.notificationUrl` (string | null)
  URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly.
- `_embedded.transaction.isProcessedOutside` (boolean)
  Specifies if the transaction is processed outside of Rebilly.
- `_embedded.transaction.isMerchantInitiated` (boolean)
  Specifies if the transaction is initiated by the merchant.
- `_embedded.transaction.orderId` (string)
  Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead.
- `_embedded.transaction.limits` (object | null)
  Transaction amount limit information.
- `_embedded.transaction.limits.amount` (number)
  Limit amount.
  Example: 275.35
- `_embedded.transaction.limits.resetTime` (string | null)
  Date and time in which the limit amount resets. This value may be used for user interfaces.
- `_embedded.transaction.organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `_links` (array)
  Links to related resources.
- `_links.href` (string)
  URL of the link.
- `_links.rel` (string)
  Relationship type of the link.
  Enum: "transaction"

# Usage

Use these operations to manage the product usage of a subscription item for metered billing purposes.

Use metered billing when product quantity is unknown to the customer at the moment of creating a subscription.
Metered billing is based on reported usage records.
Every reported usage updates the quantity of an upcoming invoice item for a specified subscription and a plan.
To create a metered billing plan, see [Plans](https://www.rebilly.com/catalog/all/plans).

- [GET /usages](/docs/dev-docs/api/usage/getusagecollection.md): Retrieves a list of usage records.
- [POST /usages](/docs/dev-docs/api/usage/postusage.md): Creates a usage report.
- [DELETE /usages/{id}](/docs/dev-docs/api/usage/deleteusage.md): Deletes a usage record with a specified ID.

# Delete a usage record

Deletes a usage record with a specified ID.

Endpoint: DELETE /usages/{id}
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## 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 404 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 409 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 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.

# Retrieve usage records

Retrieves a list of usage records.

Endpoint: GET /usages
Version: latest
Security: SecretApiKey, JWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.

## Response 200 fields

- `id` (string)
  ID of the usage record.
  Example: sub_usg_0YVJ636B95DNA9M3B1638HXBCQ
- `subscriptionId` (string, required)
  Subscription ID for which the usage is reported.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `invoiceId` (string | null)
  ID of the invoice to which usage is applied. This value is populated when the invoice is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `invoiceItemId` (string | null)
  ID of the invoice item to which usage is applied. This value is populated when the invoice is issued.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `quantity` (number, required)
  Quantity of consumed units for a subscription plan product. Represents the actual usage of a billable product or service by the customer. Accepts both integer and decimal values with a precision of up to 3 decimal places. The minimum billable unit is 0.001.
  Example: 5.125
- `usageTime` (string)
  Date and time, in ISO 8601 format, when a usage occurred. If this value is not provided or is empty, the date and time of the request is used.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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.

# Create a usage record

Creates a usage report.

Endpoint: POST /usages
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `subscriptionId` (string, required)
  Subscription ID for which the usage is reported.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `quantity` (number, required)
  Quantity of consumed units for a subscription plan product. Represents the actual usage of a billable product or service by the customer. Accepts both integer and decimal values with a precision of up to 3 decimal places. The minimum billable unit is 0.001.
  Example: 5.125
- `usageTime` (string)
  Date and time, in ISO 8601 format, when a usage occurred. If this value is not provided or is empty, the date and time of the request is used.
- `acceptPartialQuantity` (boolean)
  Specifies whether partial usage should be accepted if the reported quantity exceeds the available limit. When set to `true`, the system automatically adjusts the reported quantity to the maximum allowed limit and reports the usage. When set to `false`, the system rejects the request if the reported quantity exceeds the limit.
  Example: true

## Response 201 fields

- `id` (string)
  ID of the usage record.
  Example: sub_usg_0YVJ636B95DNA9M3B1638HXBCQ
- `subscriptionId` (string, required)
  Subscription ID for which the usage is reported.
  Example: sub_01HRF27SATGE4Z6PBJE6PD8328
- `invoiceId` (string | null)
  ID of the invoice to which usage is applied. This value is populated when the invoice is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `invoiceItemId` (string | null)
  ID of the invoice item to which usage is applied. This value is populated when the invoice is issued.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `quantity` (number, required)
  Quantity of consumed units for a subscription plan product. Represents the actual usage of a billable product or service by the customer. Accepts both integer and decimal values with a precision of up to 3 decimal places. The minimum billable unit is 0.001.
  Example: 5.125
- `usageTime` (string)
  Date and time, in ISO 8601 format, when a usage occurred. If this value is not provided or is empty, the date and time of the request is used.
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self"

## 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 409 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 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.

# One-Time Sale vs. Subscription: What Makes Customers Buy?

There’s a lot of information out there on how to maximize your sales — but how much of it is relevant to your business?
Sales research is often based on the assumption of a one-time sale and a business model based on selling products.

**Sometimes that age-old wisdom holds true for subscription-based businesses…and sometimes, what works for another business can hurt a subscription-based business.**

The question for you, then, is what are the key differences for customers between deciding to buy a one-time product and signing up for a subscription product or service?
And how can you utilize those differences to get more sales?

## Do free trials work?

Free trials can work in non-subscription businesses — samples are a popular sales tactic for a reason.
With free trials, it’s a little different, because the customer has to take an action to get the free sample. **If you’re a subscription business, there are two points of conversion:**

1. Getting the prospect to convert to a free trial user 2.
  Getting the free trial user to convert to a paying customer

When it comes to the first point, there are no hard and fast rules.
Because of that, you should always test your landing pages and copy — depending on your industry and customers, you might find some surprises.
For example, Wedbuddy originally had a free trial CTA that emphasized that the no-risk, no credit card nature of their free trial.
Putting the “free” in “free trial” makes sense, right?

However, when they tested this landing page against a different version with a few key changes, they [increased conversions by 73%](http://growthrock.co/saas-conversion-optimization/).
One of the biggest changes was changing the CTA to focus on what users could _do_ with the free trial — create a website in minutes. **The lesson is to test everything.**

_(For more about running successful experiments, head to_ [_our post on price optimization_](/blog/how-to-optimize-your-prices-to-increase-subscription-revenues/)_, or check out the free guide below.)_

### Does the trial length matter?

**Another factor to think about with your free trials is how long they should be.** For monthly subscriptions, 14-30 days is usually the go-to.
There are a few things to note here:

- If your trial length is too short, especially if you have a service/product that requires setup and onboarding, people are unlikely to give it a go at all.
- At least some [recent research suggests](https://www.marketingcharts.com/featured-80988) that there isn’t any correlation between free trial length and conversion rate to paying users.
  That means this is another area where you’ll want to test and gather data for yourself.
  Make sure to track not just which trial offer (14 vs. 30 days, for example) converts to more free trial users, but which converts to more long-term customers.
  [Head here](/blog/data-based-marketing-can-increase-ltv/) for more on the importance of long-term data collection.
- [Another smaller scale review of SaaS data](https://blog.madkudu.com/50-of-saas-conversions-happen-after-trial-ends/) by MadKudu showed that no matter what length a free trial is, a lot of customers don’t convert until after the free trial is over.
  In some cases, a significant percentage of customers didn’t convert until a month or more after the trial had ended.
  This underscores the importance of long-term tracking and testing when it comes to your free trials.
- If you’re looking for more resources, [Customer.io has a great breakdown of elements of your free trial process](https://customer.io/blog/free-trial-user-experience/) to tweak and test.
- And of course, [Rebilly makes it easy to set up a free trial](/product/orders/), if you want to see how effective it is for your business.

**One last thing to note is that the effectiveness of your free trial will be heavily influenced by your onboarding process.** Onboarding — and doing it correctly — is a topic big enough for its own blog post.
Just keep in mind that if all you do is send one welcome email and one “Your trial is almost up” email, you’re likely losing customers and it has nothing to do with your free trial length or CTA.

![Hey beauti splash](/content-assets/hey-beauti-magazine-625631-unsplash-1024x683-a05e0c7e28756c14.jpg)

_Photo via [Hey Beauti Magazine](https://unsplash.com/photos/UPXAjm_I_fs?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/search/photos/calendar?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)_

## Are monthly plans the way to go?

A monthly subscription is the default that most subscription businesses use — but is it the most effective?

There are pros and cons to having longer subscription periods available.
The second-most common option outside of monthly is annual, but you could also look at offering quarterly plans.

The biggest argument for offering annual plans has nothing to do with the customer and everything to do with your business.
Annual plans get you more upfront revenue — when a customer commits to a whole year upfront, you get that money faster than you would if they were paying month by month.
Because of that, you can recoup your customer acquisition cost quicker, and reinvest that in your business.
To see some graphs comparing revenue growth with annual vs. monthly plans, [head to this post from ProfitWell](https://www.profitwell.com/blog/here-is-why-every-saas-company-needs-an-annual-plan).

**However, we aren’t here to talk about whether it’s a smart business strategy or not — we’re here to figure out whether it makes customers more or less likely to buy.** If you present annual prices first (and show the total annual price), it can be a form of price anchoring.
The idea behind “price anchoring” is that you show a more expensive price first.
That makes the less expensive price feel like the more reasonable choice.
(The old sales saying goes: “How do you sell a $2,000 watch?
Put it next to a $10,000 watch.”)

**The biggest thing to remember when presenting annual prices is to be careful not to overwhelm your customer.** If you have five different plans and have two different ways of viewing prices, you might give customer so many choices that they don’t make any choice at all.

### Can plan length affect customer commitment?

Interestingly, there is some debate about whether the length of subscription affects the customers’ commitment to the product.
[Harvard Business Review has conducted research](https://hbr.org/2002/09/pricing-and-the-psychology-of-consumption) which suggests that monthly pricing can make customers more committed.
When renewing on an annual basis, the “sting” of the price fades over time.
The result: people are less likely to stay committed.

When paying monthly, however, customers are reminded of the cost and more likely to make use of what they’re paying for.
And if they’re using it regularly, they’re more likely to renew their membership (and tell other customers about it).

### **The two takeaways around plan length are that:**

- Showing annual plans and/or annual costs can be used as a form of price-anchoring to incentivize people to sign up for a higher plan than they may have normally
- Monthly pricing can increase customer retention/lifetime value, as customers are often more committed with monthly plans

Of course, depending on your target market, these might change.
For example, in many B2B cases, the person paying for the product isn’t the person using it, so annual plans might not make any difference in customer commitment. **The answer, as usual, is testing and user interviews to double-check your assumptions.**

## How are you showing your prices?

This is one area where the commonly-held wisdom about pricing can hold true — and in fact, might be _more_ important.
When you have several plans available, and then a monthly or annual option for each plan, customers can get overwhelmed quickly.

Here are a few questions to help gauge if you’re potentially losing people because of your pricing plans:

- **Can I streamline this more?** In an [extreme case study for simplification](https://www.groovehq.com/blog/pricing-that-worked), Groove found that by cutting all of their tiered pricing and switching to a flat per-user per-month rate, they increased their free trial conversions quite a bit and increased revenue by 25%.
  That might not work for your business model, of course.
  Still, it’s worth taking a critical look at your pricing plans to see if you can simplify them more, and testing simplified versions.
- **What order am I displaying prices in?** Price anchoring can come in here, as well, which is why [Lincoln Murphy suggests putting your most expensive prices first](http://entures.com/pricing-page-design-high-to-low).
  You’ll also want to take a look at which plan you’re visually highlighting — if any — and why you’re highlighting it.
  Is it the most popular plan?
  The most profitable for you?
- **Will my customers immediately be able to see how much this costs?** In an interesting counterpoint to the way most companies display prices, [RJMetrics increased signups on their pricing page by 310%](https://www.crazyegg.com/blog/pricing-page-optimization/) by nixing a three-column layout and putting the emphasis on a pricing calculator that let users immediately see what they’d be paying.

Of course — you know what’s coming up next — the best way to find out what will work is to test all of this for _your_ business and _your_ customers.
While humans are, in general, fairly predictable creatures, there is no “one size fits all” for all businesses and industries.

## **Want to test some of what you’ve just learned and run some pricing experiments of your own?**

Download our Price Optimization Cheat Sheet below:

# Manage payment instrument options

This topic describes how to manage payment instrument options using the Rebilly Instruments JavaScript library.

## Basic payment instrument management setup

**Important**

This topic assumes that you have already completed one of the [Get started guides](/docs/dev-docs/get-started-integrate-payments),
and are looking to customize or extend the functionality.

Payment methods that are displayed in payment forms are based on the gateway and payment method configuration.
For more information, see [Set up a payment gateway](/docs/settings/set-up-a-gateway) and [Payment method configuration](/docs/settings/payment-method-configuration).

This example describes the basic setup for payment instrument management using the Rebilly Instrument JavaScript library.
It only displays payment methods for which the customer has existing payment instruments.
If the customer does not have any existing instruments, no methods are displayed.

For this example, you do not need to add [purchase data](/docs/dev-docs/example-rebilly-instruments-purchase-data).

In this example, `features.hideContinue` is set to `true`, which prevents the customer from proceeding to perform a payment.
This ensures that only payment instrument management is allowed.

### Example

```javascript
import RebillyInstruments from '@rebilly/instruments';

RebillyInstruments.mount({
  jwt: 'jwt-example',
  apiMode: 'sandbox',
  paymentInstruments: {
    allowDeactivate: true,
    allowUpdate: true,
    allowMakeDefault: true,
    allowCreate: true,
  },
  features: {
    hideContinue: true,
  },
});
```

### Manage payment instruments options

The following can be specified in the options property of the `RebillyInstruments.mount` method:

- `allowDeactivate`: Allows the customer to deactivate payment instruments.
- `allowUpdate`: Allows the customer to update payment instruments.
- `allowMakeDefault`: Allows the customer to set a default payment instrument.
- `allowCreate`: Allows the customer to create new payment instruments.

## Advanced payment instrument management setup

This example describes the advanced setup for payment instrument management using the Rebilly Instrument JavaScript library.
This setup provides [purchase data](/docs/dev-docs/example-rebilly-instruments-purchase-data), which facilitates the use of any payment methods that are permitted for the provided purchase data.

If no specific payment is expected, use the `money` purchase data type for a minimum value.
Payment gateways that accept this minimum value must be configured to display this payment method.

Payment methods that are displayed in payment forms are based on the gateway configuration.
For more information, see [Set up a payment gateway](/docs/settings/set-up-a-gateway).

### Example

```javascript
import RebillyInstruments from '@rebilly/instruments';

RebillyInstruments.mount({
  jwt: 'jwt-example',
  apiMode: 'sandbox',
  money: {
    amount: 1,
    currency: 'USD',
  },
  paymentInstruments: {
    allowDeactivate: true,
    allowUpdate: true,
    allowMakeDefault: true,
    allowCreate: true,
  },
  features: {
    hideContinue: true,
  },
});
```

## Payment instrument management during payment

To enable payment flows with any [purchase data](/docs/dev-docs/example-rebilly-instruments-purchase-data), remove or set the `features.hideContinue` flag to `false`.

# Stop Losing Customers From Involuntary Churn - Here's How

**When you’re running a subscription business, churn is just part of the game.** Granted, you want it to be as low as possible, and you probably work hard on reducing your churn month to month…but do you pay attention to your involuntary churn?

While you’ll never be able to entirely eliminate churn — involuntary or not — you _can_ decrease it as much as possible.
In particular, involuntary churn, when a previously happy customer is lost due to circumstances like an expired credit card or declined transaction, is typically preventable.
And not only is it preventable…it’s potentially costing you much more money than you’ve realized.

On average, most debit and credit cards issued expire after three years, with some US card issuers shortening the cycle even more in response to [the new EMV “chip & pin”](https://www.creditcards.com/credit-card-news/emv-faq-chip-cards-answers-1264.php) mandates.
That means that, at minimum, 1/36th of all cards in circulation (or 2.8 percent), expire every month.
This doesn’t account for cards that are canceled due to theft or other circumstances, but we’ll use it as a baseline to discuss the costs of involuntary churn.

## An example of how much involuntary churn can affect a subscription business

![churn diagram](/content-assets/involuntary_churn_3-1024x131-799a49cddf8303e7.png)

- Let’s say you start with 1,000 subscribers, and aren’t making any effort to earn new subscribers _or_ reach out to customers as their cards expire (unlikely, but we’ll run with it so that we have round numbers for the sake of this example).
- In just one year, you’ll lose 34% of your revenue, compared to the prior year (or 336 subscribers).
- In your second your, you’ll 336 more subscribers, and take a 50% drop in revenue over the prior year.
- By the end of the third year, you’ll have lost virtually all of your revenue and subscribers — all over declined credit card transactions and involuntary churn.

In a real world situation, your sales and marketing engines are hopefully adding new subscribers at a much faster rate than you’re losing them.
Either way, it’s worth setting up systems to decrease involuntary churn.
That way, you’re covered in case something happens that throws off your sales and marketing goals (like [your primary social media platform changing the way it shows posts](https://later.com/blog/how-instagram-algorithm-works/)).

It’s also worth noting that it’s much more affordable to reduce churn than it is to acquire a new customer. **So no matter how quickly you’re adding subscribers, it’s still costing you more than keeping the ones you already have.**

## Let’s look at another example…

If your churn rate is 5% per month, and you charge a monthly subscription fee of $39, your projected lifetime customer value (LTV) is $780.
($39 divided by .05 = $780)

![churn calculation diagram](/content-assets/involuntary_churn_1-6d25dc31cfaa02e7.png)

If you look at it from a different angle, that means your average customer lifetime is 20 months.
By reducing your rate of involuntary churn, you can, in turn, increase your average customer lifetime (and your average LTV).

If, for the purposes of this example, we assume that 2% of your total churn rate is voluntary — customers actively choosing to cancel their subscription — that means that the remaining 3% is involuntary churn. **If you can cut that in half, to a new rate of 1.5% of involuntary churn or 3.5% total churn, you can increase your customer lifetime value by quite a bit, to $1,114 (or nearly 43% more).**

## Use revenue to decrease involuntary churn — yes or no?

If I were to tell you that it would cost 2% of your revenue to cut your involuntary churn by 1.5%, would you want to take the deal?
Probably not, right?
It sounds like a bad deal, at first glance.
But if you break down the math, you’ll find a different story.

When you invested nothing in churn reduction, your customer lifetime value was $780.
If you invest two percent of your revenue into strategies that, in turn, reduce churn by 1.5%, you end up with an LTV of $1114 — at a cost of $22.28 ($1114 x .02).
In other words, it would cost you just over $22 to earn $334, which is **a 15x return on investment.**

How quickly do you achieve that ROI?
It takes 29 months to fully realize it, but the first “earnback” usually happens after a few short months.

**Even with more conservative returns, it doesn’t make sense to _not_ invest in reducing churn.** If your 2% investment results in a .01% reduction in monthly churn, you’ll still save 1 out of 1000 customers every month, and completely break even on the investment.

In extreme cases, we’ve had customers come to us with monthly churn rates as high as 20%.
These companies were literally bleeding out, and in their cases, very small investments in churn reduction not only saved them, but for some of them, made them wildly profitable again.

## So…how do I get started fixing it?

There are a lot of ways you can approach the problem of involuntary churn. **Our suggestion for your first place to start?** Get proactive with your customers who have cards expiring soon, and make the process as easy as possible for them (there’s a special trick for this in the download below).

The data is all there, it’s just a matter of automating a process to act on it.
[In Rebilly](/product/renewals/), you can set up automatic card update reminder emails to your customers.
You’ll create a custom event and schedule it to run before the payment card expires by a certain amount of time (for example, 30 days).
Then, you’ll add a rule to the custom event with an email action (and compose the email).

No matter what subscription software you’re using, if you’re using an email marketing tool (like MailChimp, Aweber, Drift, etc.), you can export your list of customers with cards set to expire in the next two months.
Then, you can use that to create an email series reminding them to update their payment card.
It’s a simple action that will only take a few moments to set up (and some maintenance over time), but you’ll see the dividends before you know it.

**Want a fully-developed strategy with actionable steps you can take to decrease involuntary churn?** Our Retry Strategy guide teaches you exactly how to use data like decline codes and card types to reduce churn and increase your CLV.

# How Do You Reduce Involuntary Churn? Start by Tracking It

**If you’ve been in the subscription business for a while, you’re no stranger to involuntary churn — or the desire to reduce it**.
Even as a new business owner, you probably know churn is something you’ll deal with regularly, voluntary, or not.

Luckily, there are steps you can take to reduce involuntary churn.
However, you can’t set a goal to reduce involuntary churn until you know where you’re starting from.

**After all, “what gets measured gets improved,” as Peter Drucker, author of _The Effective Executive,_ famously said.** In other words, step one to reducing churn is to track it.
How else can you know whether you’ve improved?

## …And involuntary churn is? (A refresher)

Churn comes in two flavors: voluntary and involuntary.

Voluntary churn occurs when an unsatisfied customer cancels their subscription.
Reducing this type of churn is where most businesses focus the most effort.
And for good reason: [of the average 5-7% average churn rate](https://sixteenventures.com/saas-churn-rate) for a subscription business, and of that, [60-80%](https://www.priceintelligently.com/blog/profit-well-march-2018/the-profitwell-report-the-worlds-largest-study-on-churn-17) is voluntary.

If you did nothing to improve customer retention or win new business, that means you’d lose over 56% of your subscribers within a year.
As it turns out, [involuntary churn is expensive](/blog/how-to-fix-involuntary-churn/).

The remaining nearly [20-40%](https://www.priceintelligently.com/blog/profit-well-march-2018/the-profitwell-report-the-worlds-largest-study-on-churn-17) of churn is involuntary, which can happen even if the subscriber is a raving fan, and/or one of your biggest customers.
(Involuntary churn doesn’t discriminate.) It occurs when a subscription is unintentionally interrupted because of scenarios like:

- A subscriber forgets to update their billing information and their credit card expires
- A customer’s credit card is lost or stolen
- A customer’s bank declines the subscription charge due to a network error or because the customer exceeded their credit limit

Any of these situations can lead to a lapsed subscription.
That, in turn, can potentially cause problems for the customer, in addition to lost or disrupted revenue for your business.

### So, why pay attention to involuntary churn?

**Involuntary churn quietly erodes your profits and damages customer relationships.** The involuntary churn average of about [1.8%](https://www.priceintelligently.com/blog/profit-well-march-2018/the-profitwell-report-the-worlds-largest-study-on-churn-17) (20-40% of an average 5-7% churn rate) of all transactions across industries may seem relatively harmless.
However, those errors and delays can have a big impact on your business over time—over 20% in a year, if nothing is done to fix or prevent them.

If your subscription base represents $100K a year, involuntary churn could add up to $20K+ in lost revenue _every year_.
If you did nothing to proactively reduce involuntary churn, your revenue would drop by _half_ in less than 3 years.

In addition, involuntary churn can destroy customer trust, leading to [account cancellation](https://gocardless.com/guides/posts/intro-to-churn/).
Let’s say a card payment declines, and the customer only learns that something went wrong when the software they and _their_ customers rely on suddenly stops working.

As their business grinds to a halt and customer service issues mount, they make an angry call to you and provide a new payment method.
Their account is restored, but the damage has been done.
Inconsistent service breaks customer trust, even if they are technically “at fault” due to a failed payment method.

If service interruption doesn’t cause catastrophic repercussions, a declined payment can still turn into an unplanned reevaluation of your service and its cost, paving the way for a customer’s potential defection to one of your competitors.

**Do you know how many subscribers you’re losing to involuntary churn each month?
How do you compare to industry benchmarks?
And why is this important?**

By tracking involuntary churn, you’ll get a clear picture of what normal levels are for your business.
By comparing your business to your industry rates, you’ll get a sense of how you stack up — and whether you’re missing an opportunity to carve out a competitive advantage.

## Involuntary churn benchmarks by industry, business stage, and product

In general, B2C companies experience more churn than B2B companies, averaging [8.11% versus 6.22%](https://tech.co/news/startup-churn-rates-industry-standard-2017-06).
SaaS and cloud computing services include a higher proportion of B2B services which tend to experience less churn.
As a result, involuntary churn rates are lower.
Education churn rates are seasonal, dropping when school is out of session.

If you are in a [growth stage](https://www.incredo.co/blog/what-is-a-reasonable-customer-attrition-rate-by-industry), your business can tolerate a higher churn rate.
For example, if you gain new subscribers at a rate of 10% per year, an annual churn rate (not to be confused with monthly churn rate) of 5% is manageable, as your revenue is still growing.

If you offer a more specialized service, you can expect a [lower number of new subscribers](https://www.incredo.co/blog/what-is-a-reasonable-customer-attrition-rate-by-industry).
Churn, then, becomes much more significant, as renewed subscriptions will more directly determine your company’s sustainability.

Finally, pricing matters.
The [larger the size of your contract/subscription](https://www.incredo.co/blog/what-is-a-reasonable-customer-attrition-rate-by-industry), the lower you can expect your churn rate to be.

## How to track involuntary churn

You can make this data collection and analysis as simple or complex as you want.
In a nutshell, you’ll want to get a sense of your overall monthly churn, then determine what portion of that churn is involuntary.

To calculate your overall churn rate, you can divide the number of subscribers who churn during the month by the number of subscribers at the beginning of the month.
Easy-peasy, lemon-squeezy.

Or, you can calculate your churn rate by day, then extrapolate your results to calculate your monthly figures.

You can also calculate churn rates based on [revenue](https://www.wordstream.com/blog/ws/2014/05/12/customer-churn), using monthly reoccurring revenue (MRR) as a baseline figure, where MRR at the end of the month is subtracted from MRR at the beginning of the month, less any customer upgrades.
That figure is divided by the starting MRR.

**To determine what portion of your churn is involuntary, measure how many of your lost customers were due to credit card declines versus account cancellations.** To slice and dice this data even more, filter your credit card declines by their decline codes.
That way, you can isolate whether your primary issue is:

- expired cards
- outdated billing info
- spendy customers who exceeded their credit limits
- or something else entirely

**The more specific data you gather, the more strategic you can be in your approach to reducing involuntary churn.**

## How to reduce involuntary churn

**The best way to reduce involuntary churn is by implementing automated decline management tools.** Here are a few examples (using our tool of choice, [Rebilly](/product/renewals/)—but the strategies are the same no matter what you’re using):

- **Remind your clients when their payment method will soon expire.** You should be able to automate these email reminders to your customers.
  Chances are they don’t know when their expiration date is and will appreciate the follow-up to keep their service going.
  ([Head here](/blog/how-to-fix-involuntary-churn/) for more tips on how to do that.)
- **Keep customer credit card information as current as possible, automatically.** Rebilly’s [Account Updater](/solutions/payments/) links up with card issuers to keep your customer’s card-on-file data updated automatically in the event of an expired card, lost or stolen cards, or account updates.
- **Automate retries of declined charges, intelligently**.
  If a payment is declined for whatever reason, you should be able to [automatically](/product/renewals/) and intelligently retry those payments based on decline code and timing.
  (There’s a whole [strategy](/blog/five-decline-definitions-to-empower-retries/) behind retries and how to get the most from them.)
- **Predict new expiration dates and update cards before a decline occurs**.
  Our [expiration date guesser](/product/renewals/) follows standard expiration date calculations and tests the new expiration date before running the card for the full subscription amount.
  And it does so _before_ waiting for a declined charge.

**Want a step-by-step strategy to decrease involuntary churn?** Our Retry Strategy guide teaches you exactly how to use data like decline codes to reduce churn and increase your CLV:

# Manage customer compliance

This topic describes how to manage customer compliance.

## Add customer data to a blocklist

Use this process to add customer data to a blocklist.

Use blocklists to prevent fraud and criminal activity.
A blocklist is a list of customer attribute values that are blocked from buying from you.
For example, if a customer attempts to buy from you with a credit card or fingerprint that is in a blocklist, the transaction is blocked and is not processed.
For more information, see [Blocklists](/docs/automations/blocklists).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the right of the page, press **Manage customer**, then press **Block customer**.
5. Select a blocklist type and specify blocklist criteria.
6. Press **Save**.

## Request KYC documents

Use this process to request KYC documents from your customer.
This process generates a link that is shared with the customer.
When the customer opens the link, they are then guided through the document submission process.
For more information, see [KYC](/docs/kyc-and-aml/kyc).

This feature is available for the Rebilly KYC add-on only.
To activate KYC, [contact Rebilly](/support/).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the right of the page, press **Manage customer**, then press **Request documents**.
5. Under **Select document types**, select one or more document types to request from the customer.
  For more information on document types and how they are analyzed, see [Automated KYC document analysis](/docs/kyc-and-aml/kyc#automated-kyc-document-analysis).
6. For each document type, to set the number of allowed failed upload attempts: In the **Max attempts** field, enter a number.
7. Optionally, if you select the **Identity proof** document type, select from the following:

    - Require the customer to take a "selfie" during the document upload process: Select the **Request selfie** checkbox.
    - Use face liveness detection when the customer is taking a "selfie": Select the **Face liveness** checkbox.
      Face liveness detects spoofs that are presented to the camera, such as printed photos, digital photos, digital videos, and 3D masks.
      Face liveness also detects spoofs that bypass the camera, such as pre-recorded or deepfake videos.
      Face liveness detection uses a strict process.
      In some cases, such as in an environment with poor lighting, customers may find this difficult to complete.
8. In the **Document verification level** section, select from the following:

    - **Strict:** Strict verification requirements.
      Use this option for requests that relate to credit transactions.
    - **Moderate:** Moderate verification requirements.
      Use this option for requests that relate to sale transactions.
    - **Basic:** Basic verification requirements.
      Use this option for KYC requests that do not require a high level of verification.
9. Optionally, to describe the reason for the document request: In the **Reason for requesting document** field, enter a message.
10. In the **Redirect URL** field, specify a URL where the customer is directed after they submit KYC documents.
11. Optionally, to set an expiration time for the KYC request: In the **Request valid until** field, select a date and time.
  If the field is empty, the request expires one hour after creation.
12. Press **Generate link**.
13. Share the generated link with the customer.

## Upload KYC documents

Use this process to upload KYC documents on behalf of a customer.
Each uploaded file is saved immediately and then enters automated analysis.
For more information, see [KYC](/docs/kyc-and-aml/kyc) and [Automated KYC document analysis](/docs/kyc-and-aml/kyc#automated-kyc-document-analysis).

This feature is available for the Rebilly KYC add-on only.
To activate KYC, [contact Rebilly](/support/).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the right of the page, press **Manage customer**, then under **KYC**, press **Upload documents**.
5. On the **Upload documents for** page, upload one or more KYC documents.
6. **Select the document types**

  Select from the following:

    - **Identity proof:** Birth certificate, Driver license, Firearms license, ID card, Marriage certificate, Name change, Passport, Proof of age card, Public health card.
    - **Address proof:** Bank or card statement, Debtor's letter, Driver's license, ID card, Income statement, Insurance letter, Lease agreement, Other, Public or civil service, Rental receipt, Reverse of ID, Utility bill.
    - **Funds proof:** Bank or card statement, Inheritance or estate doc, Other, Salary or wage slip, Sale of assets, Tax return.
    - **Purchase proof:** Bank or card statement, Copy of credit card, Credit card statement, eWallet holder details, eWallet transaction statement, Other, Payout account ownership, Void check.
7. **Upload files**

  The following file types are accepted:

    - **Identity proof:** PNG, JPEG, or PDF.
    - **Address proof**, **Funds proof**, and **Purchase proof:** PNG, JPEG, GIF, or PDF.
  Select from the following:

    - Drag and drop the file onto the upload area.
    - Press **Browse files**, then select the file.
    - Select the section, then paste an image from your clipboard.
8. **Optionally, upload the second side of a document**

  If a document has two sides, upload the second side when prompted.
  Two-sided upload is required for the following:

    - **Copy of credit card** in the **Purchase proof** section.
    - **ID card** in the **Identity proof** section, for customers with an address in Austria, Bulgaria, Cyprus, France, New Zealand, Poland, Singapore, or the United States.
    - **Driver license** in the **Identity proof** section, for customers with an address in New Zealand.
9. **Optionally, upload a selfie with an identity proof document**

    1. For the **Identity proof** document type, to include a selfie with the document, select the **Upload selfie** checkbox.
      Supported document subtypes are **Passport**, **ID card**, and **Driver license**.
    2. After you upload the identity document, upload the selfie when prompted.
10. **Optionally, view the uploaded KYC documents**

  This process opens the loaded documents for manual review.
  Uploaded documents complete [automated analysis](/docs/kyc-and-aml/kyc#automated-kyc-document-analysis) immediately and are ready for review.

  Select from the following:

    - If you are on the upload page: At the bottom of the **Identity proof**, **Address proof**, **Funds proof**, and **Purchase proof** sections, press **Go to KYC documents**.
      This opens the uploaded documents in a new tab.
    - If you are not on the upload page, see [Review KYC documents](/docs/data-tables/manage-kyc#review-kyc-documents).

## View completed customer AML checks

Use this process to view completed Anti-Money Laundering (AML) checks for a customer.
For more information on customer AML checks and how to manage reviews, see [Manage AML](/docs/data-tables/manage-aml).

This feature is available for the Rebilly KYC add-on only.
To activate KYC, [contact Rebilly](/support/).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers** or **Leads**.
3. In the **Name** column, press a customer or lead name.
4. In the right of the page, in the **AML checks** section, view the details of completed AML checks.
  To view more information on an AML check, press the ID number of the check.
  The time and date of each AML check are also displayed in the customer's timeline.

## View uploaded KYC documents

Use this process to view uploaded Know Your Customer (KYC) documents.
For more information, see [Upload KYC documents](#upload-kyc-documents) and [Manage KYC documents](/docs/data-tables/manage-kyc).

This feature is available for the Rebilly KYC add-on only.
To activate KYC, [contact Rebilly](/support/).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers** or **Leads**.
3. In the **Name** column, press a customer or lead name.
4. In the right of the page, in the **KYC** section, view the uploaded KYC documents.
5. In the document column, press a KYC document to view it.

## Compliance screening reports

A compliance screening report summarizes KYC and AML screening results for a customer, an employee, or a potential employee.

When a compliance screening report is generated, the person's details are verified against uploaded KYC documents, and the person is automatically checked against AML lists.
The report is saved as a PDF attachment on the customer record.
Generated reports are listed in the **Compliance screening** section, and you can download them at any time.

Compliance screening reports contain sensitive Personally Identifiable Information (PII), including identity details and screening results.
Handle downloaded PDFs according to the data protection and retention policies of your company.

For more information, see [KYC](/docs/kyc-and-aml/kyc) and [AML](/docs/kyc-and-aml/aml).

This feature is available for the Rebilly KYC add-on only.
To activate KYC and AML, [contact Rebilly](/support/).

### Screen a customer for compliance

Use this process to screen a customer for compliance and generate a compliance screening report as a PDF attachment.

To use this feature, you must have already collected KYC documents from the customer.
KYC documents may be requested automatically, for example, before the customer makes a payment.
You can also request documents manually, by sharing a link to a document request.
For more information, see [How KYC works](/docs/kyc-and-aml/kyc#how-kyc-works).
To view a customer's uploaded KYC documents, see [View uploaded KYC documents](#view-uploaded-kyc-documents).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. Optionally, if you have not already done so, [configure AML settings](/docs/settings/aml).
  AML checks are performed automatically when a compliance screening report is generated.
3. In the left navigation bar, press **Data tables**, then press **Customers**.
4. In the **Name** column, press a customer's name.
5. In the right of the page, in the **Compliance screening** section, press **Generate report**.
6. Optionally, to download a generated report: In the **Compliance screening** section, on the right of a report, press **Download**.

### Screen employees or potential employees for compliance

Use this process to screen employees or potential employees for compliance and generate a compliance screening report as a PDF attachment.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. **Set up your organization and configure settings**

  This is the initial setup for employee or potential employee screening, and you must complete it only once.

  If you have already created an organization for employee screening and configured AML settings, skip this step and proceed to [Screen an employee or potential employee](/docs/data-tables/manage-customer-compliance#screen-an-employee-or-potential-employee).

    1. **Create a new organization**

      Create a new organization to screen employees or potential employees for compliance.

      To control access and protect sensitive employee PII from unauthorized staff, it is strongly recommended to create a new organization for employee screening.

          1. In the top left corner of the page, press your organization name.
          2. In the dropdown, press **Add new organization**.
          3. In the **Organization name** field, enter `Employee screening`.
          4. In the **Organization website** field, enter any fake URL, such as `https://example.com`.
          5. In the **Country** dropdown, select the country where your company is located.
          6. In the **Reporting currency** dropdown, select the currency of your company.
          7. Press **Add organization**.
    2. **Configure AML settings**

      AML checks are performed automatically when a compliance screening report is generated.

      Configure the AML settings for screening:

          - [Configure AML confidence level settings](/docs/settings/aml#configure-aml-confidence-level-settings)
          - [Configure AML match priority settings](/docs/settings/aml#configure-aml-match-priority-settings)
3. **Screen an employee or potential employee**

  This process screens an employee or potential employee for KYC and AML compliance.
  AML checks are performed automatically when a compliance screening report is generated.

    1. **Enter the person's details**

      This process enters the person's details into the system.
      Complete the listed fields only:

          1. In the left navigation bar, press **Data tables**, then press **Leads**.
          2. Press **Add customer**.
          3. In the **First name** and **Last name** fields, enter the person's name.
          4. In the **Date of birth** field, enter the person's date of birth.
          5. In the **Job title** field, enter the person's job title.
          6. In the **Organization** field, enter `Employee screening`.
          7. In the **Address line 1**, **Address line 2**, **City**, **Country**, **Region (state or province)**, and **Postal/ZIP code** fields, enter the person's address.
          8. In the **Phone number** field, enter the person's phone number.
            To add multiple phone numbers, press **Add phone number**.
            If more than one phone number is added, to set a primary phone number, select **Make primary**.
          9. In the **Email address** field, enter the person's email address.
            To add multiple email addresses, press **Add email address**.
            If more than one email address is added, to set a primary email address, select **Make primary**.
          10. Press **Save customer**.
    2. **Request KYC documents**

      This process defines the document types to request from the person and generates a link that is shared with the person.
      When the person opens the link, they are then guided through the document submission process.

          1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
          2. In the left navigation bar, press **Data tables**, then press **Leads**.
          3. In the **Name** column, press a person's name.
          4. In the right of the page, press **Manage customer**, then press **Request documents**.
          5. Under **Select document types**, select one or more document types to request from the person.
            For more information on document types and how they are analyzed, see [Automated KYC document analysis](/docs/kyc-and-aml/kyc#automated-kyc-document-analysis).
          6. For each document type, to set the number of allowed failed upload attempts: In the **Max attempts** field, enter a number.
          7. Optionally, if you select the **Identity proof** document type, select from the following:

                  - Require the person to take a "selfie" during the document upload process: Select the **Request selfie** checkbox.
                  - Use face liveness detection when the person is taking a "selfie": Select the **Face liveness** checkbox.
                    Face liveness detects spoofs that are presented to the camera, such as printed photos, digital photos, digital videos, and 3D masks.
                    Face liveness also detects spoofs that bypass the camera, such as pre-recorded or deepfake videos.
                    Face liveness detection uses a strict process.
                    In some cases, such as in an environment with poor lighting, people may find this difficult to complete.
          8. In the **Document verification level** section, select from the following:

                  - **Strict:** Strict verification requirements.
                    Use this option for requests that relate to credit transactions.
                  - **Moderate:** Moderate verification requirements.
                    Use this option for requests that relate to sale transactions.
                  - **Basic:** Basic verification requirements.
                    Use this option for KYC requests that do not require a high level of verification.
          9. Optionally, to describe the reason for the document request: In the **Reason for requesting document** field, enter a message.
          10. In the **Redirect URL** field, specify a URL where the person is directed after they submit KYC documents.
          11. Optionally, to set an expiration time for the KYC request: In the **Request valid until** field, select a date and time.
            If the field is empty, the request expires one hour after creation.
          12. Press **Generate link**.
          13. Share the generated link with the person.
          14. Optionally, to view the person's uploaded KYC documents: See [View uploaded KYC documents](#view-uploaded-kyc-documents).
    3. **Generate compliance screening report**

      This process generates a compliance screening report for the person in PDF format and saves it as an attachment.
      The report summarizes KYC and AML screening results.
      Generated reports are listed in the **Compliance screening** section, and you can download them at any time.

      To generate the compliance screening report, the person must have submitted KYC documents.
      For more information, see [View uploaded KYC documents](#view-uploaded-kyc-documents).

          1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
          2. In the left navigation bar, press **Data tables**, then press **Leads**.
          3. In the **Name** column, press a person's name.
          4. In the right of the page, in the **Compliance screening** section, press **Generate report**.
          5. Optionally, to download a generated report: In the **Compliance screening** section, on the right of a report, press **Download**.

# A One-Time Sale vs. Non-Recurring Subscription

One frequent question we receive: “What should we do for a one time sale?” The answer really depends on how the product or services will be delivered to your customer.
From a payment perspective, the intent is to collect a single payment from the customer (which is quite simple).
However, from a logistics and accounting perspective, three approaches demonstrate the variety to something that on the surface seems so simple:

- Record it as a one-time payment/sale.
- Record it as a subscription that does not recur (therefore only has one payment).
- Record it as a one-time prepaid payment.

## Olive Garden Illustration

We’ll use the Olive Garden as the “Merchant” for our illustration, being perhaps the newest high-profile entrant to the subscription economy.

The Olive Garden is a chain of 800+ restaurants, recently ran a promotion for 7 weeks of unlimited pasta for $100.
They offered 100 passes, and sold out within 45 minutes.

### Example A: Customer purchases a meal from Olive Garden

This example is quite straightforward.
The customer goes to Olive Garden, orders food.
Consumes the food.
And at the end of the meal, receives a bill.
The customer pays for the meal.
This is what we would call a one time sale.

### Example B: Customer purchases 7 weeks of unlimited pasta for $100

On the surface, this may not seem like a subscription, because it does not recur.
However, recurrence is not a required property of subscriptions.
With this product, the customer may go to the restaurant, and order pasta (and some other items), at any time over a 49-day period.
So, the main question is, when Olive Garden makes this “sale”, have they delivered the product or service?
When will they incur the expenses related with the product delivery?
The answer, it will be delivered over the course of the following 7 weeks.

Olive Garden shouldn’t record $100 in revenue, when they sold this offer on September 8, 2014.
Instead, they should record about ($100/49) $2.04 of revenue per day for each of the next 49 days.
Practically speaking, perhaps Olive Garden reports revenues on a monthly basis, in which case they would record almost $45 of the revenues in September, and the balance in October.
However, this illustrates how something as simple as a one-time payment can be very complex to account for…

If Olive Garden was using Rebilly, it would configure a plan with a fee of $100, set to only 1 time occurrence.

### Example C: Customer purchases a $100 gift card to Olive Garden

In this case, Olive Garden takes $100 from the customer in exchange for a gift card (could be physical or digital).
At this point, the customer has not consumed any of that $100, and Olive Garden would record that as a liability (unearned revenue).

A quick glance at Olive Garden’s website reveals that the eGift cards do not expire, which means, they need to carry this liability forward until the customer uses the gift card.
Let’s say, for our example, the customer visits Olive Garden, and purchases $30 of food, which leaves a balance of $70 on the gift card.
At this point, Olive Garden reduces their unearned revenue by $30, and increases their earned revenue by $30.
Similar to subscription, the gift card infuses cash to the company.
The company must be diligent though, as they will need to deliver its products and services in the future.

Besides tax and other compliance obligations, why bother with all of this effort for $100?
Definitely, example A is the easiest to understand, but by not exploring other opportunities, and reporting properly on them management can’t make informed decisions to help drive profitability and growth.

## The Bottom Line

The product delivery schedule better dictates the approach to use.
The reason to use a particular approach over another may be for better management reporting, tax, and/or compliance reasons.

## Want more tips on how to run a successful subscription business?

**Our Retry Strategy guide teaches you exactly how to use customer data to increase your customer lifetime value by a minimum of 43%, all in about five minutes.** Download it today to get simple steps you can take to increase your LTV:

# How to Use Account Updater to Increase Your Approval Rates

If you’ve come within ten feet of a subscription billing service, you’ve probably heard the term “involuntary churn.” But in case the term is unfamiliar to you, we’ll explain.
Involuntary churn is **span** when a previously happy, paying subscriber is lost due to circumstances like an expired credit card or a declined transaction.
It’s “involuntary” because the subscriber didn’t choose to end their subscription, rather it ended due to inaction on the subscriber’s part.

**span** Involuntary churn is extremely common for subscription businesses.
A subscriber signs up for an ongoing subscription with one payment method, likely a payment card.
Over time, that payment card will expire or the subscriber’s payment card could be compromised.
In this post, we’ll address a simple way to stop subscribers with expired cards from churning.

## **span** How to Prevent Expired Card Declines:

**span** We recommend a strategy that, whenever possible, seeks first and foremost to prevent expired card errors.
Getting new card information before the card expires reduces the risk of churn, and keeps your revenue predictable. **span** Strategies for proactively updating credit card information before they expire include:

### Account Updater Services

**span** Certain issuers offer services (like MasterCard’s Automatic Billing Updater and Visa’s Account Updater) that can keep your card-on-file data current.
These services automatically update customer records in the event of an expired card, lost or stolen cards, or account upgrades and portfolio conversions.
Please note that only certain issuers participate in Account Updater — and coverage varies dramatically from country to country.

**span** We strongly recommend looking into Account Updater services because it offers a seamless experience for both you and your subscriber.
Your records will stay current, so your customer won’t churn involuntarily, and the customer won’t have to take steps to update their information.

### Ask Customers for Their New Number Before the Old One Expires

****span** If Account Updater won’t work for you or isn’t offered in your country, we still recommend the old fashioned way — talk to your customers!
Depending on the nature of your relationship with the customer, and the subscription services you provide, it can be highly effective to reach out to your customer 30 to 60 days in advance of expiration to ask them to update their payment information.**

**span** In some businesses, this is a risky strategy, since it may give the customer an opportunity to reevaluate your service, and potentially churn voluntarily.
You know your business better than anyone else: if your customers are loyal and your service is extremely high-value, you should try this approach.
And if you know the customer will definitely churn due to an expired card, it can’t hurt to try.

A recurring billing service can help you manage these tasks, and help increase your approval rates and customer lifetime value with many other tools. **Not sure where to start when it comes to finding a subscription billing company that fits your needs?****span**  Download our free Six Must-Haves guide, which covers the features you need in a subscription billing service, why you need them, and comes with a bonus feature checklist:

# Make a payment instrument available for future use

This example describes how to create a payment instrument and make it available for future payments.
This is useful when you need to process payments that have a future date.
To access this functionality directly, use [`RebillyInstrument.setup(instrument)`](/docs/dev-docs/reference-rebilly-instruments#rebillyinstrumentssetup).

## 1. Add the library mounting points to your website

For this example, this is the only the required mounting point.

```HTML
<html>
  <body>
    <div id="app">
      <div class="form-wrapper">
        <section class="rebilly-instruments"></section>
      </div>
    </div>
  </body>
</html>
```

```CSS
body, html {
  background: #f8fbfd;
  padding: 0;
  margin: 0;
}

#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

.form-wrapper {
  max-width: 700px;
  box-sizing: border-box;
  padding: 40px 0;
  margin: 0 auto;
}

.form-wrapper section {
  background: #ffffff;
  box-sizing: border-box;
  padding: 40px!important;
  border-radius: 6px;
  border: 1px solid #e8e8fb;
}
```

## 2. Change the `transactionType` to `setup`

By default `transactionType` is set to `purchase`, change this property to `setup`.
You may provide any [purchase data available to mount](/docs/dev-docs/example-rebilly-instruments-purchase-data).

```javascript
RebillyInstruments.mount({
  publishableKey: 'pk_sandbox_123',
  organizationId: 'org-123',
  websiteId: 'my-website-id',
  transactionType: 'setup',
  money: {
    amount: 0,
    currency: 'USD',
  },
});
```

## 3. Check the result of the setup transaction (optional)

Use `RebillyInstruments.on()` to access the `setup-completed` event and to capture the instrument and the transaction.

```javascript
RebillyInstruments.on('setup-completed', (setup) => {
  // setup will contain instrument and transaction
  console.log('setup-completed', setup);
});
```

# Rebilly news, features, and updates for November 2021

As November draws to a close, Team Rebilly is focused on the year ahead while giving thanks to our wonderful customers and collaborators for a great 2021 so far.
Before we dive deeper into the holiday season, let's reflect on what we've added and improved this last month:

## New features and additions

- The _Restrict to countries_ coupon restriction type has been added.
  For more information, see [Coupons and discounts](/docs/settings/coupons-and-discounts).
- We deprecated the `organization-id` header in favor of the `organizationId` parameter within the API URL.
  If both are present, the URL parameter takes precedence.
- We added the option to [set a custom domain](/docs/settings/organizations-and-websites#configure-a-custom-domain) for Rebilly billing portals.
- The documentation side navigation has been reworked.
  The [Developer docs section](/docs/dev-docs/) is now located within the Concepts & features section.
- The `setup` transaction type was added to Rebilly Instruments.
  It is now possible to [make a payment instrument available for future use](/docs/dev-docs/payment-instrument-setup-rebilly-instruments).
- The [`RebillyInstruments.setup()` method](/docs/dev-docs/reference-rebilly-instruments#rebillyinstrumentssetup) was added to Rebilly Instruments.
- The [RebillyInstruments.on('setup-completed')](/docs/dev-docs/reference-rebilly-instruments#rebillyinstrumentsonsetup-completed) listener was added to Rebilly Instruments.

## New integrations

- We expanded our integration with [Directa24](https://www.rebilly.com/gateways/directa24) to add support for additional bank-transfer and voucher methods.
- We added support for EPS via [WorldPay](https://www.rebilly.com/gateways/worldpay).

**Need a gateway integration** that’s not on [our list](../../gateways/)?
Follow our [new integration request guide](/docs/settings/integration-requests) and submit your request.

_Have any questions on these or future updates?
[Shoot us a message](https://www.rebilly.com/support/) and we’ll be happy to help!_

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) to see what you're missing.**

# One Simple Trick to Dodge Downtime After Losing Your Merchant Account

For online sellers and more specifically subscription business owners, a lost merchant account is the worst case scenario.
What many don’t know is that there is a way to continue business in the event of a lost merchant account. **So, here’s our guide on how to completely avoid downtime after losing your merchant account.**

## Be prepared

Before you stomp off thinking this is a gimmick, we’ll walk you through three steps that ensure you’re prepared.
If you never want to lose another penny to a lost merchant account again, you should:

1. **Vault payment card data.** Your transaction and customer data should never be held hostage.
  Yet some payment gateways make it very difficult for you to get your data out when you need it — like when you lose your merchant account and need to set up a different gateway.
  To circumvent this, work with a billing software who securely vaults your payment card data so that you have it when you need it.
  ([Read more about why data portability matters here](/blog/why-data-portability-matters/).)
2. **Have a backup merchant account.** Preparedness isn’t just for Boy Scouts.
  If you have a backup merchant account (or several), you can continue accepting payments if one account goes down.
  The more accounts you have, the less chance you’ll ever have to deal with losing sales to downtime.
3. **Work with an agnostic billing software.** Before you select a provider to manage your payments, ask them if they are gateway agnostic.
  This means they’ll allow you to integrate as many payment gateways as you’d like, so that the software can send subsequent transactions onward to one of your backup merchant accounts after one goes down.

If you’re doing these things, as well as working with subscription billing software that allows you to:

- Integrate whichever payment gateways you’d like, and as many of them as you’d like – Rebilly supports [214 payment gateways](/gateways/)
- Route subsequent transactions to a backup merchant account ([another payment feature we offer,](/solutions/payments/) by the way)

…then there’s simply no reason you’ll ever lose money to a lost merchant account again.

## Bonus points: Follow up on why

If losing merchant accounts has been a recurring problem for your business, there may be some underlying issues.
Oftentimes, it’s due to a [high number of chargebacks](/blog/how-to-reduce-chargebacks/), [customer disputes with the payment gateway](/blog/suspended-by-paypal-what-to-do-next/), or sometimes it’s just a matter of transactions from around the world flagging an internal algorithm.
Take some time to assess why your account was closed, and then make adjustments as necessary.
In the long run, it’ll result in a healthier business, and hopefully fewer headaches for you.

**One way that you can reduce the risk of losing your merchant account?
Reduce chargebacks and fraud.** If you aren’t sure where to start with that, our guide can help:

# Provide purchase data to Rebilly Instruments

**Important**

This topic assumes that you have already completed one of the [Get started guides](/docs/dev-docs/get-started-integrate-payments),
and are looking to customize or extend the functionality.

This topic describes how to pass purchase data to RebillyInstruments.mount(), you must provide purchase data to complete the customer flow.
It is mandatory to use one of the following properties that are detailed in this page:

- [`items` property](#items-property).
- [`money` property](#money-property).
- [`invoiceId` property](#invoiceid-property).
- [`transactionId` property](#transactionid-property).
- [`payout` property](#payout-property).
- [`jwt` property](#jwt-property).

To change the purchase data at runtime, use the [RebillyInstruments.update()](/docs/dev-docs/reference-rebilly-instruments#rebillyinstrumentsupdate) function.

## `items` property

Use this option when a customer has selected multiple items, such as in a shopping cart, or when you have specific plans to offer to a customer.

Each object in the `items` array object must include a `planId` and a `quantity` property.
For more information, see [Create a product and pricing plan](/docs/settings/products-and-pricing).

Additionally, if Rebilly Instruments has been supplied with a `summary`, `items` may include a thumbnail.

### Example

```javascript
RebillyInstruments.mount({
  publishableKey: 'pk_123',
  organizationId: 'org-123',
  websiteId: 'my-website-id',
  items: [
    {
      planId: 'plan-abc',
      quantity: 1,
      thumbnail: 'https://www.example.com/image.png', // this property is optional
    },
  ],
});
```

## `money` property

Use this option to permit a customer to make a purchase without additional configuration.
Directly specify the amount to request from the customer.

The `money` object must include `amount` and `currency` properties.

### Example

```javascript
RebillyInstruments.mount({
  publishableKey: 'pk_123',
  organizationId: 'org-123',
  websiteId: 'my-website-id',
  money: {
    amount: 50,
    currency: 'USD',
  },
});
```

## `invoiceId` property

**Note**

To use this property, you must:

- Host additional code on your own server to create an invoice and authenticate a customer.
- Provide `jwt` with access to the `StorefrontGetInvoice` operation.
- Authorize a customer to use `jwt`.

Use this option to directly make a payment on a specific invoice.

**Authorize a customer to use jwt**

1. [Create a customer](/docs/dev-docs/api/customers/putcustomer).
2. [Create a secret API key](/docs/dev-docs/api-keys).
3. From the server, execute the [PostAuthenticationToken](/docs/dev-docs/api/customer-authentication/postauthenticationtoken) operation, using the following required parameters:
    - `mode`: Set as `passwordless`.
    - `customerId`: ID of the customer you created that you created in step 1.
4. From the response, use the `token` value to execute the [PostAuthenticationTokenExchange](/docs/dev-docs/api/customer-authentication/postauthenticationtokenexchange) operation.
  This exchange must occur as closely as possible to when the customer will access the data.
5. From the response, use the `token` value as the JWT for customer authentication.

**Note**

- The `PostAuthenticationTokenExchange` `token` and the `PostAuthenticationToken` `token` are different.
- The `PostAuthenticationToken` `token` must be treated securely and always set to expire.

### Example

```javascript
RebillyInstruments.mount({
  invoiceId: 'an-invoice-id',
  jwt: 'the-customer-jwt',
});
```

## `transactionId` property

**Note**

To use this property, you must:

- Host additional code on your own server to create an invoice and authenticate a customer.
- Provide `jwt` with access to the `StorefrontGetTransaction` and `StorefrontGetInvoice` operations.
- Authorize a customer to use `jwt`.

Use this options to directly make a payment towards a specific transaction.

**Authorize a customer to use jwt**

1. [Create a customer](/docs/dev-docs/api/customers/putcustomer).
2. [Create a secret API key](/docs/dev-docs/api-keys).
3. From the server, execute the [PostAuthenticationToken](/docs/dev-docs/api/customer-authentication/postauthenticationtoken) operation, using the following required parameters:
    - `mode`: Set as `passwordless`.
    - `customerId`: ID of the customer you created that you created in step 1.
4. From the response, use the `token` value to execute the [PostAuthenticationTokenExchange](/docs/dev-docs/api/customer-authentication/postauthenticationtokenexchange) operation.
  This exchange must occur as closely as possible to when the customer will access the data.
5. From the response, use the `token` value as the JWT for customer authentication.

**Note**

- The `PostAuthenticationTokenExchange` `token` and the `PostAuthenticationToken` `token` are different.
- The `PostAuthenticationToken` `token` must be treated securely and always set to expire.

### Example

```javascript
RebillyInstruments.mount({
  transactionId: 'a-transaction-id',
  jwt: 'the-customer-jwt',
});
```

## `payout` property

**Note**

To use this property, you must:

- Host additional code on your own server to create an invoice and authenticate a customer.
- Authorize a customer to use `jwt`.
- Issue a payout request to the customer.

Use this option to allow the customer to set the payout amount.

- `payout` must be accompanied by [`jwt` property](#jwt-property).
- `payout` must provide the `payoutRequestId`.

### Example

```javascript
RebillyInstruments.mount({
  payout: {
    payoutRequestId: 'a-payout-request-id',
  },
  jwt: 'the-customer-jwt',
});
```

## `jwt` property

When a customer JWT is provided and the customer has stored payment card instruments, Rebilly Instruments displays them at checkout.
When the customer pays with a stored card and the gateway requires CVV, the form collects the CVV and updates the payment instrument before creating the transaction.

**Note**

To use this property, you must:

- Host additional code on your own server to create an invoice or transaction and authenticate a customer.
- Authorize a customer to use `jwt`.

1. [Create a customer](/docs/dev-docs/api/customers/putcustomer).
2. [Create a secret API key](/docs/dev-docs/api-keys).
3. From the server, execute the [PostAuthenticationToken](/docs/dev-docs/api/customer-authentication/postauthenticationtoken) operation, using the following required parameters:

    - `mode`: Set as `passwordless`.
    - `customerId`: ID of the customer you created that you created in step 1.
4. From the response, use the `token` value to execute the [PostAuthenticationTokenExchange](/docs/dev-docs/api/customer-authentication/postauthenticationtokenexchange) operation.
  This exchange must occur as closely as possible to when the customer accesses the data.

    - `acl`: Include a scope with your `organizationId`, the `transactionId` or `invoiceId`, and the following `permissions`:
          - `PostToken`
          - `PostDigitalWalletValidation`
          - `StorefrontGetAccount`
          - `StorefrontPatchAccount`
          - `StorefrontPostPayment`
          - `StorefrontGetTransactionCollection`
          - `StorefrontGetTransaction`
          - `StorefrontGetPaymentInstrumentCollection`
          - `StorefrontPostPaymentInstrument`
          - `StorefrontGetPaymentInstrument`
          - `StorefrontPatchPaymentInstrument`
          - `StorefrontPostPaymentInstrumentDeactivation`
          - `StorefrontGetWebsite`
          - `StorefrontGetInvoiceCollection`
          - `StorefrontGetInvoice`
          - `StorefrontGetProductCollection`
          - `StorefrontGetProduct`
          - `StorefrontPostReadyToPay`
          - `StorefrontPostReadyToPayout`
          - `StorefrontGetPaymentInstrumentSetup`
          - `StorefrontPostPaymentInstrumentSetup`
          - `StorefrontGetPayoutRequest`
          - `StorefrontGetPayoutRequestCollection`
          - `StorefrontPatchPayoutRequest`
    - `customClaims`: include the `websiteId` as well as the `transactionId` or `invoiceId`.
5. From the response, use the `token` value as the JWT for customer authentication.

**Note**

- `PostAuthenticationTokenExchange` `token` and the `PostAuthenticationToken` `token` are different values.
- `PostAuthenticationToken` `token` must be treated securely and always set to expire.

### Example

```javascript
RebillyInstruments.mount({
  jwt: 'the-customer-jwt',
});
```

# Task 9. Change orders

Task: Upgrade and downgrade the following orders that contain subscription items.

Docs: [Modify subscription items or settings](/docs/data-tables/manage-subscriptions#modify-subscription-items-or-settings).

## Upgrades and downgrades

---

First, upgrade the order:

- Customer name: Sherry Emery
- Change plan from the Basic plan to the Pro plan
- Renewal policy: Retain
- Effective time: Select today's date
- Has proration: Select the checkbox.

Then, issue the interim invoice and collect payment:

- In the order details menu, press **Issue interim invoice**.
- You are redirected to the newly issued interim invoice.
- Press **Pay invoice**.
- Collect payment using the payment instrument on file.

---

First, downgrade the order:

- Customer name: Dale Moore
- Change plan from the Pro plan to the Basic plan.
- Renewal policy: Retain
- Effective time: Select today's date
- Has proration: Check the box

Then, issue the interim invoice and issue a refund:

- In the order details menu, press **Issue interim invoice**.
- You are redirected to the newly issued interim invoice.
  Take note of the pro-rata credit amount owed to the customer.
  This value is a negative amount.
- Press **Refund**.
- Issue a partial refund on the software item for the pro-rata credit owed to the customer.
  Press **Refund**.

---

- Customer name: Jarvis Wooten
- Downgrade from the Pro plan to the Basic plan
- Effective date: At the next service period.
  The change is scheduled for the next renewal, and the current items stay until then.
  The renewal policy and proration settings do not apply.

## Change price or quantity

Change the price and quantity of the following orders that contain subscription items.

---

- Customer name: Bill Paddington
- Change the price of the Pro plan from $200 to $150.
- Change the quantity of the Pro plan from 1 to 2.
- Effective date: At the next service period.
  The change is scheduled for the next renewal, and the current items stay until then.
  The renewal policy and proration settings do not apply.

---

- Customer name: Patti Mazola
- Change the price of the Basic plan from $50 to $60.
- Change the quantity of the Basic plan from 1 to 3.
- Renewal policy: Retain
- Effective time:

    - Specific date: Choose today's date.
    - Has proration: Select the checkbox.
  Do not issue an interim invoice, the pro-rata adjustment will be collected at the next renewal.

# Search filters

This topic describes how to search for specific results using Rebilly collection APIs.
This information applies to API endpoints that return multiple resources.
It does not apply to endpoints that require a resource ID.

Use the `filter` query parameter on a collection to select the records that are returned in the response.
Fields and values in the filter are separated with `:`.

Fields are typed.
Use a value that matches the type of a field.
For example, a boolean value on a string field, such as `primaryAddress.lastName:true`, does not match any results.

The following example uses the `filter` query parameter to retrieve sales transactions from the [Transactions endpoint](/catalog/all/transactions/gettransactioncollection).

```curl
curl -G https://api-sandbox.rebilly.com/organizations/your-organization-id/transactions \
  -H 'REB-APIKEY: your-private-key' \
  --data-urlencode filter="type:sale"
```

Most values must be an exact case-insensitive match.
Some fields support [partial searches](#partial-searches).

## Compound filters

A filter consists of a field name and values separated by `:`.
To chain multiple filters, separate each `field:value` pair with `;`.
The filters are joined with `AND` logic.

The following example uses two filters to search for approved sales transactions.

```curl
curl -G https://api-sandbox.rebilly.com/organizations/your-organization-id/transactions \
  -H 'REB-APIKEY: your-private-key' \
  --data-urlencode filter="type:sale;result:approved"
```

## Field names

Field names that contain subfields use a `.` to separate each part.

For example, billing address fields use the `billingAddress` prefix with properties such as `firstName` and `lastName`.
The complete field name for `firstName` is `billingAddress.firstName`.

| **Query** | **Description** |
| --- | --- |
| `billingAddress.lastName:Smith` | Billing address with a last name of "Smith". |
| `customer.customFields.fieldName:true` | A custom field named `fieldName` on a customer. |

## Multiple values

Separate multiple values for one field with `,`.
The values are joined with `OR` logic.

| **Query** | **Description** |
| --- | --- |
| `primaryAddress.firstName:John` | Results with `firstName` of John. |
| `primaryAddress.firstName:John,Bill` | Results with `firstName` of John OR Bill. |

## Reserved characters

This section lists all reserved characters and how to use them.

- `:` separates a field from its value.
  Only the first `:` in a filter is a separator.
  A `:` in a value does not require a backslash.
- `;` separates filters.
- `,` separates values.
- To include a `;` or a `,` in a value, add a backslash before it.
- A backslash before `:`, `;`, or `,` makes the character part of the value, and the filter drops the backslash.
  Before any other character, the backslash stays in the value.
  For information on `*` and `?`, see [Partial searches](#partial-searches).
- A value that contains `..` becomes a [range](#range-filters).
  A backslash does not affect range parsing.

| **Query** | **Description** |
| --- | --- |
| `description:Refund\, partial` | Results with the description "Refund, partial". |
| `url:https://example.com/orders` | Results with the URL `https://example.com/orders`. |

## Boolean values

Boolean values are represented as `true` and `false`.
They are written as a string filter, but are interpreted as booleans.

| **Query** | **Description** |
| --- | --- |
| `isDisputed:true` | Results where a transaction has a dispute. |

## Empty values

Empty values use the keyword `null`.

| **Query** | **Description** |
| --- | --- |
| `billingAddress.address2:null` | Results where the `address2` property in a billing address is empty or missing. |
| `billingAddress.address2:!null` | Results where `address2` of the billing address is not empty. |
| `description:Something,null` | Results where a transaction description is either empty or contains the value `Something`. |

## Range filters

Range filters use `..` to separate either end of a range.
Ranges are always inclusive.

Range filters support integers, floats, and datetimes.

Ranges support integers, floats, and datetime.
This also includes relative datetimes.

A range filter that mixes dates and numeric values is not valid.

Greater than or equals (`gte`) is represented as: `1..`.

Less than or equal (`lte`) is represented as: `..3`.

| **Query** | **Description** |
| --- | --- |
| `revision:1..3` | With revision of 1, 2, or 3. |
| `revision:2..` | Revision of 2 or higher. |
| `revision:..2` | Revision of 2 or less. |
| `createdTime:30 days ago..1 day ago` | Created between 30 days ago and one day ago. |
| `createdTime:2024-01-20T00:00:00Z..2024-01-31T23:59:59Z` | Created in January. |

## Dates

Date-time fields accept values formatted using [RFC 3339.](https://www.rfc-editor.org/rfc/rfc3339)

### Relative dates and times

Relative dates and times are accepted.
Example: `createdTime:7 days ago..`.

Relative dates and times are based from the moment the search occurs.

In relative dates and times, `now` is the moment the search occurs.

Dates and times on the edge of the time window can be unpredictable.
For example, `1 day ago` means "one day ago from the current time this query is run."

For a list of acceptable entries and syntax, see [Relative formats](https://www.php.net/manual/en/datetime.formats.php#datetime.formats.relative).

| **Query** | **Description** |
| --- | --- |
| `createdTime:2024-01-02T00:00:00Z..` | 2024-01-02 at midnight or more recent. |
| `createdTime:2 days ago..1 day ago` | Created only two days ago. |
| `createdTime:5 mins ago..1 min ago` | Created only five minutes ago. |

## Negated filters

Negation is represented with a `!` before the negated value: `result:!approved`.

To negate multiple values, prefix each value with `!`.

| **Query** | **Description** |
| --- | --- |
| `result:!approved` | Results that are not approved. |
| `result:!approved,!declined` | Results that are not approved nor declined. |

## Value lists

Use value lists to compare a value against a list of data.
Value lists apply to conditions for rules or binds, and to filters on data table segments.
Common lists contain values for conditions that target specific properties.
Examples include customers, transactions, and Bank Identification Numbers (BINs).

| **Query** | **Description** |
| --- | --- |
| `primaryAddress.firstName:@ListOfNames` | Uses the value list with the ID `ListOfNames`. The values are expanded and joined with `OR`. |
| `primaryAddress.country:!@ExcludeCountries` | Returns results that exclude the countries in this list. |

### Manage value lists using the Rebilly API

For information on how to manage lists using the Rebilly API, see [Lists](/catalog/all/lists/).
Code examples are provided for all API endpoints.

## Custom fields

[Custom fields](/docs/dev-docs/api/custom-fields) are searchable.
Each custom field name starts with a common prefix.
The last part of the name is the custom field to search.

For example, a customer has a string-based custom field named "category".
To search all customers with `category: "VIP"`, use the following request.

```curl
curl -G https://api-sandbox.rebilly.com/organizations/your-organization-id/customers \
  -H 'REB-APIKEY: your-private-key' \
  --data-urlencode filter="customFields.category:VIP"
```

Some collections support a search on their own custom fields, and on the custom fields of related resources.

| Collection | Resource | Field prefix |
| --- | --- | --- |
| [Customer](/docs/dev-docs/customers) | [Customer](/docs/dev-docs/customers) | `customFields` |
| [Order](/docs/dev-docs/orders) | [Order](/docs/dev-docs/orders) | `customFields` |
| [Order](/docs/dev-docs/orders) | [Customer](/docs/dev-docs/customers) | `customer.customFields` |
| [Transaction](/docs/dev-docs/transactions) | [Customer](/docs/dev-docs/customers) | `customer.customFields` |
| [Transaction](/docs/dev-docs/transactions) | [Transaction](/docs/dev-docs/transactions) | `customFields` |
| [Transaction](/docs/dev-docs/transactions) | [Payment instrument](/docs/dev-docs/payment-instruments) | `paymentCard.customFields` |

### Monetary custom fields

Use filters on custom fields with `type: monetary`.
A filter value is an integer or a float.
An ISO-4217 currency code is optional.
If there is no currency code, the search covers every currency with that amount.

Do not use a currency symbol.

See the following examples.

| **Query** | **Description** |
| --- | --- |
| `customFields.SetupFee:9.99USD,14.99` | Filter on items with a custom field named `SetupFee` of `9.99 USD` or `14.99` of any currency. |
| `customFields.SetupFee:9.99..` | Filter on items with a custom field named `SetupFee` of `9.99` or higher in any currency. |
| `customFields.SetupFee:10USD..20USD` | Filter on items with a custom field named `SetupFee` between (and including) `10 USD` and `20 USD`. |
| `customFields.SetupFee:9.99CAD,9.99USD,5.99EUR` | Filter on items with a custom field named `SetupFee` for values of `9.99 CAD`, `9.99 USD`, or `5.99 EUR`. |

## Partial searches

Some fields support partial searches.
Partial matching applies when a filter has one value.
If a filter has [multiple values](#multiple-values), each value must be an exact match.

Contact name and email fields, company fields, and string custom fields match by prefix.
A value matches every result that starts with it.
In a prefix field, an asterisk is part of the value to match.

The following example returns customers with a last name that starts with "Smi", such as Smith or Smithers.

```curl
curl -G https://api-sandbox.rebilly.com/organizations/your-organization-id/customers \
  -H 'REB-APIKEY: your-private-key' \
  --data-urlencode filter="primaryAddress.lastName:Smi"
```

Resource IDs, and the `url` and `route` fields of log resources, support wildcards.
Use `*` to match any number of characters, and `?` to match one character.
To match a literal `*` or `?`, add a backslash before it.
The first five characters of a value must be literal.
The filter ignores wildcards in the first five character positions.

The following example returns transactions with an ID that starts with `txn_0YV`.

```curl
curl -G https://api-sandbox.rebilly.com/organizations/your-organization-id/transactions \
  -H 'REB-APIKEY: your-private-key' \
  --data-urlencode filter="id:txn_0YV*"
```

# Display payment methods by location

This tutorial describes how to configure which payment methods are displayed to the customer at payment, based on their geographic location.
You can also prioritize the customer's active payment methods.

This automation uses the [Ready to pay requested](/docs/automations/event-types#gateway-account-requested) event and the [Adjust ready to pay](/docs/automations/action-types#adjust-ready-to-pay) action.

To complete this tutorial, an active gateway is required.
If you are testing in the sandbox environment, a test payment gateway called `TestProcessor` is already configured.
For more information, see [Set up a payment gateway](/docs/settings/set-up-a-gateway).

1. Create an automation on the 'ready to pay requested' event:

  This step describes how to create an automation that is triggered when a customer requests to pay.

    1. In the left navigation bar, press **Automations**.
    2. In the **Rules engine** section, press **Rules engine**.
    3. Press **Core events**.
    4. Press the **Ready to pay requested** event.
    5. Press **Rule set**, then press **Create rule**.
    6. In the **Name** field, enter unique name to help differentiate between multiple rules.
    7. Optionally, to add labels that help you identify the rule: In the **Labels** field, add one or more labels.
    8. Optionally, to not stop further processing after this rule is executed: clear the **Stop further processing** checkbox.
2. Set conditions:

  This step describes how to set conditions to filter customers based on their geographic location.

    1. In the **Conditions** section, clear the **No conditions** checkbox, and apply the following filter: 'RiskMetadata > Country' `is in`, then select a country.
    2. Optionally, to add more filters, press **Add filter**.
3. Configure the action to adjust the payment methods displayed to the customer:

  This step describes how to configure which payment methods are displayed to the customer.

    1. In the **Actions** section, press **Add action**, then select the **Adjust ready to pay** action.
    2. Specify which payment methods to display when a customer requests to pay.
    3. Optionally, to display payment methods that are associated with the customer's active payment instruments at the top of the list: Select the **Prioritize active payment instruments** checkbox.
    4. Press **Save rule**.

To automatically assign a payment gateway based on customer location, and other data, see [Set up payment gateway routing](/docs/settings/gateway-routing).

# Test cards, IBANs, and ACH details

Use the following payment cards, IBANs, and ACH details to simulate different outcomes in the Rebilly sandbox environment when processing payments.
These details do not generate real charges.

**Payment cards**

Use any future expiration date except `10/2051`.
Use any CVV except `000` (or `0000` for American Express).
For more information, see [Restricted CVV and expiration date values](#restricted-cvv-and-expiration-date-values).

CVVs are 3 digits for most payment cards and 4 digits for American Express.

| Brand | Number | Country | Result | 3DS flow | Notes |
| --- | --- | --- | --- | --- | --- |
| Visa | 4111111111111111 | US | Approved | Manual challenge | For more information, see [Test a 3DS challenge flow](./test-3ds-flow). |
| Visa | 4123400073320224 | DE | Approved | — | — |
| Visa | 4761229700150465 | AU | Approved | — | — |
| Visa | 4761209980011439 | NZ | Approved | — | — |
| Mastercard | 5555555555554444 | CA | Approved | Frictionless flow, authenticated | For more information, see [Test a 3DS challenge flow](./test-3ds-flow). |
| Mastercard | 5204245250460049 | DE | Approved | — | — |
| American Express | 378282246310005 | US | Approved | Frictionless flow, authenticated | For more information, see [Test a 3DS challenge flow](./test-3ds-flow). |
| Discover | 6011111111111117 | — | Approved | — | — |
| Diners Club | 30569309025904 | — | Approved | — | — |
| JCB | 3530111333300000 | JP | Approved | — | — |
| China UnionPay | 6253111111111114 | — | Approved | — | — |
| Maestro | 6759641111111119 | — | Approved | — | — |
| Visa | 4000000000000051 | — | Approved | — | Approved with expiration date updated to previous month (expired) |
| Visa | 4000000000000002 | US | Declined | Frictionless flow, not authenticated | For more information, see [Test a 3DS challenge flow](./test-3ds-flow). |
| Mastercard | 5105105105105100 | CA | Declined | Frictionless flow, not authenticated | For more information, see [Test a 3DS challenge flow](./test-3ds-flow). |
| American Express | 371449635398431 | US | Declined | Frictionless flow, not authenticated | For more information, see [Test a 3DS challenge flow](./test-3ds-flow). |
| Discover | 6011000990139424 | US | Declined | — | — |
| Diners Club | 38520000023237 | — | Declined | — | — |
| JCB | 3566002020360505 | — | Declined | — | — |
| China UnionPay | 6243030000000001 | — | Declined | — | — |
| Maestro | 6771790000000018 | AT | Declined | — | — |

**IBAN**

| Number | Country | Result |
| --- | --- | --- |
| DE89370400440532013000 | DE | Approved |
| DE62370400440532013001 | DE | Declined |

**ACH**

| Number | Result |
| --- | --- |
| 123456789 / 1234567890 | Approved |
| 031245679 / 0312456798 | Declined |

## Special cases

Use the following special cases to simulate specific transaction behaviors.

### Special approved transaction amount

To simulate an approved transaction using a special amount in the sandbox environment, use `71.00`.
This is useful for methods like Apple Pay, where you cannot control the DPAN.

### Approved test card that becomes expired

To simulate an approved transaction that becomes expired, use the following test card number: `4000000000000051`.

## Restricted CVV and expiration date values

The following special cases use restricted values for CVV and expiration date to simulate specific transaction behaviors.

### Simulate an issuer decline caused by invalid expiration date

To simulate an issuer decline caused by an invalid or mismatched expiration date, while using a valid test card number, set the expiration date to `10/2051`.
This results in a gateway response code `54` with the message "Expired card or expiration date is missing".

### Simulate an issuer decline caused by invalid CVV

To simulate an issuer decline caused by an invalid CVV, while using a valid test card number, set the CVV to `000`, or `0000` for Amex.
This results in a gateway response code `N7` with the message "Decline for CVV2 failure".

# Rebilly meetup - Tuscany 2023

Hi there!
Welcome to this special edition Rebilly blog post.
We recently went on our company meetup, to Tuscany, Italy.
It was awesome 😊 — and we'd like to tell you all about it.

**div**

**div**

**iframe**

As a remote company with colleagues based in more than 20 countries around the world, we don't often have the opportunity to hang out in person.
So the yearly company meetup is a really big deal for us.
It takes a lot of planning and coordination, but it's always worth it.

This year we spent a week in Tuscany.
We enjoyed lots of great activities, spectacular sightseeing, delicious food, and of course, lots of fun.
Arrivederci, Tuscany!

Here are some shots from our trip.

## We stayed in a 1000-year-old castle

![Castle](/content-assets/castle1-dc435d64c1d7adcc.jpeg)

## Took an awesome trip to Florence

![Florence scene](/content-assets/florence-scene-3bc3ccfbb0ec7cca.jpg)

![Florence group](/content-assets/florence-group-1f4399086b92b093.jpg)

![Florence group 2](/content-assets/florence-group-2-aff1cb71225dc05f.jpg)

![Florence group 3](/content-assets/florence-group-3-17c57219b3c0165f.jpeg)

## Enjoyed tasty food

![Food](/content-assets/food-f06a52ba9e14f893.jpg)

![Food 2](/content-assets/food-2-9b732c49410329de.jpeg)

### Made our own pizza

![Pizza over](/content-assets/pizza-oven-3eb200a5045a20ed.jpeg)

#### Official Rebilly pizza

![Rebilly pizza](/content-assets/rebilly-pizza-bccb91b798f8701b.jpg)

### Made our own pasta!

![Pasta making](/content-assets/making-pasta-6abf95f1d775bd36.jpg)

## Enjoyed beer and olive oil tasting

![Beer and olive oil tasting](/content-assets/beer-and-olive-oil-ac90d5c4f62a45a2.jpeg)

## Marveled at beautiful Tuscan vistas

![Views](/content-assets/view-c38b91120273d35c.jpg)

![View 2](/content-assets/view-2-ea9d4ab7f2fd2bf0.jpg)

![View 3](/content-assets/view-3-b406111435403643.jpeg)

![View 5](/content-assets/view-5-7e04e88f91b5a7b3.jpeg)

![View 6](/content-assets/view-6-942149fa46db6c42.jpeg)

## Cycled through the countryside

![Group cycling](/content-assets/cycling-group-01c40a7352b40fde.jpeg)

![Cycling](/content-assets/cycling-fb716f98f0e1cc41.jpeg)

## Connected with our inner artist

![Painting](/content-assets/art-e419d615905db5ca.jpg)

## Enjoyed movie nights

![Movie night](/content-assets/movie-nights-082231269aca34de.jpeg)

## Got sporty with a game of footie

![Soccer](/content-assets/soccer-b084bbaf8840df02.jpg)

## Raved in the Rave Cave

![Rave cave](/content-assets/rave-cave-b66a43ddaabd2188.jpeg)

## Had a games night

![Games night](/content-assets/games-night-8c96f616e0652675.jpg)

## We also did the aerial shot thing

![Team photo](/content-assets/rebilly-italy-23-643815a5d4a71ae0.jpeg)

## We are hiring!

If you'd like to join us, see the [Careers](/careers) page.

### Working at Rebilly

Rebilly is a Teal Organization.
In a very tiny nutshell, this means that as an organization, we value self-management, self-organization, and the wholeness of the individuals that make up our team.
This means that you should be your whole-self at work, and do the work that inspires you.
We are also a remote company, you choose where you want to work, or live.

If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# KYC KPIs

To view KYC KPIs, you must activate the Rebilly KYC add-on.
For more information, see [KYC & AML](/docs/kyc-and-aml).

Use Know Your Customer (KYC) Key Performance Indicators (KPIs) to view and analyze KYC data.

To access KYC KPIs: In the left navigation bar, press **KPIs**, then press **KYC**.

To adjust KPI segments that are applied to the KYC KPIs page, see [KPI segments](/docs/kpis/kpi-segments).

## KYC tiles

The KYC KPIs page is divided into tiles that provide insights into specific areas of KYC, based on a specified time range.
Each tile displays a graph, percentage increase or decrease over the defined range, and depending on the tile type, a sum or a total count number.

### Review time (minutes)

Displays the average amount of time, in minutes, that it took to review and accept or reject a KYC document.

### Acceptance rate

Displays the total number of accepted KYC documents divided by the total number of KYC documents.

### Rejection rate

Displays the total number of rejected KYC documents divided by the total number of KYC documents.

### Accuracy rate

Displays the accuracy rate of all automatically approved documents for all document types.
The following metrics determine the accuracy rate:

- **n**: Total number of non-archived documents for all document types.
  Archived documents are closed documents that are stored for future reference.
- **d**: Total number of accepted or rejected documents for all document types whose automatic result is not manually changed by the merchant.
  Documents that are still in review are not counted.

Accuracy rate formula: _d_ ÷ _n_

### Address proof accuracy rate

Displays the accuracy rate of automatically approved address proof documents.
The following metrics determine the accuracy rate:

- **n**: Total number of non-archived address proof documents.
  Archived address proof documents are closed documents that are stored for future reference.
- **d**: Total number of accepted or rejected address proof documents whose automatic result is not manually changed by the merchant.
  Documents that are still in review are not counted.

Address proof accuracy rate formula: _d_ ÷ _n_

### Identity proof accuracy rate

Displays the accuracy rate of automatically approved identity proof documents.
The following metrics determine the accuracy rate:

- **n**: Total number of non-archived identity proof documents.
  Archived identity proof documents are closed documents that are stored for future reference.
- **d**: Total number of accepted or rejected identity proof documents whose automatic result is not manually changed by the merchant.
  Documents that are still in review are not counted.

Identity proof accuracy rate formula: _d_ ÷ _n_

### Credit file proof accuracy rate

Displays the accuracy rate of automatically approved credit file proof documents.
The following metrics determine the accuracy rate:

- **n**: Total number of non-archived credit file proof documents.
  Archived credit file proof documents are closed documents that are stored for future reference.
- **d**: Total number of accepted or rejected credit file proof documents whose automatic result is not manually changed by the merchant.
  Documents that are still in review are not counted.

Credit file proof accuracy rate formula: _d_ ÷ _n_

### Address proof acceptance rate

Displays the acceptance rate of automatically approved address proof documents.
The following metrics determine the acceptance rate:

- **n**: Total number of non-archived address proof documents.
  Archived documents are closed documents that are stored for future reference.
- **a**: Total number of address proof documents that are automatically accepted.

Address proof acceptance rate formula: (_a_ × 100) ÷ _n_

### Identity proof acceptance rate

Displays the acceptance rate of automatically approved identity proof documents.
The following metrics determine the acceptance rate:

- **n**: Total number of non-archived identity proof documents.
  Archived documents are closed documents that are stored for future reference.
- **a**: Total number of identity proof documents that are automatically accepted.

Identity proof acceptance rate formula: (_a_ × 100) ÷ _n_

### Funds proof acceptance rate

Displays the acceptance rate of automatically approved funds proof documents.
The following metrics determine the acceptance rate:

- **n**: Total number of non-archived funds proof documents.
  Archived documents are closed documents that are stored for future reference.
- **a**: Total number of funds proof documents that are automatically accepted.

Funds proof acceptance rate formula: (_a_ × 100) ÷ _n_

### Purchase proof acceptance rate

Displays the acceptance rate of automatically approved purchase proof documents.
The following metrics determine the acceptance rate:

- **n**: Total number of non-archived purchase proof documents.
  Archived documents are closed documents that are stored for future reference.
- **a**: Total number of purchase proof documents that are automatically accepted.

Purchase proof acceptance rate formula: (_a_ × 100) ÷ _n_

### Credit file proof acceptance rate

Displays the acceptance rate of automatically approved credit file proof documents.
The following metrics determine the acceptance rate:

- **n**: Total number of non-archived credit file proof documents.
  Archived documents are closed documents that are stored for future reference.
- **a**: Total number of credit file proof documents that are automatically accepted.

Credit file proof acceptance rate formula: (_a_ × 100) ÷ _n_

### Request count

Displays the total number of KYC requests over a period of time.

### Request abandonment rate

Displays the rate of KYC request abandonment over a period of time.
The following metrics determine the abandonment rate:

- **n**: Total number of KYC requests.
- **a**: Total number of abandoned KYC requests.

Request abandonment rate formula: (_a_ × 100) ÷ _n_

### Request attempted rate

Displays the percentage of KYC requests that have been attempted.
A KYC request is attempted when at least one proof document is uploaded in response to the request.
The following metrics determine the request attempted rate:

- **n**: Total number of KYC requests.
- **m**: Total number of KYC requests without a proof document, which are requests in the `expired` or `gathering` status.

Request attempted rate formula: ((_n_ − _m_) × 100) ÷ _n_

### Request expiration rate

Displays the percentage of expired KYC requests over a period of time.
The following metrics determine the expiration rate:

- **n**: Total number of KYC requests.
- **a**: Total number of expired KYC requests.

Request expiration rate formula: (_a_ × 100) ÷ _n_

### Request failure rate

Displays the percentage of failed KYC requests over a period of time.
The following metrics determine the failure rate:

- **n**: Total number of KYC requests.
- **a**: Total number of failed KYC requests.

Request failure rate formula: (_a_ × 100) ÷ _n_

### Request fulfillment rate

Displays the percentage of fulfilled KYC requests over a period of time.
The following metrics determine the fulfillment rate:

- **n**: Total number of KYC requests.
- **a**: Total number of fulfilled KYC requests.

Request fulfillment rate formula: (_a_ × 100) ÷ _n_

## KYC tile interactions

The following KYC KPI tile interactions are available:

- Select a date range for the data that is displayed in tiles: In the top right of the page, press the date picker, then select a date range.
  To make a quick date range selection, press **Actions** on the right of the date picker, then make a selection.
- View and interact with detailed data reports: Mouse-over or press a tile, then press **Reports** **Go to report**.
- Hide one or more tiles: Mouse-over or press a tile, then press **Hide** **Hide this tile**.
- Restore hidden tiles: In the top right of the page, press **Refresh** **Restore metrics**.
- Move or rearrange tiles: Mouse-over or press a tile, press **Drag to reorder**, then drag and drop the tile to a new location.
- View detailed tile data in data tables, and inspect transactions: Mouse-over or press a tile, then press **Data tables**.

## KYC reports

To view KYC reports, see [KYC reports](/docs/reports/kyc-reports).

# Rebilly news, features, and updates for September 2022

Hello, and welcome to the September edition of the Rebilly news, features, and updates blog.
It may be a chilly autumn outside, but we still have some hot new features for you.

## New features

This month, we added the following new features.

### KYC documents in data tables

The KYC review process and the management of documents has been added to the 'Data tables' section of the Rebilly app.
Based on customer feedback, we overhauled the review page to improve the process of reviewing documents.
You can now manage your KYC documents, review process, and monitor KYC KPIs in the same app.
For more information, see [Manage KYC](/docs/data-tables/manage-kyc).

### Filter KYC documents

You can now use tags to organize, filter, and categorize KYC documents based on keywords.
For more information, see [Tags](/docs/settings/tags).

### Integrations have moved to the App Store

To simplify the UI, we've moved all third-party apps from the 'Integrations' section to the Rebilly App Store.
The 'Integrations' section is no more!
For more information, see [App Store](/docs/app-store/app-store).

## Rebilly Instruments JavaScript library add-ons and bump offers

The Rebilly Instruments JavaScript library has been expanded to include add-ons and bump offers.
For more information, see [set up an add-on with Rebilly Instruments](/docs/dev-docs/setup-rebilly-instruments-add-on) and [Set up a bump offer with Rebilly Instruments](/docs/dev-docs/setup-rebilly-instruments-bump-offer).

## New docs

Over the past month, using the [Rebilly API description writing guide](https://github.com/Rebilly/api-definitions/blob/main/WRITING-STYLE.md), we've been working though our API docs to provide more detailed and meaningful descriptions.
We strive to create the best possible experience when using our APIs, and docs are a huge part of this.
To check out our progress, see [Rebilly API](/docs/dev-docs/api/).

## New payment gateway integrations

This month, we added the following integrations:

- Added support for the [MuchBetterGateway payment gateway](/gateways/muchbettergateway).
- Added support for the [Redsys payment gateway](/gateways/redsys).
- Added support for the [SafetyPay payment method](/payment-methods/safetypay) for the [Paysafecard payment gateway](/gateways/paysafecard).
- Added support for the [Boleto payment method](/payment-methods/boleto) for the [BlueSnap payment gateway](/gateways/bluesnap).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.

If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Payment gateway routing

Payment gateway routing is the process of dynamically routing transactions between payment gateways, based on real-time data and selected parameters.
To configure payment routing you must have more than one gateway account connected to Rebilly.
This automation uses the [Gateway account requested](/docs/automations/event-types#gateway-account-requested) event and the [Pick gateway account](/docs/automations/action-types#pick-gateway-account) action.

If you have not yet added a payment gateway, see [Add gateway account](/docs/settings/set-up-a-gateway).
To configure payment routing you must have more than one gateway account connected to Rebilly.

## Set up gateway routing

This process describes how to configure gateway routing.

1. **Optionally, deactivate sticky gateways**

  Gateway routing is optimal on gateways that do not have the [sticky gateways](#sticky-gateway-accounts) option activated.
  If sticky gateways is active when using gateway routing, a gateway is only available to:

    - New payment instruments that were not used on a gateway — a sticky gateway account ID is not applied.
    - Payment instruments that have not completed a successful transaction on another gateway.

    1. In the left navigation bar, press **Settings**.
    2. In the **Configuration** section, press **Gateway accounts**.
    3. Select a gateway account.
    4. Press **Edit gateway account**.
    5. In the **Advanced configuration** section, turn on the **Advanced configuration** toggle.
    6. Under **Sticky gateway account**, clear the **Activate sticky gateway** checkbox.
      For more information, see [Sticky gateway accounts](#sticky-gateway-accounts).
2. **Create an automation on the 'gateway account requested' event**

  This step describes how to create an automation that is triggered when a customer attempts to make a transaction for the first time.

    1. In the left navigation bar, press **Automations**.
    2. In the **Rules engine** section, press **Rules engine**.
    3. Press **Core events**.
    4. Press the **Gateway account requested** event.
    5. Press **Rule set**, then press **Create rule**.
    6. In the **Name** field, enter a unique name to help differentiate between multiple rules.
    7. Optionally, to add labels that help you identify the rule: In the **Labels** field, add one or more labels.
    8. Optionally, to not stop further processing after this rule is executed: clear the **Stop further processing** checkbox.
3. **Optionally, configure conditions that determine when a transaction is routed**

  Complete this step to configure conditions that determine when a transaction is routed to specific gateway accounts.
  For example, based on certain conditions, such as: payment card attributes, bank country, currency, and so on.

    1. In the **Conditions** section, clear the **No conditions** checkbox.
    2. In the **Select filter** field, select the filters you want to apply.
      Examples:
          - To route based on the customer's address being in the US: Select 'Transaction > Customer > Primary address > Country' `is in` 'US - United States'.
          - To route based on the USD currency: Select 'Transaction > Currency' `is in` 'USD - US Dollar'.
          - To route based on a custom field that is created on the customer resource: [Create a custom field](/docs/settings/custom-fields#create-custom-fields), then select 'Transaction > Customer > Custom fields > 'Field name''.
          - To route based on whether a customer related value is not in a list of values: [Create a value list](/docs/automations/create-a-value-list#create-a-value-list), then use a similar condition to this example: 'Transaction > Customer > Primary address > Emails > Value' `is not in` 'Value list name'.
          - To route based on tags that are assigned to the customer: Select 'Transaction > Customer > Tags > Name' `is in` 'Tag name'.
            For more information, see [Tags](/docs/settings/tags).
4. **Configure the action to route transactions to gateway accounts**

  This step describes how to configure an action to route transactions to payment gateway accounts based on the weights assigned to each gateway account and the routing algorithm.
  Use weights to configure the probability of a gateway being selected to process a transaction.
  For more information, see [Weights](#weights).

    1. In the **Actions section**, press **Add action**, then select **Pick gateway account**.
    2. In the **Weight algorithm** section, select the [Weighted-random](#weighted-random) or [Round-robin](#round-robin) routing algorithm.
    3. In the **Weight distribution** section:
          - To distribute weight based on gateway account, select **Use gateway account weights**.
          - To distribute weight based on acquirer, select **Use acquirer weights**.
    4. Assign weights to each payment gateway.

To configure which payment methods are displayed to the customer at payment, based on their geographic location, see [Display payment methods by location](/docs/settings/display-payment-methods-by-location).

## Weights

This section describes the transaction routing weights that are available in Rebilly.

### Weighted-random

When this rule is activate, a transaction is randomly assigned to a gateway account based on the specified weighted distribution.
Gateways with higher weight values have a higher chance of getting selected.

For example, 4 gateway accounts are set as follows:

| **Value** | **Gateway** | **Chance of processing a transaction** |
| --- | --- | --- |
| 70 | Gateway A | 70% |
| 15 | Gateway B | 15% |
| 10 | Gateway C | 10% |
| 5 | Gateway D | 5% |

### Round-robin

When this rule is activate, a transaction is randomly assigned to a gateway account based on the specified weighted distribution.
Gateways with higher weight values have a higher chance of getting selected.
Each time a gateway is used, it is then removed from the next round.
When the last gateway is used, and no other gateways remain, the process begins again.

For example, 4 gateway accounts are set as follows, and the same payment instrument carries out transactions over a period of time:

#### Round one

| **Value** | **Gateway** | **Chance of processing a transaction** |
| --- | --- | --- |
| 70 | Gateway A | 70% |
| 15 | Gateway B | 15% |
| 10 | Gateway C | 10% |
| 5 | Gateway D | 5% |

#### Round two

| **Value** | **Gateway** | **Chance of processing a transaction** |
| --- | --- | --- |
| 15 | Gateway B | 49.98 |
| 10 | Gateway C | 33.33% |
| 5 | Gateway D | 16.66% |

#### Round three

| **Value** | **Gateway** | **Chance of processing a transaction** |
| --- | --- | --- |
| 10 | Gateway C | 66.66% |
| 5 | Gateway D | 33.33% |

#### Round four

| **Value** | **Gateway** | **Chance of processing a transaction** |
| --- | --- | --- |
| 5 | Gateway D | 100% |

#### Round five

| **Value** | **Gateway** | **Chance of processing a transaction** |
| --- | --- | --- |
| 70 | Gateway A | 70% |
| 15 | Gateway B | 15% |
| 10 | Gateway C | 10% |
| 5 | Gateway D | 5% |

## Sticky gateway accounts

By default, Rebilly assigns a sticky gateway account ID to a payment instrument when it performs an approved transaction on a payment gateway.
On first use, the selection of this payment gateway is random.
From this point on, the sticky gateway account ID is used to bind the payment instrument to that particular payment gateway, so that all future payments are processed by the same payment gateway.

When gateway payment routing is active:

- If the payment instrument does not have a sticky gateway account ID: The rules engine evaluates the transaction and finds the best gateway account to process the transaction.

-Or-

- If a payment instrument has a sticky gateway account ID assigned: The associated gateway is selected to process the transaction.

## Further reading

- [Set up a payment gateway](/docs/settings/manage-payment-gateways)
- [Manage payment gateways](/docs/settings/manage-payment-gateways)
- [Events](/docs/automations/event-types)
- [Actions](/docs/automations/action-types)
- [Payment gateways](/docs/settings/payment-gateway)

# Sub-processors

This page describes the third parties (“Sub-processors”) that Rebilly engages to process personal data on behalf of customers when providing the Rebilly Services.

Capitalized terms not defined on this page have the meanings given in the Rebilly Subscription Agreement and Data Processing Addendum (“DPA”).

## What is a sub-processor?

A **Sub-processor** is a third party engaged by Rebilly to process personal data on Rebilly’s behalf for the purpose of providing the Services (for example: hosting, monitoring, customer support tooling, email delivery, or security services).

## Important note about integrations you configure

Rebilly is an integration platform.
Customers can connect the Services to many third-party systems (for example: payment gateways, processors, tax, fraud, analytics, CRM, messaging, and other tools) (“**Customer-Configured Integrations**”).

- **Customer-Configured Integrations are controlled by Customer** (Customer chooses whether to connect them and what data to send).
- These providers may process personal data as independent recipients and/or processors for Customer.
- **They are not listed on this page** because the set of integrations varies by Customer and could be extensive.
- Customer is responsible for its own agreements with providers of Customer-Configured Integrations and for ensuring such providers comply with applicable data protection laws.

Where a third party is used by Rebilly as part of operating the core Services (and not merely because a Customer chooses to connect it), it will be listed below as a Sub-processor.
For more information about Customer-Configured Integrations, see the Subscription Agreement section on sub-processors and third-party integrations.

## How we use sub-processors

Rebilly may use Sub-processors for:

- cloud infrastructure and hosting
- monitoring, logging, and incident response
- customer support and ticketing
- email delivery and notifications
- security, fraud prevention, and abuse detection
- backups and disaster recovery

## Sub-processor list

The table below lists Rebilly’s current Sub-processors, the purpose of processing, and the processing location(s).
This list may include affiliates that provide parts of the Services.

| Sub-processor | Service / purpose | Processing location(s) |
| --- | --- | --- |
| AWS (Amazon Web Services Inc) | Cloud hosting / infrastructure | US |
| Google | Image processing for KYC; AI-assisted automation and analysis | US |
| Datadog | Monitoring / logging / observability | US |
| Sentry | Error tracking / observability | US |
| ClearFeed | Customer support ticketing | US |
| Mailgun Technologies, Inc. | Email delivery / notifications | US |
| ClickHouse, Inc | Analytics (service operations) | US |

Processing locations may vary depending on Customer configuration, region, and service availability.

## Changes and notification

Rebilly may update this list from time to time.

### Notification of new sub-processors

When Rebilly adds a new Sub-processor, Rebilly will notify customers by email to the primary contact email address on file or by posting an update to this page.
Rebilly will provide at least thirty (30) days’ advance notice before authorizing a new Sub-processor to process personal data on behalf of customers, except where such notice is not practicable (for example, in cases of emergency security updates or where required by law).

### Object to new sub-processors

If you object to a new Sub-processor, you must notify Rebilly in writing at **legal@rebilly.com** within thirty (30) days of receiving notice of the new Sub-processor.
Rebilly will work with you in good faith to address your concerns, which may include:

- Providing additional information about the Sub-processor’s data protection practices
- Implementing additional safeguards
- Finding an alternative solution

If Rebilly cannot address your reasonable concerns and you continue to object, you may terminate the affected Services by providing written notice to Rebilly as your sole and exclusive remedy.
Rebilly will provide a pro-rated refund of any prepaid fees for the terminated Services.

The objection and termination rights described above apply only to new Sub-processors added after the effective date of your Subscription Agreement.
Existing Sub-processors listed above are authorized under your current agreement.

## Questions

If you have questions about Rebilly’s Sub-processors, contact: **legal@rebilly.com**.

---

_Last updated: 2026-01-21_

# Rebilly Developer Coding Exemplar

## Instructions

This coding exemplar is designed to highlight your skills and areas of expertise with the Javascript and PHP language in general.

We rely on PHP as our backend language of choice and Javascript for our frontend language.
Because of this, it's important that developers have a well-rounded understanding of both PHP and Javascript languages.

> **_This exercise should take approximately one hour to complete._**

Good luck!

### Submit answers

Please complete the following questions to the best of your ability.
If you are unable to solve a question, please indicate as such.
You should feel free to use any online resources to solve these questions; after all, we expect that our developers will use their problem-solving skills at work!
Some questions are intended to be difficult, while others are meant to be easy or obvious.

> **Please post your answers in a [Gist](https://gist.github.com/), using Markdown format, and send the link for review.**

Don't send us neither direct nor rephrased responses for the quiz questions which are given by other experienced developers, including artificial intelligence (LLM such as ChatGPT).

## Question 1

During a large data migration, you get the following error: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes).
You've traced the problem to the following snippet of code:

```php
$stmt = $pdo->prepare('SELECT * FROM largeTable');
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $result) {
  // manipulate the data here
}
```

Refactor this code so that it stops triggering a memory error.

## Question 2

Write a function that takes a phone number in any form and formats it using a delimiter supplied by the developer.
The delimiter is optional; if one is not supplied, use a dash (-).
Your function should accept a phone number in any format (e.g. 123-456-7890, (123) 456-7890, 1234567890, etc) and format it according to the 3-3-4 US block standard, using the delimiter specified.
Assume foreign phone numbers and country codes are out of scope.

Note: This question CAN be solved using a regular expression, but one is not REQUIRED as a solution.
Focus instead on cleanliness and effectiveness of the code, and take into account phone numbers that may not pass a sanity check.

Note: You may choose to answer in PHP or JavaScript or both.
How would your approach differ across languages?

## Question 3

Write a JavaScript function that would generate a hex color code (`#f1f2f3`) from the full name of a person.
It should always generate the same color for a given name.
Describe how you arrived at your solution.

```javascript
const name = 'John Doe';
const color = getColorFromName(name); // e.g. #9bc44c
```

## Question 4

Write a complete set of unit tests for **one** of the following code blocks.
Describe how the approach might change for the other language.

**PHP**

```php
function fizzBuzz($start = 1, $stop = 100)
{
  $string = '';

  if($stop < $start || $start < 0 || $stop < 0) {
    throw new InvalidArgumentException;
  }

  for($i = $start; $i <= $stop; $i++) {
    if($i % 3 == 0 && $i % 5 == 0) {
      $string .= 'FizzBuzz';
      continue;
    }

    if($i % 3 == 0) {
      $string .= 'Fizz';
      continue;
    }

    if ($i % 5 == 0) {
      $string .= 'Buzz';
      continue;
    }

    $string .= $i;
  }

  return $string;
}
```

**JavaScript**

```javascript
function fizzBuzz(start = 1, stop = 100) {
  let result = '';

  if (stop < start || start < 0 || stop < 0) {
    throw new Error('Invalid arguments');
  }

  for (let i = start; i <= stop; i++) {
    if (i % 3 === 0 && i % 5 === 0) {
      result += 'FizzBuzz';
      continue;
    }

    if (i % 3 === 0) {
      result += 'Fizz';
      continue;
    }

    if (i % 5 === 0) {
      result += 'Buzz';
      continue;
    }

    result += i;
  }

  return result;
}
```

## Question 5

Refactor the following old TypeScript code.
Don't go too deep, estimate up to 15 minutes of work.

Do not implement any libraries or frameworks.

The code shouldn't be ideal, rather adequate for the first step of the refactoring.
Feel free to leave comments in places which can be improved in the future if you see a possibility of that.

```typescript
const state: any = {
  items: JSON.parse(localStorage.getItem('items') || '[]'),
};
const root: any = document.getElementById('app');

const setState = (patch: any) => {
  state = {
    ...state,
    ...(typeof patch === 'function' ? patch(state) : patch),
  };
  localStorage.setItem('items', JSON.stringify(state.items));
  render();
};

function render() {
  root.innerHTML = '';
  const main = document.createElement('main');
  const list = state.items.reduce(
    (items: any, item: any) => `${items}
      <li id="${item.id}">
        ${((item && (item.title || item.text)) || '(untitled)').trim()}
        <button data-remove>✘</button>
      </li>`,
  );

  main.innerHTML = `<form>
    <input placeholder="Todo…" />
    <button type="submit">Add</button>
  </form>
  <ul>${list}</ul>`;

  const form = main.querySelector('form')!;
  function formSubmit(e: any) {
    e.preventDefault();
    const input = main.querySelector('input');
    const text = (input.value || '').trim();
    if (!text) return;
    setState((s: any) => ({
      items: [...s.items, { id: Date.now(), text }],
    }));
    input.value = '';
  }
  form.onsubmit = formSubmit;

  main.onclick = (e: any) => {
    const button = e.target;
    if (!button?.matches?.('[data-remove]')) return;
    const id = button.closest('li')?.getAttribute('id');
    setState((s: any) => ({
      items: s.items.filter((x: any) => x.id !== Number(id)),
    }));
  };

  root.appendChild(main);
}
render();
```

## Question 6

Refactor the following old legacy classes.

Don't go too deep, estimate up to 15 minutes of work.

The code shouldn't be ideal, rather adequate for the first step of the refactoring.
Feel free to leave comments in places which can be improved in the future if you see a possibility of that.

```php
<?php

class Document {

  public $user;

  public $name;

  public function init($name, User $user) {
    assert(strlen($name) > 5);
    $this->user = $user;
    $this->name = $name;
  }

  public function getTitle() {
    $db = Database::getInstance();
    $row = $db->query('SELECT * FROM document WHERE name = "' . $this->name . '" LIMIT 1');
    return $row[3]; // third column in a row
  }

  public static function getAllDocuments() {
    // to be implemented later
  }
}

class User {

  public function makeNewDocument($name) {
    if(!strpos(strtolower($name), 'senior')) {
      throw new Exception('The name should contain "senior"');
    }

    $doc = new Document();
    $doc->init($name, $this);
    return $doc;
  }

  public function getMyDocuments() {
    $list = array();
    foreach (Document::getAllDocuments() as $doc) {
      if ($doc->user == $this)
        $list[] = $doc;
    }
    return $list;
  }
}
```

# Custom confirm and result screens

This example describes how to create full control of the confirm and result screens.

## 1. Add the library mounting points to your website

For this example only the required mounting point will be used.
This makes the layout more compact.

```HTML
<html>
  <body>
    <div id="app">
      <div class="form-wrapper">
        <section class="rebilly-instruments"></section>
      </div>
    </div>
  </body>
</html>
```

```CSS
body, html {
  background: #f8fbfd;
  padding: 0;
  margin: 0;
}

#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

.form-wrapper {
  max-width: 700px;
  box-sizing: border-box;
  padding: 40px 0;
  margin: 0 auto;
}

.form-wrapper section {
  background: #ffffff;
  box-sizing: border-box;
  padding: 40px!important;
  border-radius: 6px;
  border: 1px solid #e8e8fb;
}
```

## 2. Add a custom confirm screen

- Disable the confirm screen: set `features.hideConfirmation` to `true`.
- Use `RebillyInstruments.on()` to access the `instrument-ready` event to capture the instrument once it is created.
- Add your custom HTML.
- Use `RebillyInstruments.purchase()` to process the transaction.
  This action must be triggered by a user input event, such as a `click` event.
  Handle the request accordingly.

If you do not want to customize the result screen, to use the [built-in confirmation screen](/docs/dev-docs/reference-rebilly-instruments#rebillyinstrumentsshow): In the `instrument-ready` event, use the `RebillyInstruments.show('result')` to proceed to the auto result screen.

```JavaScript
RebillyInstruments.mount({
  publishableKey: 'pk_sandbox_123',
  organizationId: 'org-123',
  websiteId: 'my-website-id',
  apiMode: 'sandbox',
  features: {
    hideConfirmation: true,
  },
});

RebillyInstruments.on('instrument-ready', (instrument) => {
  const {billingAddress, _raw} = instrument;
  const form = document.querySelector('.rebilly-instruments');
  form.innerHTML = `
    <h1 class="rebilly-instruments-h1">Thanks, ${billingAddress.firstName} ${billingAddress.lastName} please confirm your purchase</h1>
    <h2 class="rebilly-instruments-h2">${_raw.paymentInstrument?.type || ' '} ${_raw.paymentInstrument.brand} ****** ${_raw.paymentInstrument?.last4}</h2>
    <button id="confirm">Confirm</button>
  `;

  const confirm = document.querySelector('#confirm');
  confirm.addEventListener('click', makePurchase);

  async function makePurchase() {
    try {
      confirm.disabled = true;
      confirm.innerText = 'Loading...';
      await RebillyInstruments.purchase(instrument);
    } catch (err) {
      console.log(err)
    } finally {
      confirm.disabled = false;
      confirm.innerText = 'Confirm';
    }
  }
});
```

## 3. Add a custom result screen

- Disable the confirm screen: Set the `features.hideResult` to `true`.
- Use `RebillyInstruments.on()` to access the `purchase-completed` event to capture the transaction once created.
- Add your custom HTML.
- Handle the response accordingly.

```JavaScript
RebillyInstruments.mount({
  publishableKey: 'pk_sandbox_123',
  organizationId: 'org-123',
  websiteId: 'my-website-id',
  apiMode: 'sandbox',
  features: {
    hideConfirmation: true,
    hideResult: true,
  },
});

RebillyInstruments.on('purchase-completed', (result) => {
  const {billingAddress, result: transactionResult} = result.transaction;
  const form = document.querySelector('.rebilly-instruments');
  if (transactionResult === 'approved') {
    form.innerHTML = `
    <h1 class="rebilly-instruments-h1">${billingAddress.firstName} ${billingAddress.lastName} thanks for your purchase</h1>
    <h2 class="rebilly-instruments-h2">👍 Approved</h2>
  `;
  } else {
    form.innerHTML = `
    <h1 class="rebilly-instruments-h1">Oops something went wrong</h1>
    <h2 class="rebilly-instruments-h2">😞 Transaction was ${transactionResult}</h2>
  `;
  }
});
```

## Interactive example

**Preview**

**iframe**

**JavaScript**

```js
import RebillyInstruments from '@rebilly/instruments';

RebillyInstruments.mount({
  publishableKey: 'pk_sandbox_123',
  organizationId: 'org-123',
  websiteId: 'my-website-id',
  apiMode: 'sandbox',
  items: [
    {
      planId: 'my-plan-id',
      quantity: 1,
    },
  ],
  features: {
    hideConfirmation: true,
    hideResult: true,
  },
});

RebillyInstruments.on('instrument-ready', (instrument) => {
  const { billingAddress, _raw } = instrument;
  const form = document.querySelector('.rebilly-instruments');
  form.innerHTML = `
    <h1 class="rebilly-instruments-h1">Thanks, ${billingAddress.firstName} ${billingAddress.lastName} please confirm your purchase</h1>
    <h2 class="rebilly-instruments-h2">${_raw.paymentInstrument?.type || ' '} ${_raw.paymentInstrument.brand} ****** ${_raw.paymentInstrument?.last4}</h2>
    <button id="confirm">Confirm</button>
  `;

  const confirm = document.querySelector('#confirm');
  confirm.addEventListener('click', makePurchase);

  async function makePurchase() {
    try {
      confirm.disabled = true;
      confirm.innerText = 'Loading...';
      await RebillyInstruments.purchase(instrument);
    } catch (err) {
      console.log(err);
    } finally {
      confirm.disabled = false;
      confirm.innerText = 'Confirm';
    }
  }
});

RebillyInstruments.on('purchase-completed', (result) => {
  const { billingAddress, result: transactionResult } = result.transaction;
  const form = document.querySelector('.rebilly-instruments');
  if (transactionResult === 'approved') {
    form.innerHTML = `
    <h1 class="rebilly-instruments-h1">${billingAddress.firstName} ${billingAddress.lastName} thanks for your purchase</h1>
    <h2 class="rebilly-instruments-h2">👍 Approved</h2>
  `;
  } else {
    form.innerHTML = `
    <h1 class="rebilly-instruments-h1">Oops something went wrong</h1>
    <h2 class="rebilly-instruments-h2">😞 Transaction was ${transactionResult}</h2>
  `;
  }
});
```

**HTML**

```html
<html>
  <body>
    <div id="app">
      <div class="form-wrapper">
        <section class="rebilly-instruments"></section>
      </div>
    </div>
  </body>
</html>
```

**CSS**

```css
body,
html {
  background: #f8fbfd;
  padding: 0;
  margin: 0;
}

#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

.form-wrapper {
  max-width: 700px;
  box-sizing: border-box;
  padding: 40px 0;
  margin: 0 auto;
}

.form-wrapper section {
  background: #ffffff;
  box-sizing: border-box;
  padding: 40px;
  border-radius: 6px;
  border: 1px solid #e8e8fb;
}
```

# Migrate sensitive payment data

This topic describes how to migrate sensitive payment data, such as Primary Account Numbers (PANs), which includes full payment card account numbers.

1. Review this plan with your Rebilly Customer Success Manager.
  [Contact Rebilly](https://www.rebilly.com/contact), and inform Rebilly on the data you want to import.
  Rebilly will inform you of any additional information that may be required.
2. Prepare your request and contact the third party, that holds the payment data:
    1. Use our [Draft email](#draft-email) to prepare and explain your request.
      Send it to the third party.
    2. Contact the third party by phone and discuss your request.
3. Submit a request to migrate sensitive payment data to Rebilly.
  Describe the format and structure of the data.
  For more information, see [SFTP access](#sftp-access).
4. The third party exports the data and places it on their own SFTP server or on a Rebilly server.
  Upon export, the third party must notify the merchant or Rebilly.
5. Rebilly imports the data.
  Rebilly may use scripts to check the quality of the data before the import, and will raise any concerns about the data.

## Draft email

Revise this email where appropriate.

> To Whom It May Concern:
>
> {Your Company Name} has contracted Rebilly as its payment orchestration platform.
> We would like to export all of our payment card data to Rebilly directly.
>
> [Optional: We are going to continue using you as our payment processor.]
>
> To complete the export, we need to know if you will export the data will you place it on an SFTP server that Rebilly can gain access to?
> Or, do you need Rebilly to set up an SFTP server for you to put the information?
> If so, Rebilly will need the email address of the user placing the information, the SSH public key, and the IP address(es) that need access to the SFTP server.
> We also need to know what format and structure the data will be in when you export it (example: CSV file with these fields: x, y, z).
>
> Rebilly expects the information to be encrypted.
> Their GPG key information is here:
>
> [https://www.rebilly.com/docs/dev-docs/pgp-public-key/](/docs/dev-docs/pgp-public-key)
>
> We would like to complete the export by [insert date].

> Thank you for your help and cooperation.
>
> Sincerely,
>
> P.S.
> Here is a link to the most recent Rebilly PCI DSS attestation of compliance for your records: [https://www.rebilly.com/docs/pci-compliance/](/docs/pci-compliance).

## SFTP access

If the third party intends to place data on the Rebilly SFTP server, Rebilly requires the following information.
You, the merchant, must gather this from the third party.

1. Email address.
2. IP addresses.
3. Public SSH key.

If the third party would like Rebilly to access a SFTP server, they must provide Rebilly with the username and password.
This information must be [encrypted](/docs/dev-docs/pgp-public-key).

# Test transactions in the sandbox

Use this process to test transactions using the `TestProcessor` payment gateway in the sandbox environment.
To test all other payment gateways, refer to their specific documentation.

## Test basic transactions

1. Optionally, to test transactions, create a new test customer and a Rebilly hosted payment form:

    1. In the left navigation bar, press **Data tables**, then press **Customers**.
    2. In the top right of the page, press **Add customer**.
    3. Enter the test customer's details, then press **Save customer**.
    4. In the right of the page, press **Manage customer**, then press **Collect payment**.
    5. Enter the amount and add a description for the test payment.
    6. Select the **Pay with Rebilly hosted payment form** option, and press **Submit**.
    7. Press **Copy URL** and open the URL in a browser.
    8. Use any card number from the steps below.
2. Simulate an approved transaction: Use a card number with a result of `Approved` from [Test cards, IBANs, and ACH details](/docs/tutorials/test-payment-cards#test-cards-ibans-and-ach-details).
3. Simulate a declined transaction: Use a card number with a result of `Declined` from [Test cards, IBANs, and ACH details](/docs/tutorials/test-payment-cards#test-cards-ibans-and-ach-details).

## Test special cases

Use the following special test scenarios to simulate specific transaction behaviors:

Use a future expiration date (except `10/2051`), and any valid CVV except `000`, or `0000` for Amex.
Amex cards have a 4 digit CVV, all others have a 3 digit CVV.

- **Incorrect CVV number provided**: Simulate the scenario where a user enters payment card details with an incorrect CVV.
  This results in a gateway response code "N7" with the message "Decline for CVV2 failure".
  CVV:`000`, `0000` for Amex.
- **Invalid or mismatched expiration date**: Simulate the scenario where the card number is valid but the expiration date does not match what the issuer has on file.
  Use an expiration date of `10/2051`.
  This results in a gateway response code "54" with the message "Expired card or expiration date is missing".
- **First transaction approved, subsequent transactions declined**: Simulate a successful subscription creation followed by declines on all rebills.
  Visa: `4000000000000010`
- **Timeout (Approved)**: Simulate a timeout from a downstream gateway.
  After execution, the result is updated from `timeout` to `approved`.
  Visa: `4000000000000200`
- **Timeout (Declined)**: Simulate a timeout from a downstream gateway.
  After execution, the result is updated from `timeout` to `declined`.
  Visa: `4462030000000000`
- **Connection error**: Simulate a connection exception.
  Visa: `4000000000001000`
- **Refund request morphed to void**: Where possible, Rebilly voids a transaction instead of refunding it.
  A void transaction prevents the transaction from occurring.
  A refund is a secondary transaction.
  Visa: `4000000000020000`
- **Refund declined**: Simulate a refund declined scenario.
  Visa: `4000000000100000`
- **Alternating approved or declined**: This test works on recurring payments (rebills) only.
  Using this payment card number will alternate between approved and declined transactions, starting with an approved status: Visa: `4000000002000000`
- **Declined with reason code Fraud**: Test this scenario if you handle declines with reason code Fraud, or want to test rules that are in place to handle this automatically, such as adding those customers to a blocklist.
  Visa: `4000000010000000`
- **Offsite payment flow**: Offsite payment is used for scenarios that involve Dynamic Currency Conversion (DCC) and 3D Secure.
  The offsite payment workflow is advanced, [contact us](https://www.rebilly.com/contact/) for more information.
  To trigger an offsite payment flow, use the following:
    - Simulate `waiting-approval` and then approve after a simulated 3DS flow is completed: Visa: `4000000000000101`
    - Approve instantly: Visa: `4000001000000000`
- **Waiting on gateway flow**: This test simulates `waiting-gateway` status, waiting on an asynchronous response from the processor.
  The transaction is marked as `approved` within 10 minutes.
  Visa: `4263982640269299`
- **Test ACH bank accounts**: Use this test bank account to test ACH:
    - Routing number: `123456789`
    - Account number: `1234567890`

# Rebilly news, features, and updates for March 2022

Team Rebilly is _March_-ing forward as we continue to _spring clean-out_ bugs, make room for exciting new developments, and improve upon our current features!
Read on to find out about the latest March happenings.

## New integrations

We continue to increase the number of payment methods and gateways we support.
This month we've added:

- Support for the [PIX payment method](https://www.rebilly.com/payment-methods/pix) for the [Pagsmile payment gateway](https://www.rebilly.com/gateways/pagsmile).
- Support for the [Bizum payment method](https://www.rebilly.com/payment-methods/bizum) for the [Redsys payment gateway](https://www.rebilly.com/gateways/redsys).
- Added Apple Pay and Google Pay support for the [Adyen payment gateway](https://www.rebilly.com/gateways/adyen).
- Added Apple Pay and Google Pay support for the [Stripe payment gateway](https://www.rebilly.com/gateways/stripe).
- Support for the [PIX payment method](https://www.rebilly.com/payment-methods/pix) for the [Skrill payment gateway](https://www.rebilly.com/gateways/skrill).
- Added support for the [FasterPay payment gateway](https://www.rebilly.com/gateways/fasterpay) and [payment method](https://www.rebilly.com/payment-methods/fasterpay).

## New features and additions

Every month we aim to add capabilities to the Rebilly suite to make merchants and end-users' lives easier.

- This month we added the option to edit the cancellation reason and description of a canceled subscription in the [Rebilly UI](/docs/data-tables/manage-subscriptions#change-cancellation-reason) and [Rebilly API](/docs/data-tables/manage-subscriptions#change-cancellation-reason).
  This feature allows customer service agents to update the cancellation information in Rebilly, resulting in more accurate reporting for cancellations.
  This data is powerful for optimizing marketing and product strategies.

**Need a gateway integration** that’s not on [our list](/gateways/)?
Follow our [new integration request guide](/docs/settings/integration-requests) and submit your request.

_Have any questions on these or future updates?
[Shoot us a message](https://www.rebilly.com/support/) and we’ll be happy to help!_

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) to see what you're missing.**

# Rebilly Subscription Agreement

This Rebilly Subscription Agreement (“Agreement”) is a legally binding contract between you, as the customer (“Customer”, “you”, or “Licensee”), and Rebilly Inc., acting on behalf of itself and its affiliated companies, including Rebilly SRL, the owner of the Rebilly intellectual property (“Rebilly”, “we”, or “us”).

By accessing or using the Rebilly platform, APIs, Hosted Payment Pages, or related services (collectively, the “Services”), you agree to be bound by this Agreement.

This Agreement governs your subscription to and use of the Services and incorporates by reference:

- the Rebilly Data Processing Addendum (“DPA”)
- the Rebilly Service Level Agreement (“SLA”)
- any applicable Order Form

## 1. Definitions

For purposes of this Agreement, the following definitions apply:

**“Affiliate”** means any entity that directly or indirectly controls, is controlled by, or is under common control with a party, where “control” means ownership of more than fifty percent (50%) of the voting interests or the ability to direct management.

**“Authorized Users”** means Customer’s employees, Affiliates, contractors, and service providers who are authorized by Customer to access and use the Services on Customer’s behalf.

**“API”** means Rebilly’s application programming interfaces made available as part of the Services.

**“Admin UI”** means Rebilly’s web-based administrative user interface for managing Customer’s account and configuration.

**“Customer Data”** means all data, content, and information submitted to or processed through the Services by or on behalf of Customer, including transaction data.

**“Personal Data”** has the meaning given in applicable data protection laws and in the Data Processing Addendum.

**“Data Processing Addendum” or “DPA”** means the Rebilly Data Processing Addendum available at [www.rebilly.com/legal/dpa](https://www.rebilly.com/legal/dpa), as updated from time to time in accordance with its terms.

**“Hosted Payment Pages”** means Rebilly-hosted web pages used for payment and checkout flows as part of the Services.

**“Order Form”** means an ordering document, online order, or written agreement between Customer and Rebilly specifying the Services, pricing, and Subscription Term.

**“Service Level Agreement” or “SLA”** means the Rebilly Service Level Agreement available at [www.rebilly.com/legal/sla](https://www.rebilly.com/legal/sla), as updated from time to time in accordance with its terms.

**“Services”** means Rebilly’s recurring billing, payment orchestration, subscription management, and related platform services, including access via API, Admin UI, and Hosted Payment Pages.

**“Subscription Term”** means the initial and any renewal subscription term specified in the applicable Order Form.

**“Rebilly IP”** means all intellectual property owned or licensed by Rebilly, including software, APIs, documentation, and platform technology.

**“Rebilly SRL”** means Rebilly SRL, the owner of the Rebilly intellectual property.

**“Rebilly Inc.”** means Rebilly Inc., acting as the contracting and operating entity on behalf of Rebilly SRL and its affiliates.

## 2. Services and access

### 2.1 Services

Rebilly provides a recurring billing and payments platform that enables Customer to configure, operate, and manage subscription billing, invoicing, payments, and related workflows (including integrations with payment gateways and other third-party services) through the Services.

The Services may include features such as subscription and billing configuration, customer and account management, invoicing, tax and pricing configuration, payment orchestration, reporting and analytics, and related operational tooling.
The specific Services and any applicable limits, usage tiers, or fees are described in the applicable Order Form.

### 2.2 Access methods

Customer may access and use the Services through one or more of the following methods, as made available by Rebilly:

- **API:** programmatic access via the API for integrations and automation.
- **SDKs:** client libraries and tools provided by Rebilly to simplify integration with the API.
- **Web components:** Rebilly-provided front-end components (for example, embeddable checkout or payment components) used to implement user-facing payment flows.
- **Admin UI:** access via Rebilly’s web-based administrative user interface for configuration, operations, and reporting.
- **Hosted components:** access to Rebilly-hosted components such as Hosted Payment Pages (and any similar hosted checkout or payment components provided by Rebilly).

Customer is responsible for ensuring that its Authorized Users access the Services only through supported methods and in accordance with this Agreement, the applicable Order Form, and any published documentation.

### 2.3 Authorized users; Credentials

Customer may authorize its Authorized Users to access and use the Services on Customer’s behalf.
Customer is responsible for all use of the Services under Customer’s account, including actions taken by Authorized Users and any person using Customer’s credentials, API keys, certificates, tokens, or similar access mechanisms.

Customer will: (a) maintain the confidentiality of its access credentials; (b) use commercially reasonable efforts to prevent unauthorized access or use; and (c) promptly notify Rebilly of any suspected compromise of credentials or unauthorized access.

### 2.4 Subscription basis

The Services are provided on a subscription basis for the Subscription Term.
Customer’s subscription, permitted scope of use, fees, and any usage-based charges, limits, or overage terms (if applicable) are set forth in the applicable Order Form.

### 2.5 Changes to services

Rebilly may update, modify, or discontinue features of the Services from time to time as part of ongoing development, security, compliance, and operational improvements.
Rebilly will not materially reduce the core functionality of the Services purchased under an Order Form during the applicable Subscription Term, except: (a) to address security, legal, or compliance requirements; (b) to prevent abuse or material operational risk; or (c) as otherwise agreed in writing by the parties.

### 2.6 Sandbox environment

Rebilly may make available a sandbox or test environment as part of the Services to allow Customer to develop, test, and validate integrations and workflows (“Sandbox Environment”).

The Sandbox Environment is provided solely for non-production testing and development purposes.
Customer will not use the Sandbox Environment to process live transactions, store real cardholder data, or conduct production operations.

Rebilly may modify, restrict, reset, or discontinue the Sandbox Environment at any time without notice.
The Sandbox Environment is not subject to the SLA, availability commitments, or support response times applicable to production Services, unless expressly stated otherwise in an Order Form.

Customer acknowledges that data in the Sandbox Environment may be deleted, reset, or altered at any time and should not be relied upon for backup, audit, or business continuity purposes.

## 3. Orders, term, renewal, and payment

### 3.1 Order forms; scope

Customer’s right to access and use the Services is limited to the Services, Subscription Term, usage limits (if any), and other commercial terms set forth in an applicable Order Form.
If Customer purchases additional Services or changes its plan, the parties may enter into an additional Order Form.

If Customer uses the Services without an executed Order Form, Customer’s use of the Services will be governed by this Agreement and the then-current pricing, plans, usage limits, and commercial terms published at https://www.rebilly.com/pricing (or a successor page) at the time of use.
Such published pricing and terms will be deemed incorporated into this Agreement by reference for purposes of Customer’s use of the Services.

### 3.2 Subscription term; renewal

Unless otherwise specified in an Order Form, the Subscription Term will begin on the start date set forth in the Order Form (or, if none, the date Customer is provisioned access to the Services) and will renew automatically for successive renewal terms equal in length to the initial Subscription Term.

Either party may prevent renewal by providing written notice of non-renewal at least thirty (30) days before the end of the then-current Subscription Term (unless a different notice period is specified in the applicable Order Form).

### 3.3 Fees; invoicing

Fees are as set forth in the applicable Order Form and may include subscription fees and, if applicable, usage-based fees (for example, transaction-based fees or volume-based fees).
Unless otherwise specified in an Order Form, Rebilly will invoice Customer monthly in arrears for usage-based fees and monthly or annually in advance for subscription fees (as applicable to Customer’s plan).

### 3.4 Payment terms; taxes

Unless otherwise specified in an Order Form, Customer will pay all undisputed amounts within fifteen (15) days of the invoice date.
Late payments may accrue interest at the lesser of (a) one and one-half percent (1.5%) per month, or (b) the maximum rate permitted by law.

Fees are exclusive of taxes.
Customer is responsible for all applicable taxes, duties, levies, or similar governmental assessments (including value-added, sales, use, or withholding taxes) related to Customer’s purchase or use of the Services, except for taxes based on Rebilly’s net income.

### 3.5 Usage limits; overages

If an Order Form includes usage limits, rate limits, or other consumption-based thresholds, Customer agrees that Rebilly may enforce those limits (including by throttling requests) to protect service stability and fair use.
Where feasible, Rebilly will provide reasonable notice of material usage overages and will work with Customer in good faith on reasonable mitigations.

If overage fees apply, they will be calculated and invoiced as described in the applicable Order Form.

### 3.6 Suspension for non-payment

If Customer fails to pay undisputed amounts when due, Rebilly may suspend Customer’s access to the Services after providing at least ten (10) days’ written notice of non-payment, unless earlier suspension is necessary to prevent fraud, abuse, or material security risk.
During any suspension, Customer remains responsible for all fees and charges incurred.

### 3.7 No refunds

Except as expressly set forth in an Order Form or required by law, fees are non-refundable and non-cancelable.

### 3.8 Order of precedence

If there is any conflict between the documents that make up the agreement between the parties, the following order of precedence will apply (highest to lowest):

1. the applicable Order Form;
2. any written amendment or addendum expressly referencing this Agreement or the Order Form;
3. this Agreement;
4. the Data Processing Addendum; and
5. the Service Level Agreement.

Each document applies only to the extent not inconsistent with a higher-priority document.

## 4. Customer responsibilities and acceptable use

### 4.1 Customer responsibilities

Customer is responsible for: (a) Customer’s and its Authorized Users’ compliance with this Agreement, applicable Order Forms, and applicable laws; (b) the accuracy, quality, and legality of Customer Data and Customer’s collection and use of Customer Data; (c) Customer’s systems, configurations, and integrations with the Services (including any code, SDK usage, and implementation of web components); and (d) maintaining appropriate security controls for Customer’s environment, credentials, and access to the Services.

### 4.2 Authorized users; affiliates

Customer may permit its Authorized Users (including Affiliates) to access and use the Services solely for Customer’s internal business purposes and on Customer’s behalf.
Customer will ensure that all Authorized Users are bound by obligations at least as protective as those in this Agreement and is responsible for all acts and omissions of Authorized Users as if they were Customer’s own.

### 4.3 Acceptable use

Customer will not (and will not allow any Authorized User or third party to):

- access or use the Services in a manner that violates applicable law, card network rules, or Payment Card Industry Data Security Standards (PCI DSS) (as applicable);
- interfere with, disrupt, or attempt to gain unauthorized access to the Services or related systems;
- use automated means such as bots, scrapers, spiders, or similar technologies to access or extract data from the Services except as expressly permitted by the API and Documentation;
- probe, scan, or test the vulnerability of the Services except as expressly authorized in writing by Rebilly;
- use the Services to transmit malware or to engage in fraudulent, deceptive, or unlawful conduct;
- reverse engineer, decompile, or disassemble the Services (except to the extent such restriction is prohibited by law);
- copy, modify, or create derivative works of the Services except as expressly permitted by this Agreement or an Order Form; or
- access the Services for the purpose of building or benchmarking a competing product, or to extract data other than as required for Customer’s permitted use.

### 4.4 Credentials and API keys

Customer is responsible for safeguarding all credentials, API keys, certificates, tokens, and similar access mechanisms.
Customer will promptly disable credentials for any Authorized User who no longer requires access and will promptly notify Rebilly of any suspected compromise or unauthorized access.

### 4.5 Usage limits; rate limits

Customer will comply with any technical documentation, usage constraints, and rate limits applicable to the Services.
Rebilly may enforce reasonable rate limits and other protective measures to maintain security, stability, and fair use.
Where feasible, Rebilly will provide advance notice of material changes to published rate-limit policies.

### 4.6 Audit logs and exports

Where the Services provide export, reporting, or audit logging capabilities, Customer is responsible for exporting and retaining records Customer requires for its business, legal, or compliance needs.

## 5. Security, compliance, and incident notification

### 5.1 Security program

Rebilly maintains a security program designed to protect the confidentiality, integrity, and availability of the Services and Customer Data.
Rebilly implements and maintains administrative, technical, and physical safeguards appropriate to the nature of the Services and the risk profile of processing payment and subscription-related data.

### 5.2 Shared responsibility

Customer is responsible for the security of Customer’s systems, networks, devices, applications, and configurations that connect to or use the Services, including the secure management of Authorized Users, credentials, API keys, certificates, tokens, and access permissions.
Customer will implement reasonable security measures and follow any security-related documentation provided by Rebilly.

### 5.3 SOC 2

Rebilly undergoes an annual SOC 2 audit.
Upon request and subject to reasonable confidentiality obligations, Rebilly will make available its then-current SOC 2 report (or executive summary) to Customer.

### 5.4 PCI DSS

To the extent Rebilly stores, processes, or transmits cardholder data (as applicable to the Services used by Customer), Rebilly will maintain compliance with the then-current version of the Payment Card Industry Data Security Standard (PCI DSS) within its applicable scope of responsibility.
Customer is responsible for its own PCI DSS compliance obligations, including obligations applicable to Customer’s systems, integrations, and any data elements Customer collects, transmits, or stores outside the Services.

### 5.5 Security incident notification

“Security Incident” means a confirmed unauthorized access to or acquisition of Customer Data within Rebilly’s control that compromises the security, confidentiality, or integrity of such Customer Data.

Rebilly will notify Customer without undue delay after becoming aware of a Security Incident and will provide information reasonably necessary for Customer to meet any applicable legal or regulatory notification obligations.
Rebilly will use commercially reasonable efforts to provide an initial notification within seventy-two (72) hours of such awareness, and sooner where practicable, subject to law enforcement delays or measures required to prevent further compromise.

Rebilly will: (a) take reasonable steps to contain, investigate, and remediate the Security Incident; and (b) provide updates as material information becomes available.
Rebilly’s obligations in this Section do not apply to incidents caused by Customer’s systems, credentials, or Authorized Users.

### 5.6 Vulnerability reporting and security testing

Customer may report suspected security vulnerabilities to Rebilly at security@rebilly.com (or another address designated by Rebilly).
Customer will not conduct penetration testing, vulnerability scanning, or other security testing against the Services without Rebilly’s prior written consent.
Rebilly may authorize testing subject to scope, timing, and rules of engagement reasonably required to protect the Services and other customers.

### 5.7 Sub-processors and third-party integrations

Rebilly may use sub-processors to support delivery of the Services as described in the DPA and Rebilly’s published sub-processor list.

Customer may also configure integrations with third-party providers (for example, payment gateways and related service providers) as part of Customer’s use of the Services (“Customer-Configured Integrations”).
Customer acknowledges that: (a) Customer controls which Customer-Configured Integrations are enabled; (b) those providers receive data as necessary to perform the integrated service; and (c) such providers are not “sub-processors” of Rebilly to the extent Rebilly is acting solely as a technical conduit to transmit Customer-directed data to a provider selected, enabled, or configured by Customer.
This Section does not limit Rebilly’s obligations regarding Rebilly-controlled sub-processors as described in the DPA.

To the maximum extent permitted by law, Rebilly shall not be liable for, and does not accept any responsibility or obligation with respect to, any loss, damage, or claim arising from or relating to Customer-Configured Integrations or the transmission of Customer-directed data to such third-party providers.
Customer acknowledges that Rebilly acts solely as a technical conduit for data transmitted to third parties selected, enabled, or configured by Customer, and that any processing, storage, or use of such data by those third parties is governed solely by Customer’s agreement with the applicable provider.

### 5.8 Compliance with laws

Without limiting the foregoing, Customer is responsible for: (a) compliance with card network rules, ACH network rules, and payment gateway or acquirer requirements applicable to Customer’s transactions; (b) maintaining any required licenses, registrations, and customer disclosures for its business; and (c) compliance with applicable anti-money laundering, sanctions, and anti-fraud laws and regulations as they apply to Customer’s business and customers.
Rebilly may require Customer to provide information reasonably necessary to support Rebilly’s compliance obligations (including processor or gateway onboarding requirements).

Each party will comply with laws applicable to it in connection with its performance under this Agreement.
Customer is responsible for determining whether the Services are suitable for Customer’s intended use and for ensuring Customer’s use of the Services complies with applicable laws, regulations, and network rules.

## 6. Confidentiality

### 6.1 Confidential information

“Confidential Information” means any non-public information disclosed by a party (“Disclosing Party”) to the other party (“Receiving Party”) that is designated as confidential or that reasonably should be understood to be confidential given the nature of the information and the circumstances of disclosure.
Confidential Information includes, without limitation: (a) business, pricing, product, roadmap, and technical information; (b) security measures and audit reports; (c) the Services and Rebilly IP; and (d) Customer Data (and Personal Data, as applicable) to the extent treated as confidential under this Agreement and the DPA.

Confidential Information does not include information that the Receiving Party can demonstrate: (i) is or becomes publicly available through no breach of this Agreement; (ii) was lawfully known to the Receiving Party without restriction before receipt from the Disclosing Party; (iii) is independently developed by the Receiving Party without use of or reference to the Disclosing Party’s Confidential Information; or (iv) is rightfully received from a third party without restriction and without breach of any obligation of confidentiality.

### 6.2 Protection and use restrictions

The Receiving Party will: (a) use the Disclosing Party’s Confidential Information only to perform its obligations or exercise its rights under this Agreement; (b) protect the Disclosing Party’s Confidential Information using at least reasonable care and no less than the care it uses to protect its own confidential information of a similar nature; and (c) not disclose the Disclosing Party’s Confidential Information to any third party except as expressly permitted under this Agreement.

### 6.3 Permitted disclosures

The Receiving Party may disclose the Disclosing Party’s Confidential Information to its employees, Affiliates, contractors, agents, and professional advisors (including attorneys, auditors, and insurers) who have a need to know for purposes of this Agreement and who are bound by confidentiality obligations at least as protective as those in this Section.

Rebilly may disclose Customer Confidential Information and Customer Data to its sub-processors and service providers as necessary to provide the Services, subject to the DPA.

### 6.4 Artificial Intelligence

Rebilly will not use Customer Confidential Information or Personal Data to train or fine-tune publicly available or general-purpose artificial intelligence foundation models.
Nothing in this Section prohibits Rebilly from using artificial intelligence technologies in the provision, operation, security, support, maintenance, or improvement of the Services, provided such use complies with this Agreement, the DPA, and applicable law.

### 6.5 Compelled disclosure

If the Receiving Party is required by law, regulation, or court order to disclose any Confidential Information, it will (to the extent legally permitted) provide the Disclosing Party prompt written notice, and where legally permitted, within forty-eight (48) hours of becoming aware of such requirement, together with reasonable assistance to seek a protective order or other appropriate remedy.
The Receiving Party will disclose only the portion of Confidential Information that it is legally required to disclose.

### 6.6 Return or destruction

Upon written request by the Disclosing Party, the Receiving Party will return or destroy the Disclosing Party’s Confidential Information in its possession or control, except that the Receiving Party may retain copies (a) as required to comply with applicable law, regulation, or professional standards; or (b) in accordance with its bona fide backup, archival, or disaster recovery policies, provided that any retained Confidential Information remains subject to this Section for as long as it is retained.

### 6.7 Confidentiality term

The obligations in this Section apply during the Subscription Term and for five (5) years after termination or expiration of this Agreement.
For trade secrets, confidentiality obligations will survive for so long as such information remains a trade secret under applicable law.

### 6.8 Remedies

Each party acknowledges that unauthorized use or disclosure of the other party’s Confidential Information may cause irreparable harm for which monetary damages may be an inadequate remedy.
In addition to any other remedies available at law or in equity, the non-breaching party may seek injunctive or equitable relief to prevent or remedy such unauthorized use or disclosure, without the necessity of posting a bond.

## 7. Intellectual property

### 7.1 Rebilly IP

As between the parties, Rebilly SRL (or its licensors) owns and retains all right, title, and interest in and to the Services and Rebilly IP, including all improvements, enhancements, and derivative works thereof.
Except as expressly stated in this Agreement and the applicable Order Form, no rights are granted to Customer.

### 7.2 License to use the Services

Subject to Customer’s compliance with this Agreement and payment of applicable fees, Rebilly grants Customer a non-exclusive, non-transferable, non-sublicensable right during the Subscription Term to access and use the Services solely for Customer’s internal business purposes and in accordance with the applicable Order Form and Documentation.

### 7.3 Customer Data

As between the parties, Customer owns and retains all right, title, and interest in and to Customer Data.
Customer grants Rebilly and its sub-processors a non-exclusive, worldwide, royalty-free license to host, process, transmit, and otherwise use Customer Data solely as necessary to provide, secure, and support the Services and to fulfill Rebilly’s obligations under this Agreement.

### 7.4 Feedback

If Customer provides suggestions, enhancement requests, recommendations, or other feedback regarding the Services (“Feedback”), Customer grants Rebilly a perpetual, irrevocable, worldwide, royalty-free license to use and incorporate Feedback into the Services without restriction or obligation.

### 7.5 Marks

If an Order Form or other written agreement includes a publicity or logo-use permission, it will govern.
Otherwise, neither party may use the other party’s name, trademarks, or logos in external marketing without prior written consent.

### 7.6 Operational and usage data

Rebilly may collect and use aggregated and anonymized operational and usage data relating to the Services for billing, analytics, security, support, product improvement, and business operations, provided that such data does not identify Customer or any individual.

To the extent any such data includes Personal Data, Rebilly will process it in accordance with the DPA and applicable data protection laws.
Nothing in this Section grants Rebilly any right to use Customer Data in identifiable form for external marketing or advertising purposes.

## 8. Support; SLA

### 8.1 Support

Rebilly will provide support for the Services in accordance with the support terms (if any) set forth in the applicable Order Form and Rebilly’s published support policies.

### 8.2 SLA

Where applicable, Rebilly will provide the Services in accordance with the SLA.
The SLA describes availability targets, scheduled maintenance windows (if any), and incident communication practices.

### 8.3 Rate limits

Rebilly may impose and enforce reasonable rate limits and other technical controls to protect the security, stability, and fair use of the Services.
Rebilly will publish rate-limit guidance in its Documentation and, where feasible, will provide notice of material changes.
Customer may request temporary adjustments for legitimate peak or critical events, and Rebilly will consider such requests in good faith.

## 9. Warranties; disclaimers

### 9.1 Mutual authority

Each party represents and warrants that it has the power and authority to enter into this Agreement.

### 9.2 Disclaimer

EXCEPT AS EXPRESSLY PROVIDED IN THIS AGREEMENT, THE SERVICES, DOCUMENTATION, SDKS, WEB COMPONENTS, AND HOSTED COMPONENTS ARE PROVIDED “AS IS” AND “AS AVAILABLE.” REBILLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.

## 10. Limitation of liability

### 10.1 Exclusion of certain damages

TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL EITHER PARTY BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, EXEMPLARY, OR PUNITIVE DAMAGES, OR FOR ANY LOSS OF PROFITS, REVENUE, DATA, OR BUSINESS INTERRUPTION, ARISING OUT OF OR RELATED TO THIS AGREEMENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

### 10.2 Liability cap

TO THE MAXIMUM EXTENT PERMITTED BY LAW, EACH PARTY’S TOTAL AGGREGATE LIABILITY ARISING OUT OF OR RELATED TO THIS AGREEMENT WILL NOT EXCEED THE AMOUNTS PAID OR PAYABLE BY CUSTOMER TO REBILLY FOR THE SERVICES GIVING RISE TO THE CLAIM DURING THE TWELVE (12) MONTHS IMMEDIATELY PRECEDING THE EVENT FIRST GIVING RISE TO THE CLAIM.

### 10.3 Exclusions

Sections 10.1 and 10.2 do not apply to: (a) Customer’s payment obligations; (b) either party’s breach of Section 6 (Confidentiality); (c) either party’s infringement or misappropriation of the other party’s intellectual property rights; or (d) amounts payable under Section 11 (Indemnification).

## 11. Indemnification

### 11.1 Customer indemnity

Customer will defend, indemnify, and hold harmless Rebilly, its Affiliates, and their respective officers, directors, employees, and agents from and against any third-party claims, damages, liabilities, costs, and expenses (including reasonable attorneys’ fees) arising out of or related to: (a) Customer’s products or services; (b) Customer’s breach of this Agreement; or (c) Customer Data or Customer’s use of the Services in violation of applicable law.

### 11.2 Procedure

The indemnified party will: (a) promptly notify the indemnifying party of the claim (provided that failure to notify will not relieve obligations except to the extent materially prejudiced); (b) allow the indemnifying party to control the defense and settlement of the claim; and (c) provide reasonable cooperation at the indemnifying party’s expense.
The indemnifying party may not settle a claim in a manner that admits liability or imposes obligations on the indemnified party without the indemnified party’s prior written consent.

### 11.3 Rebilly IP infringement indemnity

Rebilly will defend Customer from and against any third-party claim alleging that the Services, Rebilly SDKs, web components, or Rebilly-provided Hosted Payment Pages (collectively, “Rebilly Materials”) infringe or misappropriate such third party’s intellectual property rights, and will indemnify Customer against any damages, fines, penalties, and reasonable attorneys’ fees awarded by a court of competent jurisdiction or agreed in a written settlement signed by Rebilly, provided that Customer: (a) promptly notifies Rebilly in writing of the claim; (b) allows Rebilly to control the defense and settlement of the claim; and (c) provides reasonable cooperation at Rebilly’s expense.

### 11.4 Indemnity exclusions; mitigation

Rebilly’s obligations in Section 11.3 do not apply to claims arising from: (a) Customer Data; (b) Customer’s products or services; (c) Customer’s modification of the Rebilly Materials or combination of the Rebilly Materials with items not provided by Rebilly, to the extent the claim would not have arisen but for such modification or combination; (d) Customer-Configured Integrations and Third Party Products; or (e) Customer’s use of the Services other than in accordance with this Agreement and applicable Documentation.

If the Services become (or, in Rebilly’s reasonable opinion, are likely to become) the subject of an infringement claim, Rebilly may, at its option and expense: (i) procure the right for Customer to continue using the Services; (ii) modify or replace the Services to be non-infringing without materially reducing core functionality; or (iii) terminate the affected Services and refund any prepaid fees for the terminated portion of the Subscription Term.

## 12. Suspension; termination

### 12.1 Suspension

Rebilly may suspend Customer’s access to the Services (in whole or in part) to the extent reasonably necessary to: (a) address a Security Incident or credible threat to the security or stability of the Services; (b) prevent fraud or abuse; (c) comply with applicable law or a binding request from a governmental authority; or (d) enforce Section 3.6 (Suspension for non-payment).
Where practicable, Rebilly will provide notice and will use commercially reasonable efforts to limit the scope and duration of any suspension.

### 12.2 Termination for cause

Either party may terminate this Agreement or an applicable Order Form for material breach if the breaching party does not cure the breach within thirty (30) days after receiving written notice (or, for payment breaches, within ten (10) days after written notice).

### 12.2A Termination for convenience; non-renewal

Unless otherwise stated in an Order Form, either party may terminate an Order Form for convenience by providing at least thirty (30) days’ prior written notice to the other party.
Termination for convenience will be effective at the end of the then-current billing period unless the parties agree otherwise in writing.
For clarity, the non-renewal process in Section 3.2 remains available to either party.

### 12.3 Effect of termination

Upon termination or expiration of an Order Form, Customer’s right to access and use the Services under that Order Form will cease.
Upon written request, Rebilly will provide Customer with a reasonable opportunity to export Customer Data using available export functionality, subject to applicable law and security requirements.

### 12.4 Survival

The following Sections will survive termination or expiration of this Agreement: 6 (Confidentiality), 7 (Intellectual property), 10 (Limitation of liability), 11 (Indemnification), 12.3 (Effect of termination), and 13 (General).

## 13. General

### 13.1 Order of precedence

The order of precedence in Section 3.8 applies to the documents that make up the agreement between the parties.

### 13.2 Assignment

Neither party may assign this Agreement without the other party’s prior written consent, except that either party may assign this Agreement in connection with a merger, acquisition, reorganization, or sale of substantially all of its assets, provided the assignee agrees in writing to be bound by this Agreement.

### 13.3 Force majeure

Neither party will be liable for any delay or failure to perform due to events beyond its reasonable control, including acts of God, natural disasters, war, terrorism, labor disputes, internet or cloud provider failures not caused by the affected party, or governmental actions.

### 13.4 Relationship of the parties

The parties are independent contractors.
This Agreement does not create a partnership, joint venture, employment, or agency relationship.

### 13.5 Governing law

This Agreement is governed by and construed in accordance with the laws of the State of Texas, without regard to conflict of law principles.
The state and federal courts located in Travis County, Texas will have exclusive jurisdiction over any dispute arising out of or related to this Agreement, and each party consents to such jurisdiction and venue.

### 13.6 Notices

Notices must be in writing and will be deemed given when delivered by personal delivery, overnight courier, or confirmed email.
Notices to Rebilly must be sent to help@rebilly.com (or such other address Rebilly designates in writing).
Notices to Customer will be sent to the primary email address on Customer’s account or the notice email in the applicable Order Form.

### 13.7 Changes to this Agreement

Rebilly may update this Agreement from time to time by posting an updated version on its website.
Updates will not apply retroactively and will not materially reduce Customer’s rights during a then-current Subscription Term under an Order Form, except as required for legal, security, or compliance reasons.

### 13.8 Severability

If any provision of this Agreement is held invalid or unenforceable, the remaining provisions will remain in full force and effect.

### 13.9 Public announcements

Neither party shall issue a press release or other public announcement regarding this Agreement or the relationship between the parties without the other party’s prior written consent, except as required by law.

### 13.10 Entire agreement

This Agreement, together with the DPA, SLA, and applicable Order Forms, constitutes the entire agreement between the parties regarding the Services and supersedes all prior or contemporaneous agreements on the subject matter.

# Payment processing

This topic provides an overview of payment processing and what Rebilly provides.
Payment processing is the management of money transfers from customers to merchants.
A payment transaction is the transfer of money from a customer to a merchant so that the customer can receive goods or services.
To process a payment, you require a payment gateway account and a merchant bank account.

To view all payment interactions that are available in Rebilly, see [Payment management](/docs/tutorials/payment-management).

## Payment gateways

A payment gateway is a service which enables a business to receive payments from customers to their merchant bank account.
A merchant account is a bank account that enables businesses to receive payments.

A payment method is a means of making a payment, for example a credit card payment.
A payment instrument is a term which describes any means of making a digital payment, such as: credit cards, debit cards, direct debits, payment service providers, and digital wallets.

Rebilly supports 214 payment gateways and 184 payment methods.
By using Rebilly, you avoid the complex and time-consuming process of individually integrating payment gateways and methods — you get all this out-of-the-box.
Additionally, you will never need to handle these integrations yourself.
If you would like to integrate a new payment gateway, Rebilly will do it for you at no additional cost.
For more information, see [Request a new payment gateway integration](/docs/settings/integration-requests).

Rebilly provides an array of payment gateway automations to help you manage your payment gateways.
One of the most common gateway automations is [gateway routing](/docs/tutorials/automations#gateway-routing), which dynamically routes transactions between payment gateways, based on real-time data and selected parameters.
For more information, see [Gateway automations](/docs/tutorials/automations#gateway-automation).

To use a payment gateway in Rebilly, you must have an account with a payment gateway provider, and must configure payment gateway settings in Rebilly.
For a complete list of supported gateway providers, see [Payment gateways](/gateways/).

To set up and configure payment gateway accounts in Rebilly, see [Set up a payment gateway](/docs/settings/set-up-a-gateway).

## Components of a payment transaction

A payment transaction is associated with the following components, interactions between these components are described in [payment transaction lifecycle](#payment-transaction-lifecycle):

- [Customer](/docs/glossary#customer): Entity that purchases goods or services from a merchant.
- [Merchant](/docs/glossary#merchant): Entity that sells products or services to customers.
- Merchant website or app: Where a merchant sells products or services to customers online.
  Rebilly acts as an intermediary between the merchant's website or app and the payment gateway, ensuring secure capture, encryption, and transmission of payment data.
  Rebilly also:
    - [Provides payment gateway routing](/docs/tutorials/automations#gateway-routing).
    - [Tokenizes payment data](#tokenization-and-vaulting).
    - [Ensures PCI compliance and adherence to security and payments regulations](#pci-compliance-and-security).
    - [Provides fraud protection](#fraud-protection).
- [Payment gateway](/docs/glossary#payment-gateway): Service that enables a business to receive payments from customers to their merchant bank account.
- Payment processor: Service that enables a business to receive payments from customers to their merchant bank account.
- Issuer processor: Service that enables a business to receive payments from customers to their merchant bank account.
- [Issuing bank](/docs/glossary#issuing-bank): Bank that issues credit cards to customers.
- [Acquiring bank](/docs/glossary#acquirer-bank): Bank that processes payments for the merchant.

### Payment transaction lifecycle

The following diagram describes the interactions and components in a payment transaction.

```mermaid
sequenceDiagram
    Customer ->> Merchant's website: 1.
    Merchant's website ->> Payment gateway: 2.
    Payment gateway ->> Payment processor: 3.
    Payment processor ->> Issuer processor: 4.
    Issuer processor ->> Issuing bank: 5.
    Issuing bank -->> Issuer processor: 6.
    Issuer processor -->> Payment processor: 7.
    Payment processor -->> Payment gateway: 8.
    Payment gateway -->> Merchant's website: 9.
    Merchant's website -->> Customer: 10.
    Issuing bank ->> Acquiring bank: 11.
    Acquiring bank -->> Merchant's website: 12.
```

1. A customer initiates a transaction in the merchant's website or app.
  For example by entering payment details, such as credit card details.
  Rebilly is integrated into the merchant's website or app.
2. Rebilly captures, encrypts, and securely transmits payment data to a payment gateway that is selected using [gateway routing](/docs/tutorials/automations#gateway-routing).
  Rebilly [tokenizes the payment data](#tokenization-and-vaulting), ensures [PCI compliance](#pci-compliance-and-security), and provides [fraud protection](#fraud-protection).
3. The payment gateway forwards the encrypted payment data to the payment processor for further processing.
4. The payment processor sends the transaction request to the issuer processor, such as the Visa or Mastercard network.
5. The issuer processor sends the transaction request to the issuing bank, which is the bank that issued the customer's card.
6. The issuing bank verifies the transaction details, checks the customer's account status and available funds, performs fraud checks, and makes a decision to approve or decline the transaction based on these results.
7. The issuer processor sends the authorization response back to the payment processor.
8. The payment processor sends the authorization response to the payment gateway.
9. The payment gateway notifies Rebilly of the transaction status, whether it is approved or declined.
10. Rebilly notifies the customer of the transaction status, whether it is approved or declined.
11. The issuing bank initiates the settlement process by transferring funds to the acquiring bank, which is the bank that processes payments for the merchant.
12. The acquiring bank receives funds from the issuing bank and credits them to the merchant's account.
  The transaction is complete.

## PCI compliance and security

All businesses that accept card payments must comply with the Payment Card Industry Data Security Standards (PCI DSS) standards.
Obtaining and maintaining PCI compliance is a complex and expensive process.
By using Rebilly you reduce security related expenses by offloading most of your PCI-DSS compliance burden.

Rebilly is a level 1 PCI-DSS service provider; data security is one of the highest priorities.
Rebilly goes beyond industry standards to meet a high level of data security at every layer, from server hardening techniques and network segmentation to extensive data integrity logging, secure coding practices, and rigorous testing.

Rebilly is also [SOC 2](/docs/glossary#system-and-organization-controls-2-soc-2) compliant.
This means that sensitive data is managed securely within the context of SaaS and other cloud-based services.
For more information about Rebilly and PCI compliance, including a link to download the Rebilly attestation of compliance, see [PCI compliance](/docs/pci-compliance).

Additionally, to make your system more secure, Rebilly provides the ability to [tokenize and vault](#tokenization-and-vaulting) cards and process them, along with secure SDKs in iframes to reveal and capture card data in the merchant website or app.
Rebilly enables you to isolate your system from managing or processing card data.

### Tokenization and vaulting

Rebilly helps to keep your payment data secure and reduces processing costs by providing tokenized payments.
Tokenized payments can produce higher approval rates and ensure less fraud.
Rebilly also supports storing and re-using third-party tokens.

Tokenization is the process of replacing Payment Card Numbers (PANs) with unique and non-sensitive strings of numbers called payment tokens.
A payment token is a short-lived unique string of numbers that represents a PAN.

Rebilly vaults cardholder data and supports the portability standard.
Rebilly is committed to making sure clients have full access to their data when they need it.
The safe, secure, free-flow of data makes it a better online experience for everyone.

## Fraud protection

Rebilly provides the following fraud protection:

- [Transaction risk scoring](/docs/automations/risk-scoring): Use risk scoring to automatically manage the level of risk that is associated with each transaction, and to automate specific actions based on that level of risk.
  A common use case for risk scoring is to add a customer to a blocklist and to stop the transaction.
- [3 Domain Secure (3DS)](/docs/settings/3ds): 3DS is an authentication method used by merchants to validate cardholders.
  The cardholder authenticates their card against the issuing bank website.
  The merchant chooses whether to use 3D secure.
  This enables the merchant to shift liability from themselves to the issuing bank. 3DS requires cardholder interaction.
- [Device fingerprinting](/docs/glossary#device-fingerprint): A device fingerprint is a unique identifier for a device.
  It is generated from specific device characteristics, such as: operating system, browser, and IP address.
  Device fingerprints are used to identify devices and prevent fraud.
- [Blocklists](/docs/automations/blocklists): Use blocklists to prevent fraud and criminal activity.
  Blocklists are lists of customer attribute values that are blocked from buying from you.
  For example, if a customer attempts to make a purchase from you with a credit card or fingerprint that is in a blocklist, the transaction is blocked and will not be processed.
- [Dispute and fraud management](/docs/automations/disputes-and-fraud): Use Rebilly to automate the dispute process, manage evidence, save time, and reduce human error.

Rebilly also provides a [Know Your Customer (KYC)](/docs/kyc-and-aml/kyc) and [Anti-Money laundering (AML)](/docs/kyc-and-aml/aml) add-on to help you comply with regulations and prevent fraud.

## Hosted payment forms

Hosted payment forms are a secure way to capture payment information from your customers without having to handle sensitive payment data yourself.
Rebilly hosts your payment forms and ensures that your payments process is secure and [PCI-compliant](#pci-compliance-and-security).

You can also embed payment forms into your website and host them yourself.
This is a more advanced integration that requires development resources.
For more information, see [Integrate payment forms](/docs/dev-docs/get-started-integrate-payments).

### Billing portals

Billing portals are a secure way to provide your customers with a self-service portal to manage their orders, invoices, and payment methods.
Billing portals are customizable and use fully responsive design, built-in error messaging, and validation.
For more information, see [Billing portals](/docs/settings/billing-portals).

# Rebilly news, features, and updates for April 2026

Hello, and welcome to the April edition of the Rebilly news, features, and updates blog.

## New features

### Apply subscription and invoice changes immediately

You can now apply subscription and invoice changes immediately using the new 'Now' effective date option.
Use this option to apply changes to a subscription or invoice immediately, without waiting for the next billing cycle.
For more information, see [Modify subscription items or settings](/docs/data-tables/manage-subscriptions#modify-subscription-items-or-settings) and [Issue an interim invoice](/docs/data-tables/manage-invoices#issue-an-interim-invoice).

### Download a credit memo in PDF format

You can now download a credit memo in PDF format.
For more information, see [Download a credit memo](/docs/data-tables/manage-credit-memos#download-a-credit-memo).

### Configure transaction email alias for payment gateways

We added the ability to configure a transaction email alias for payment gateways.

For example, to help manage GDPR compliance, you can use an alias email address instead in place of the customer's real email address.
For more information, see [Configure transaction email alias](/docs/settings/set-up-a-gateway#configure-transaction-email-alias).

### Inherited AML matches report

We added the ability to view reports for inherited AML matches.

Inherited AML matches are produced by another AML source and linked to your customers in Rebilly.
The reports present inherited matches in one place so reviewers can assess risk and next steps.
For more information, see [View inherited matches reports](/docs/reports/aml-reports#view-inherited-matches-reports).

### Refund credit memos

We added the ability to refund credit memos to customers.

After you refund a credit memo, you can read the customer's credit balance with the [Get customer credit balance](/catalog/all/customers/getcustomercreditbalance) API operation.
For more information, see [Refund a credit memo](/docs/data-tables/manage-credit-memos#refund-a-credit-memo) and the Refund a credit memo API operation.

### Allocate customer credit memos balance to an invoice

We added the ability to allocate the remaining balance of a credit memo to an invoice.
For more information, see [Allocate customer credit balance to an invoice](/catalog/all/invoices/postinvoiceallocatecreditbalance) API operation.

### Localized custom amount buttons in deposit strategies

You can now apply localized text for the custom amount buttons in deposit strategies.
For more information, see [Deposit strategies](/docs/settings/deposit-strategies#create-a-deposit-amount-strategy) and the customAmount.buttonText API field.

### Set default payout allocation order

We added the ability to set a default configuration for payout methods and their priority for automatic payout allocations.

Choose which payout methods to use by default for automatic payouts at the organization level and drag to set priority.
During batch payout auto-allocation, you can also override the default configuration by adding methods to the batch or changing the order.
For more information, see [Set default payout allocation order](/docs/settings/organizations-and-websites#set-default-payout-allocation-order).

## New payment gateway integrations

- Added support for the [Bitcoin](/payment-methods/bitcoin), [Ethereum](/payment-methods/ethereum), [Tether](/payment-methods/tether), and [Ripple](/payment-methods/ripple) payment methods for the [Txn payment gateway](/gateways/txn).
- Added support for the [Bank Transfer](/payment-methods/bank-transfer) and [Payment card](/payment-methods/payment-card) payment methods for the [OmniMatrix payment gateway](/gateways/omnimatrix).
- Added support for the [Mollie](/payment-methods/mollie) payment method for the [Mollie](/gateways/mollie) payment gateway.
- Added support for the [Payment card](/payment-methods/payment-card) payment method for the [PayXpert payment gateway](/gateways/payxpert).
- Added support for the [Apple Pay](/payment-methods/apple%20pay) and [Google Pay™](/payment-methods/google%20pay) payment methods for the [Paybilt payment gateway](/gateways/paybilt).
- Added support for the [QuickPay](/payment-methods/quickpay) and [Payment card](/payment-methods/payment-card) payment methods for the [QuickPay payment gateway](/gateways/quickpay).
- Added support for the [Payment card](/payment-methods/payment-card) and [Viva](/payment-methods/viva) payment methods for the [Viva payment gateway](/gateways/viva).
- Added support for the [Payment card](/payment-methods/payment-card) payment method for the [Antom payment gateway](/gateways/antom).
- Added support for the [Payment card](/payment-methods/payment-card) payment method for the [AsiaPay payment gateway](/gateways/asiapay).
- Added support for the [Cryptocurrency](/payment-methods/cryptocurrency) payment method for the [Cryptomus payment gateway](/gateways/cryptomus).
- Added support for the [Payment card](/payment-methods/payment-card) payment method for the [Gate2way payment gateway](/gateways/gate2way).
- Added support for the [Payment card](/payment-methods/payment-card) payment method for the [Monolo payment gateway](/gateways/monolo).
- Added support for the [Payment card](/payment-methods/payment-card) payment method for the [Stripe payment gateway](/gateways/stripe).
- Added support for the [Payment card](/payment-methods/payment-card) and [Samsung Pay](/payment-methods/samsung%20pay) payment methods for the [Worldpay payment gateway](/gateways/worldpay).
- Added support for the [ACH](/payment-methods/ach) and [Klarna](/payment-methods/klarna) payment methods for the [SafeCharge payment gateway](/gateways/nuvei).
- Added support for the [Online Bank Transfer](/payment-methods/online-bank-transfer) payment method for the [Awepay payment gateway](/gateways/awepay).
- Added support for the [ACH](/payment-methods/ach) payment method for the Old Glory bank.

### Integration requests

Rebilly supports over 200 payment gateways and more than 170 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.
If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Direct transaction API integration

This guide describes how to create a transaction by directly communicating with the Rebilly API.

If you are not PCI-DSS compliant, use the [FramePay JavaScript library](/docs/dev-docs/framepay) to tokenize payment data or use a [Hosted payment form](/docs/dev-docs/create-a-hosted-payment-form) to process payments.

## Prerequisites

To complete this guide, you need a Rebilly account, a website ID, an organization ID, and a secret API key.
You must also have at least one payment gateway configured in your Rebilly account.
If you are testing in the sandbox environment, a test payment gateway called `TestProcessor` is already configured.

**Obtain your organization ID, website ID, and secret API key**

When you first log in to Rebilly, you create an organization as part of the setup process.
A default website is created when a new organization is created.
For more information, see [Organizations and websites](/docs/settings/organizations-and-websites).

1. [Log in or sign up to Rebilly](https://app-sandbox.rebilly.com/).
2. Obtain your organization ID and website ID:
    1. In the left navigation bar, press **Settings**.
    2. In the **Management** section, press **My organization & websites**.
    3. In the **Organization details** section, note the **ID** value.
    4. In the **Website** section, note the **ID** value.
      For more information, see [Organizations and websites](/docs/settings/organizations-and-websites).
3. Obtain your secret API key:
    1. In the left navigation bar, press **Automations**.
    2. In the **Development** section, press **API keys**.
      If you do not have any secret keys, see [Create an API key](/docs/dev-docs/api-keys#create-an-api-key).
    3. Select a secret key and copy the **Key** value.

**Configure a payment gateway**

To set up or configure a payment gateway, see [Set up a payment gateway](/docs/settings/set-up-a-gateway).

## Step 1. Upsert a customer

This step creates or updates (upserts) a customer with a specified ID.

This operation prevents duplicate customers.
If the customer already has an identifier within your system, that customer is updated.
If the customer does not have an identifier, a new customer is created.

For detailed information about this API operation, see [Upsert a customer](/catalog/all/customers/putcustomer).

**Interactive example**

**How to use the interactive example**

1. Enter your organization ID:
    1. Locate and press `server /`, then in the **Server variables** section, press **Edit s**.
    2. In the **Value** field, enter your organization ID and press **Save**.
2. Enter your secret API key:
    1. Press **Security**.
    2. In the **API key** field, enter your secret Rebilly sandbox API key.
3. Enter a customer ID:
    1. Press **Path**.
    2. In the input field, enter a customer ID.
      Example: `cus_01HDP7FFX2PGDVH1995EA4QY95`.
4. Enter your website ID:
    1. Press **Body**.
    2. In the `websiteId` field, enter your website ID.
    3. Optionally, change the customer details.
5. Press **Send**.
  In the response, note the `id` value.
  This is the customer ID.

## Step 2. Create a payment instrument

This step creates a payment instrument for the customer you created in the previous step.
The payment instrument can be a credit card, bank account, or other payment method supported by Rebilly.
This example uses a payment card payment instrument and contains test payment card details.
For more test payment card details, including payment cards to test failed transactions, see [Test cards, IBANs, and ACH details](/docs/tutorials/test-payment-cards).

For detailed information about this API operation, see [Create a payment instrument](/catalog/all/payment-instruments/postpaymentinstrument/).

**Interactive example**

**How to use the interactive example**

1. Enter your organization ID:
    1. Locate and press `server /`, then in the **Server variables** section, press **Edit s**.
    2. In the **Value** field, enter your organization ID and press **Save**.
2. Enter your secret API key:
    1. Press **Security**.
    2. In the **API key** field, enter your secret Rebilly sandbox API key.
3. Enter a customer ID:
    1. Press **Body**.
    2. In the `customerId` field, enter a customer ID.
      Example: `cus_01HDP7FFX2PGDVH1995EA4QY95`.
4. Press **Send**.
  In the response, note the `id` value.
  This is the ID of the payment instrument.

## Step 3. Create a transaction

This step creates a transaction using the customer and payment instrument you created in the previous steps.
The transaction can be a sale, authorization, or other type of transaction supported by Rebilly.
This example creates a sale transaction with a specified amount and currency and uses the payment instrument created in the previous step.

For detailed information about this API operation, see [Create a transaction](/catalog/all/transactions/posttransaction/).

**Interactive example**

**How to use the interactive example**

1. Enter your organization ID:
    1. Locate and press `server /`, then in the **Server variables** section, press **Edit s**.
    2. In the **Value** field, enter your organization ID and press **Save**.
2. Enter your secret API key:
    1. Press **Security**.
    2. In the **API key** field, enter your secret Rebilly sandbox API key.
3. Enter website ID, customer ID, and payment instrument ID:
    1. Press **Body**.
    2. In the `websiteId` field, enter your website ID.
    3. In the `customerId` field, enter a customer ID.
      Use the customer ID you created in [Step 1](#step-1-upsert-a-customer).
    4. In the `paymentInstrumentId` field, enter a payment instrument ID.
      Use the payment instrument ID you created in [Step 2](#step-2-create-a-payment-instrument).
4. Press **Send**.
  In the response, note the `id` value.
  This is the ID of the transaction.
  The `result` and `status` fields specify the outcome of the transaction.
  For example, if the transaction was successful, the `result` field is `approved` and the `status` field is `completed`.

### Troubleshooting

**No gateway accounts available for this transaction**

If you receive a `declined` result with the reason `No gateway account available to process this transaction`, check your gateway account settings in Rebilly.
Ensure that a gateway account is configured for the currency, payment method, and website ID.
For more information, see [Set up a payment gateway](/docs/settings/set-up-a-gateway).

**Result unknown and status waiting-approval**

If you receive a response with a `result` value of `unknown` and a `status` value of `waiting-approval`, the transaction requires user approval or interaction.
For more information, see [User approval/interaction required](/catalog/all/transactions/posttransaction#section/User-approvalinteraction-required).

## Step 4. View the transaction

This step retrieves the transaction you created in the previous step.
You can view the transaction details, including the status, amount, and payment method used.

For detailed information about this API operation, see [Get a transaction](/docs/dev-docs/api/transactions/gettransaction).

To view the transaction in the Rebilly UI, see [View the transaction details](/docs/data-tables/manage-payments#view-transaction-details).

**Interactive example**

**How to use the interactive example**

1. Enter your organization ID:
    1. Locate and press `server /`, then in the **Server variables** section, press **Edit s**.
    2. In the **Value** field, enter your organization ID and press **Save**.
2. Enter your secret API key:
    1. Press **Security**.
    2. In the **API key** field, enter your secret Rebilly sandbox API key.
3. Enter a transaction ID:
    1. Press **Path**.
    2. In the input field, enter a transaction ID.
      Enter the `id` value from the response in [Step 3](#step-3-create-a-transaction).
4. Press **Send**.

## Next steps

- Receive transaction and subscription events on your server: [Webhook configuration](/docs/dev-docs/webhooks-configuration).
- Create subscriptions and orders with the API: [Set up your environment](/docs/dev-docs/set-up-environment#add-data-to-your-rebilly-environment).
- Test declined and 3D Secure outcomes: [Test cards, IBANs, and ACH details](/docs/tutorials/test-payment-cards).
- Switch your integration from the sandbox to the live environment: [Go live](/docs/tutorials/go-live).

# Manage customer information

This topic describes how to manage and view customer information.

## Add a customer

Use this process to add or create new customers.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the top right of the page, press **Add customer**.
4. In the **ID** field, enter a unique ID for the customer.
5. Optionally, to associate a person with the customer account when the individual has more than one account: In the **Person ID** field, enter the individual's unique ID or customer ID.
  To help identify a person and manage their accounts, associate multiple customer accounts with one person ID.
  To view AML screening history for a person ID, see [AML audit reports](/docs/reports/aml-reports#view-aml-audit-reports).
6. In the **Website ID** dropdown, select a website to associate with the customer.
7. In the **First name** and **Last name** fields, enter the customer's name.
8. In the **Organization** field, enter the name of the customer's organization.
9. In the **Job title** field, enter the customer's job title.
10. In the **Date of birth** field, enter the customer's date of birth.
11. In the **Address line 1**, **Address line 2**, **City**, **Country**, **Region**, and **Postal/ZIP** code fields, enter the customer's address.
12. In the **Phone number** field, enter the customer's phone number.
  To add multiple phone numbers, press **Add phone number**.
  If more than one phone number is added, to set a primary phone number, select **Make primary**.
13. In the **Email** field, enter the customer's email address.
  To add multiple email addresses, press **Add email address**.
  If more than one email address is added, to set a primary email address, select **Make primary**.
14. In the **Default payment instrument** section, select a payment instrument to associate with the customer and enter the details of the payment instrument.
  The default payment instrument is used for autopay on customer orders that contain subscription items.
  Autopay collects payment automatically from a customer on the renewal date of an order that contains subscription items, using the customer's default payment instrument.
  You can also set a default payment instrument when creating or editing an order.
  For more information, see [Create an order](/docs/data-tables/manage-customer-payments-and-billing#create-an-order), [Add a default payment instrument to an order](/docs/data-tables/manage-subscriptions#add-a-default-payment-instrument-to-an-order), and [Manage autopay](/docs/data-tables/manage-autopay).
15. Optionally, to use the payment instrument as a backup payment method if the primary payment instrument is declined: Select **Allow use as a backup method**.
16. At the bottom of the page, press **Save customer**.

## Add a note, attachment, or tag to customer activity

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the **Timeline** section, select from the following:

  **Tag a user or Rebilly Support**

    1. In the text input field, press **Tag user**.
    2. In the dropdown, select a user or Rebilly Support.
    3. Press **Return** or **Enter** on your keyboard.
  **Add an attachment**

    1. In the text input field, press **Attach a file**, select a file, then press **Open** or **Attach**.
    2. Enter a description, then press **Return** or **Enter** on your keyboard.
  **Link a customer or transaction**

    1. In the text input field, press **Link to a customer or transaction**, in the dropdown, select **Customers** or **Transactions**.
    2. Select a transaction or customer, then press **Return** or **Enter** on your keyboard.
  **Add a note**

    1. In the text input field, enter a message.
    2. Press **Return** or **Enter** on your keyboard.

## Block a customer

Use this process to manually block a customer from buying from you.
For more information, see [Blocklists](/docs/automations/blocklists).

To automatically blocklist a customer when specific events occur, see [Automated blocklists](/docs/automations/blocklists#automated-blocklists).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the right of the page, press **Manage customer**, then press **Block customer**.
5. In the **Block attribute** dropdown, select a blocklist type.
  For more information, see [Blocklist types](/docs/automations/blocklists#blocklist-types).
6. Press **Save**.

## Edit customer information

Use this process to edit a customer's information.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the right of the page, press **Manage customer**, then press **Edit customer**.
5. Edit the customer's information, then press **Save**.

## Export customer data

Use this process to export data from a data tables segment to a CSV file.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then select **Customers**, **Payments**, **Billing**, or **KYC & AML**.
3. **Optionally, select which columns to include in the export**

    1. In the top right of the page, press **Edit columns**.
    2. Add or remove columns, then press **Apply**.
4. **Optionally, arrange the order of the columns in the export**

    1. In the top right of the page, press **Edit columns**.
    2. Drag columns to arrange their order, then press **Apply**.
5. In the top right of the page, press **Export**, then press **Export as CSV**.
  When the report is generated, a notification is displayed in the top right of the page.
6. In the top right corner of the page, press **Alerts**, then press the file to download.

## View or edit customer lead source information

Use this process to edit or view the lead source information of a customer.

A lead source is the marketing campaign that is responsible for a customer interaction, a sale, or a trial.
This metadata is added to the customer's information, and contains common attributes from Google Analytics and affiliate tracking applications.

Rebilly automatically captures lead source attributes from the payment form web address when a payment completes, and stores this data in the customer record.
For information on how to set this up, see [Lead sources](/docs/dev-docs/lead-source-attribution).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the right of the page, press **Manage customer**, then press **Edit lead sources**.
5. Edit the form, then press **Save**.

## Manage customer tax ID numbers

Use this process to manage a customer's tax ID numbers.
As a merchant, you may need to display a customer's tax ID number on invoices you issue.
This process describes how to add tax ID numbers that are displayed on customer invoices, and also how to delete a tax ID number, or set a default tax ID number.
For more information on managing taxes, see [Taxes](/docs/settings/taxes).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the **Tax ID numbers** section, select from the following:

  **Add a new tax ID number**

  Press **Add tax ID number**.

  **Delete a tax ID number**

  On the right of a tax ID number, press **Actions**, then press **Delete**.

  **Set a default tax ID number**

  On the right of a tax ID number, press **Actions**, then press **Set as default**.

## Manage notification emails

Use this process to add, edit, or remove email addresses that are used for event-based email notifications.
When you configure [event-based email notifications](/docs/automations/email-notifications#create-event-based-email-notifications), you can select these addresses in the **To**, **CC**, or **BCC** fields by choosing the `{{ customer.notificationEmails }}` placeholder, the `{{ customer.primaryAddress.emails.0.value }}` placeholder, or entering an email address.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the **Notification emails** section, select from the following:

  **Add a notification email**

    1. Press **Edit**.
    2. Press **Add an email address**.
    3. In the email field, enter an email address.
    4. Press **Save**.
  **Edit a notification email**

    1. Press **Edit**.
    2. In the email field, update the email address.
    3. Press **Save**.
  **Remove a notification email**

    1. Press **Edit**.
    2. On the right of the email address, press **Delete**.
    3. Press **Save**.

## Merge duplicate customer entries

Use this process to merge duplicate customer entries into one entry.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. On the left of the **Name** column, select the checkbox beside the duplicate customer entries.
4. At the top of the table, press **Merge** **Merge duplicate customers**.

## Tag a customer

Use this process to organize and categorize customers based on keywords.
To create a segment based on tagged customers, or to filter based on tags, see [Create a new segment](/docs/settings/segments#create-a-new-segment).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the right of the page, press **+ Add tag**.
5. Enter a tag name, then press **Apply**.

## View customer activity

Use this process to view customer specific information and activity, such as: payment, billing, and log data from the customer detail page.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the top left of the page, press **Segments**.

  **View a customer's payment transactions**

    1. Press **Payments**, then press a segment.
    2. In a table, press a transaction ID or customer ID.
      Use this page to: view payment status, view risk analysis information, view the payment instrument, query the gateway, dispute the payment, and more.
      For information, see [Payments](/docs/data-tables/manage-payments).
  **View a customer's billing information**

    1. Press **Billing**, then press a segment.
    2. In the table, press **ID**, or **Invoice number**.
      Use this page to edit an invoice, or to cancel, pause, or resume an order with subscription items.
      You can also update the renewal date, redeem a coupon, download or email an invoice, or view upcoming invoices.
      For information, see [Billing](/docs/data-tables/manage-billing).
  **View log data**

    1. Press **Logs**, then press a segment.
    2. In the table, press a log entry to inspect the API interaction.
      Logs include: date and time of the interaction, request, and response information.
      For more information, see [Manage logs](/docs/data-tables/manage-logs).

To add or manage segments, or to apply or edit filters on a segment, see [Segments](/docs/settings/segments).

## View customer details

Use this process to view a customer's details, such as: customer ID, contact information, and address.
A customer is an individual or entity who has made one or more payments.
An individual or entity who has not made a payment yet is a lead.
For more information on leads, see [View lead details](#view-lead-details).

To view a customer's payment, billing, and log data, see [View customer activity](#view-customer-activity).
To edit a customer's information, see [Edit customer information](#edit-customer-information).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the right of the page, in the **Customer details** section, view the customer's ID, address, and primary contact information.

## View available credit balance

Use this process to view unallocated credit memo amounts for a customer, grouped by currency.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. On the right of the page, in the **Available credit balance** section, view the unallocated credit memo amounts, grouped by currency.
  To open related credit memos, press a balance amount.
  For more information, see [Manage credit memos](/docs/data-tables/manage-credit-memos).

## View customer custom fields

Use this process to view custom field values for a customer.

Custom fields store information that is not available in the standard fields.
For example, you can create a custom field on the customer resource to record whether a customer opts in to marketing emails.
To create and manage custom fields, see [Custom fields](/docs/settings/custom-fields).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. On the right of the page, in the **Custom fields** section, view each field label, name, and value.
  The label is a readable form of the field name.
  The name is the value used in the API and in filters.

## View a customer's orders

Use this process to view a customer's active, paused, pending, past, and one-time orders.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. On the right of the page, **Active orders**, **Pending orders**, and **Past orders** are displayed.
  To interact with a subscription item, press **Actions**.

## View lead details

Use this process to view a lead's details, such as: lead ID, contact information, and address.
A lead is an individual or entity who has not made any payment yet.

A customer is an individual or entity who has made one or more payments.
For more information on customers, see [View customer details](#view-customer-details).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, press **Customers**, then press **Leads**. \
3. In the **Name** column, press a lead's name.
4. In the right of the page, in the **Customer details** section, view the lead's ID, address, and primary contact information.

# Rebilly App Store

Use the Rebilly App Store to add integrations to your Rebilly account.

This section of the docs describes how to install integrations in your Rebilly account.
Integrations connect Rebilly to common tooling, such as tax management tools and reporting software.
To access integrations: In the left navigation bar, press **App store**.

**Install Avalara**

Connect Avalara for automated tax calculation and compliance.

**Install Experian**

Set up Experian for identity verification and fraud prevention.

**Install Google Sheets**

Sync data with Google Sheets for real-time reporting.

**Install Plaid**

Connect Plaid for bank account verification and ACH payments.

**Install QuickBooks Online**

Sync financial data with QuickBooks for accounting.

**Install TaxJar**

Connect TaxJar for automated sales tax calculation.

# Why Subscription Billing Can Increase B2B Revenue

B2B companies are increasingly incorporating [subscription billing](/blog/the-most-popular-subscription-schedules/) into their models.
Time and again, they’re discovering that recurring billing actually increases their revenue and sales numbers.
It’s proven to be a more efficient — and easier — billing option for many B2B companies, which is one reason [that subscriptions are growing so quickly](/blog/the-state-of-subscription-businesses-infographic/).

Let’s dig into why exactly subscriptions work so well for B2B transactions:

## It’s Budget Friendly for Clients

Subscription billing is often an easier “yes” for enterprise leads, because the monthly or annual bill is smaller than a point-of-sale purchase for enterprise software.
This reduces the “sticker shock” (along with the immediate cost) for a buyer.
This budget-friendliness can have a significant impact on large purchases, especially for companies who provide SaaS (software as a service) products, when final costs can easily reach six digits.

## It Reduces Decision Points

It’s a truism among the sales profession that decision points are opportunities for a customer to say “no.” A recurring cycle bills automatically and doesn’t require the customer to continue to say “yes,” so it reduces chances for customers to make a decision to decline the purchase or seek an alternative.

Free trials also come into play here; [as we’ve discussed elsewhere](/blog/one-time-sale-vs-subscriptions-makes-customers-buy/), free trials (especially if it moves to automatic billing at the end of the trial) can be very effective for subscription businesses, including B2B ones.

## It Works With the Strengths of B2B Sales

B2B sales are highly relationship-based, and often require extended and repeated contact between sales representatives and business clients.
Since subscription billing is also recurring and long-term, it fits in well with this dynamic, and gives your sales team lots of opportunities to upsell leads as they continue their customer relationship with you.
In fact, upselling and add-ons with subscriptions are usually an easier sell than a one-time product, due to the budget-friendliness mentioned earlier.

## It Reduces Acquisition Costs

Service-based subscriptions in particular benefit from a “bottom up” approach, in which a software license or other service is sold to one individual or department within a company.
Sales representatives can then pitch that service to other people or departments within the organization, and fold additional purchases into the ongoing subscription cycle, minimizing administrative costs.
Many times, “buyer’s inertia” is a factor in these situations.
In other words, as business clients form deeper relationships with their B2B sales rep, they make the decision themselves to initiate further purchases.

To find out how B2B revenue can increase with recurring billing, [contact us](/contact/) today. **Or, if you’re looking for other ways to optimize your pricing and convert more customers, check out the Rebilly guide to optimizing your pricing:**

# Upselling 101: How to Make More From Every Sale

**Getting subscribers is good, but getting more from them is better.** When you’re running a subscription-based business, you need to have a strong upselling strategy.

But…how do you create an upselling process that isn’t obtrusive and still entices customers to buy those add-ons or premium options?
How do you maximize your return on the payment process?

## Do I really need an upselling strategy?

If your current website is converting fairly well, you might be wondering if you even need to think about upsells.
The short answer?
Yes.
Why?

One key reason is cost. **It’s considerably more expensive to obtain a new customer than it is to retain an existing one.**

In fact, according to the [Pacific Crest SaaS Survey](https://www.forentrepreneurs.com/2015-saas-survey-part-1/):

- It’s **68% more expensive** to acquire $1 from a new customer than it is to upsell to an existing customer.
- It’s **9 times more costly** to acquire new customers than it is to retain current customers.

When you’ve already won someone’s business and loyalty, it’s easier to convince a current customer to buy more at an extra cost.
It’s been proven that [70-95%](https://www.forentrepreneurs.com/2015-saas-survey-part-1/) of revenue comes from upsells and renewals.

You’ve built a strong trust between your customers and your business.
They know you provide great service.
In fact, it’s [60-70%](https://blog.hubspot.com/service/cross-selling) more likely you’ll sell to an existing customer than you are to sell to a potential prospect.

**So, you’re convinced it’s time to add an upselling process into your business…where do you start?**

### Upselling vs. cross-selling

Before we move on, let’s take a moment to separate upselling and cross-selling — two terms that refer to similar techniques and are often misused interchangeably.

**Upselling** refers to selling a customer on an upgraded version of the product they’re buying.
You might get a customer to buy the newest version of the laptop they were looking at, instead of the older version (or version with less storage, RAM, etc.).
In a subscription context, this usually refers to selling a customer on a more expensive plan than the one they were originally looking at — moving them from bronze to silver, or from silver to gold.

**Cross-selling** is when you sell a customer different (usually complementary) products in addition to the original product they’re buying.
In the previous example, cross-selling could look like selling a laptop bag or case to go with the new laptop.
In a subscription context, this can be selling a subscription to a different product, or additions to a current subscription like a one-time course.

We’re going to talk more about cross-selling in a future post, but in the meantime, here’s how you can make the most of upselling:

### Add (and clearly show) value

**First things first:** upselling works best when you are offering something of value to your customers.
They’re more likely to add something to their purchase (or membership) when they know specifically how it applies to their situation.

In other words, make sure that you’re offering upsells that make sense.
Your customer will feel more understood (and will be more likely to convert) if the upsell speaks to them, their needs, and how the upsell adds value to their life.

On that note: make sure the value is _very_ clearly explained.
Focus on the benefits to them — and how it can boost the effectiveness of the plan they’re already on.

**One last note: when creating upsell packages, make sure to price accordingly.** Customers are unlikely to make huge monetary jumps from what they’re already spending on your product or service.
Upsold products or services generally shouldn’t increase their purchase total by more than [25%.](https://www.americanexpress.com/en-us/business/trends-and-insights/articles/tips-for-upselling-a-lesson-from-mcdonalds/)

### Understand your customer and time the upgrade accordingly

**When selling add-ons and upgrades, timing is everything.** Because of this, you need to understand the behavioral data of your customers.
It’s important to know how your current customers are using your product or service, in order to target your upgrades.

Look at customer data to see how many times they are logging in, how long they are spending on your website/app, and what tasks they’re doing when they log in.
It’s also easy to offer automatic upgrade options on milestones — like their year anniversary.

Tools like [FullStory](https://www.fullstory.com/) can help you analyze customer data and understand user behavior (both through the checkout flow and in your app, if you’re a SaaS company).
And it’s easy to set up automated offers based on signup time in most email marketing tools.
(If you want to learn more about using data in marketing, [we’ve written about that before](/blog/data-based-marketing-can-increase-ltv/), as well as [using customer data to create a better experience](/blog/how-to-use-customer-data-to-provide-better-service).)

Depending on [what your pricing formula is](/blog/subscription-business-pricing-formulas/), the way you time your upsell offers will vary a little bit.

For example:

- If your pricing formula is based on seats (how many users are allowed on a plan at any given time), you can trigger an automated email to send to them when they reach their seat limit, letting them know they can upgrade to get more users.
- If your pricing is based on volume, you can send a reminder email to people that are on the brink of hitting their limit, reminding them that they’re about to run out of (your product) for the month…unless they upgrade.
- For volume-based plans, you can also test upselling to people who are consistent users — if someone has had four meals delivered per week for the last three months, you might suggest jumping to the six meal a week plan, for a reduced cost per-meal.
- If your pricing formula uses a combination of factors, then you could set up automated triggers or campaigns for when someone is about to max out on more than one of the factors.
  If your SaaS has a plan with three seats and ten widgets a month, and someone is at three seats and has used eight of their widgets for the month, it might be time for an upgrade email.

### Automatic upsells: Self-service and checkout

**Savvy customers will know when it’s time to upgrade.** And when they do, you’ll want to make the upgrade process as user-friendly as possible.
By building an “Upgrade Now” option into your customer portals, you allow customers to upgrade on their schedule.

Once it’s possible to customers to upgrade on their own, you can add in small reminders to encourage them to do so.
A few examples:

- A note in the footer of your customer emails that says something like, “Your account offers XYZ features — if you want ABC features, you can upgrade here”
- An unobtrusive message on the user portal (or in the portal for updating payment methods, or on their subscription receipt…you get the idea) that says “Upgrade to the X plan for only $Y more,” with a link (or dropdown menu, etc.) providing more details on what they get by upgrading
- If your subscription product is app-based, having icons for premium features that are greyed out, with a note that they can get access to the features by upgrading their plan

The key here is doing this without annoying your customer. **Never make it harder to finish the checkout process for the sake of upselling.**

### As always: Listen to your customers

Listening to what your customers are saying about your product or service and engaging with them is never a bad idea, and that holds true here as well.
In addition to building stronger relationships, reviewing customer feedback can show you opportunities for upsells and other new products.

For example, if you consistently get feedback that customers love Product A, but wish that it came with Additional Feature B, that’s a natural item for you to upsell.

When you put the customer’s needs first, you will always win.
By understanding your customers’ behaviors and listening to their needs, you’re in a better position to serve them — and have a more successful business doing so.

**Now that you’ve tackled the upselling side of things, don’t neglect the other parts of your pricing strategy.** Our price optimization guide has a list of steps you can take right now, categorized by funnel stage and difficulty.
You can download it now and get started today:

# Search in Rebilly

This topic describes how to use the search in the Rebilly UI.
Use the search to find pages, reports, data tables, and events in the rules engine.
Use it to find records too, such as customers, invoices, orders, and transactions.

## Find pages, reports, data tables, or events

Use this process to find a page, a report, a data table, or an event.

The search results include:

- Pages in the left navigation bar.
- Reports in the Reports page.
- Data tables in your organization.
- Events in the rules engine.

Search results include only the items that you have permission to view.
For more information, see [User permissions](/docs/settings/user-permissions).

1. [Log in or sign up](https://app-sandbox.rebilly.com/) to Rebilly.
2. In the top navigation bar, press the search field.
  Another option is to press `/` or `s` when no other field is in focus.
  For more information, see [Keyboard shortcuts](#keyboard-shortcuts).
3. Enter a search term.
  Matching results are displayed under the search field.
  Each report is listed with its group, such as **Payment reports**.
4. Press a result to open it.

## Search for records

Use this process to search for customers, invoices, orders, and transactions.

1. [Log in or sign up](https://app-sandbox.rebilly.com/) to Rebilly.
2. In the top navigation bar, press the search field.
3. Enter a name, an email address, or an ID.
4. Select an option:

    - Search a single resource: Press **customers**, **invoices**, **orders**, or **transactions**.
      The results page opens with that tab active.
    - Search every resource: Press **Enter**.
      Matching records are displayed under the search field, grouped by resource.
      To open the results page, press **See all results**, or press **Enter** a second time.

## Search results

The results page displays up to 30 records for each resource.
Use the tabs above the results to narrow the view.
The tabs are **All**, **Customers**, **Invoices**, **Orders**, and **Transactions**.
A tab change filters the records on the page.
It does not start a new search.

## Keyboard shortcuts

| **Shortcut** | **Description** |
| --- | --- |
| `/` or `s` | Move the focus to the search field. |
| Up arrow and Down arrow | Move through the results. |
| `Enter` | Open the selected result. When no result is selected, search for records. |
| `Tab` | Open the selected result, or the first result when none is selected. |
| `Esc` | Close the results list. |

## Related topics

- [Data tables](/docs/data-tables/data-tables)
- [Reports](/docs/reports/reports)
- [Rules engine](/docs/automations/rules-engine)
- [User permissions](/docs/settings/user-permissions)

# KPIs and reports

Key Performance Indicators (KPIs) and reports features help you to monitor and analyze data on payments, billing, KYC, and API requests.
Use these features to track the performance of your business and to make informed decisions.

## KPIs

Key Performance Indicators (KPIs) help you to monitor and analyze data.
Rebilly provides the following KPIs:

- [Billing KPIs](/docs/kpis/billing-kpis): View and analyze billing data, such as: invoices, orders, and payments.
- [Payment KPIs](/docs/kpis/payments-kpis): View and analyze payment data, such as: payment activity, payment details, and payment transactions.
- [KYC KPIs](/docs/kpis/kyc-kpis): View and analyze KYC data, such as: KYC requests, KYC documents, and KYC checks.

## Reports

Reports help you to view and analyze your business data.
Rebilly provides the following reports:

- [Billing reports](/docs/reports/billing-reports): View and analyze billing data, such as: invoices, orders, and payments.
- [Payment reports](/docs/reports/payment-reports): View and analyze payment data, such as: payment activity, payment details, and payment transactions.
- [KYC reports](/docs/reports/kyc-reports): View and analyze KYC data, such as: document review times, acceptance rates, and request outcomes.
- [AML reports](/docs/reports/aml-reports): View and analyze AML screening data.
- [API reports](/docs/reports/api-reports): View and analyze API data, such as: API requests, API responses, and API logs.
- [Automation reports](/docs/reports/automation-reports): View and analyze automation data, such as: automation events, automation actions, and automation logs.

# Rebilly news, features, and updates for December 2023

Hello, and welcome to the December edition of the Rebilly news, features, and updates blog.
From everyone in Rebilly, we'd like to wish you all a warm and merry holiday season.😊

![Rebilly holidays graphic](/content-assets/rebilly-holidays-9289cb02e39f0e8d.png)

## New features

This month we added the following new features.

### Payout improvements

We've improved payout configuration and automation options.

Use the [ready to payout configuration settings](/docs/settings/set-up-a-gateway#optionally,-configure-how-the-gateway-manages-payout-requests) to specify how gateway accounts manage payout requests based on the following options:

- Covered payout: Sets a gateway to process payouts if it previously processed a payment for the same, or a greater, amount.
- Approved payments: Sets a gateway to process a payout if it previously processed a payment for the same amount.
  The customer must also have a previously approved transaction in the same currency, on this gateway.
- All payments: Sets a gateway to process payouts for any amount.

We also added the [Ready to payout requested event](/docs/automations/event-types#ready-to-payout-requested) and the [Adjust ready to payout action](/docs/automations/action-types#adjust-ready-to-payout).
Use these to automate payouts.

### Payout integration docs

We created a guide that describes how to integrate and embed a payout form into your website using the Rebilly Instruments JavaScript library.
To check it out, see [Payout form integration](/docs/dev-docs/rebilly-instruments-payout-integration/).

### More KYC liveness session API operations

We added more KYC liveness session API operations.
To check them out, see [Create a KYC liveness session](https://all-rebilly.redoc.ly/tag/KYC-documents/operation/StorefrontPostKycLivenessSession), [Retrieve a KYC liveness session](https://all-rebilly.redoc.ly/tag/KYC-documents/operation/StorefrontGetKycLivenessSession), and [Finish KYC liveness session](https://all-rebilly.redoc.ly/tag/KYC-documents/operation/StorefrontPostKycLivenessSessionFinish).

### Declined transaction reports

You can now view and analyze declined transaction reports based on gateway response messages.
Reports can be filtered by period of time and based on specific attributes.
For more information, see [View declined transaction reports](/docs/reports/payment-reports#view-declined-transaction-reports).

### FramePay express methods

We added FramePay express methods to get shipping data using Google Pay™ and Apple Pay digital wallet.
For more information, see [Shipping configuration in express methods](/docs/dev-docs/shipping-configuration-in-express-methods).

## New payment gateway integrations

This month, we added support for the [Boleto payment method](/payment-methods/boleto/) for the [Adyen payment gateway](/gateways/adyen).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.

If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Demystify the payment terms you need to know

Not a day goes by that we don’t encounter some confusion around the payments industry language.
What complicates things is that many of these payment terms can have multiple meanings, depending on the context.
This article provides a foundation and explains how we understand these words.
Having a basic understanding of these terms and how many of these pieces fit together will help you better understand what you need from a subscription billing software.

_Have a term you’re curious about?
Leave a comment and we’ll add it to this list._

## Payment Terms

**Cardholder**: Typically this is your customer, who has the payment card.

**Gateway**: A software that transmits transaction requests to another gateway, or a processor, on behalf of a merchant.

**Gateway-to-Gateway**: A term to used to define when a gateway transmits to another gateway.

**Merchant**: The entity that ultimately collects the revenue from the goods or services sold.

**Merchant Account / MID**: The merchant account, or merchant account id, represents the facility granted to the merchant that enables them to transact with payment cards.

**Processor**: The software that receives transaction requests from gateways and transmits transaction requests to the scheme platforms (like VisaNet).
In everyday slang, “processor” is typically used to represent Acquirer, ISO, payfac, and sometimes gateways too.

**Scheme**: Also known as the brands, like Visa, Mastercard, Discover, and American Express.

**Acquirer**: Visa and Mastercard do not issue cards directly to cardholders, and they don’t issue merchant accounts directly to merchants either.
Instead, they rely on a network of “members” which may also be known as acquirers, that deal directly with merchants and resell these card processing services.
An acquirer typically relies on the services of a processor.

**Issuer**: The bank that issued the cardholder the credit or debit card.

**Payment Facilitator (or payfac)**: A company that has something like a “primary” account for which it can underwrite new sub-merchant accounts.
Well-known payfac’s are Stripe and Square.
They make it easy to get a new account, and they take on the risk involved with the accounts.
Stripe is not just a payfac though, they are also a gateway, and also offer other billing functionality.

**Independent Sales Organizations (ISOs and Sales Agents)**: A company or individual that sells new merchants on opening a merchant account, typically in exchange for a recurring commission on fees earned.

**Settlement Account**: A corporate (or individual) bank account owned by the merchant where funds are ultimately deposited.

Read through the above definitions a few times, and they may start to become more clear.
However, most companies don’t fall neatly into a single category due to mergers and acquisitions or other expansion efforts.
Here are some examples:

Chase Bank.
They are an issuer.
They issue cards to cardholders.
They also are an acquirer.
They issue merchant accounts, and have in-house sales teams that do that, and also have relationships with ISOs too.
In addition, they own at least two processors under the brand of Chase Paymentech, and at least one gateway (Chase Orbital).

That’s a lot to chew on.
And it’s really common in this industry.

Now, to add some additional nuance, consider American Express.
They differ from Visa in that they do work directly with cardholders and merchants.

### General rules of thumb to help evaluate what services a company provides

1.
If the service enables merchants to open a merchant account, but they are not a bank and they don’t issue credit or debit cards themselves, they are probably a payment facilitator.

2.
If the service is a bank, then they are likely an acquirer and/or issuer.

3.
If the service just enables commerce, it’s likely a gateway.
If the service only enables the payment connects, it’s likely doing gateway-to-processor integrations.
If the service provides extra value-added features, it’s likely doing gateway-to-gateway integrations, or some combination therein.

It’s tough to get a handle on the complicated and ever-changing payments industry and its payment terms.
We hope this article helps you get a jump start on understanding the fundamentals.
Be sure to leave a question in the comments if you need further clarification or have any additional terms you’d like defined.

# What to Do If You Have a Data Breach

You see it all the time—news stories about huge brands that are targeted in a data breach.
As a consumer, you likely feel anger or at least annoyance each time a big business admits that a hacker has accessed your account.
But as a small business owner, maybe you felt something else, that nagging fear in the back of your mind that it could be you next.

Small businesses are the victims of around [43% of data breaches](https://enterprise.verizon.com/resources/reports/dbir/).
Yikes!

When it happens to you, it can feel like an insurmountable challenge.
Getting hacked is bad, yes.
But it’s manageable—as long as you know how to respond.

## First: assess the situation

If you need to freak out, set a timer and give yourself a few minutes to scream and wail and punch a pillow.
Get it all out.
Then take a deep breath and get down to business.

The first thing you need to do is figure out exactly what’s going on.
Before getting outside help, make sure you have the following information at hand:

- What kind of attack was it?
  Did an employee press the link in a phishing email and inadvertently load a virus to their device (and potentially others connected to it)?
  Or did a hacker find a vulnerability in your CMS or SaaS product that allowed them to slip in and access your data?
  Where the hack originated and whether it primarily affects a particular device or tech product will play a key role in determining the best way to handle it.
- How many customer accounts were affected?
- Can you identify the vulnerability that allowed the hack to happen and which devices are infected?

If you’re like most small business owners, you’ll be out of your depth figuring this out on your own.
[Research cybersecurity experts](https://www.softwareadvice.com/resources/questions-to-ask-when-hiring-security-consultants/) in your area that help small businesses and make some calls to find someone with the expertise to help you get answers.
Before making a hire, ask them about specific times they’ve handled something similar for a client and what the results were.
Hands-on experience is more important than flashy certifications.

Also check if they’re willing to help both with solving your current problem, and with setting you up with a stronger security foundation moving forward.
Even better, will they train you and your team in the main cyber security skills you need?

## Manage the current hack

Now it’s time to treat the problem and minimize damage as much as possible.

### Isolate any affected machines and apps

If the hack started with a virus loaded to a particular computer or device, figure out which machines are affected and take them offline to stop the risk of it spreading.
If an employee’s account was used to infiltrate the system, revoke their access to the rest of the system while you work on the fix.

If the issue is tied to a compromised cloud product you use, work with the vendor to learn the extent of the issue and next best steps to take.
At the very least, you’ll want to change your passwords with them, but you may also want to consider an alternative product with better security.

Avoid taking your full network down if possible while you work on fixing the problem, as that would cause more disruption for your business.
Disconnecting the main applications at fault and taking infected computers offline will help keep the rest of your system safe.

### Talk to a lawyer

You may be a victim here, but that doesn’t mean you don’t have specific legal responsibilities.
Set up a meeting with a lawyer who can keep you informed of any state laws that govern how you should handle a hack.

They’ll talk you through the steps to take to stay on the right side of the law as you manage the breach.
For example, in Connecticut, a business is required to offer a free year of credit monitoring after a hack, a step it would be easy to overlook without a lawyer’s help.

### Alert affected customers

This part’s hard, but necessary.
Admitting what happened will lead to angry customers and may lose you the loyalty and trust of some.
But sitting on the information when your customers could be taking steps to protect themselves is much, much worse.
If it comes out later that you knew and said nothing, you’ll face far bigger consequences than being upfront to begin with.
And in many cases, this step is a legal requirement.

In your notice to your customers, include:

- A report of what happened, including the type of attack it was and when it occurred
- Details on any personal information that may have been compromised, such as email, password, address, credit card number, driver’s license number, or social security number.
- Information on what your company is doing to fix the problem and minimize risk to them.
- Suggestions for what they can do next to further protect themselves, such as setting up credit monitoring or freezing their credit accounts.
  Consider offering free credit monitoring to concerned customers as a courtesy.

Before you draft the notice, check with your lawyer to see if it meets the legal requirements for your state.

### Contact the proper authorities

In some states, you’ll need to file a notice of breach with the state’s attorney general.
Certain industries, such as health care and finance, have additional reporting requirements.
The [FTC also recommends](https://www.ftc.gov/tips-advice/business-center/guidance/data-breach-response-guide-business) calling your local police department (PD) to report the breach, or the local office of the FBI or secret service if your local PD is unfamiliar with how to handle a data breach.

## Improve cyber security moving forward

If scrambling to get a data breach under control teaches you anything, it’s how much you never want to do it again.
Use this as an opportunity to tighten your company’s security moving forward.

### Create a cyber security plan

If you hired a cyber security expert to help you manage your data breach, they can be useful at this stage too.
Create a plan that encompasses:

- Steps you can take now to improve your company’s cyber security
- Actions you and your team should take on a regular basis moving forward
- A strategy for handling a future hack

Everything’s easier to handle when you have a plan.
Attach specific steps to clear deadlines so they actually get done.

### Lock down permissions

Allowing multiple people backend access to your website and business applications is unavoidable in most businesses.
But to reduce risk, you can place limits on the level of access each person has based on their role.

Website hosting companies generally allow you to control user permissions, as do many content management systems and applications.
Wherever possible, limit access to just those people who need it to do their jobs.

### Set up [two-factor authentication](/docs/settings/users#configure-your-user-profile)

Most people use the same password for multiple accounts, it’s human nature.
But it means if an employee’s password is revealed in another company’s data breach, a hacker could try to use it to access your internal systems.

Two-factor authentication provides an extra level of security by ensuring that anyone who accesses their account is who they say they are.
You can set it up for all internal employees (as well as customers), making it that much harder for outsiders to access any sensitive internal data.

### Train your team

Everything you do to protect your business can be negated in a moment by an employee error made out of ignorance.
To avoid future data breaches and [credit card fraud](/blog/how-businesses-can-avoid-credit-card-fraud/), your team needs some cyber security 101 training.

Some good lessons to include are:

- **Software and system update requirements:** These updates routinely provide security patches to vulnerabilities the vendor discovered.
  Train your employees to always update their OS, CMS, applications, plugins, and software as soon as a new version becomes available.
- **Strong password guidelines:** Common password options like “123456” and “password” won’t cut it.
  Set requirements to ensure they pick strong passwords that are long and include a mix of character types.
- **Fraud red flags to watch out for:** Ecommerce employees must be on the lookout for fraudulent purchases.
  Train them in how to recognize them and respond when they occur.
- **How to** [**recognize phishing:**](https://www.consumer.ftc.gov/articles/how-recognize-and-avoid-phishing-scams) If one person clicks on the link in a phishing email, it puts the whole business at risk.
  Teach employees how to spot phishing emails so they go in the spam folder where they belong.

### Consider [cyber insurance](https://fitsmallbusiness.com/cyber-liability-insurance/)

Hopefully, taking these steps will save you from ever having to deal with this nightmare again.
But hackers are smart and good at finding ways around the protections we put into place.
Cyber insurance won’t save you from the trouble of another hack, but it will ensure your business has the financial cushion you need to weather it.

### Schedule regular security audits

Nothing you do to protect yourself from cyber attacks is permanent.
The techniques fraudsters use evolve, and you need to as well.
At least once a year, set up security audits.
This includes hiring cyber security experts to test your networks to find potential vulnerabilities hackers can exploit.

It could also involve examining the tech you use now to make sure it provides the best protection options for your business.
Consider your CMS, plugins, web hosting platform, [payment platform](/solutions/payments/), and other business applications.
Do they provide the top-of-the-line security your business needs?

And it should include revisiting the cyber security plan you created to see if it still holds up.

Regular security audits keep you from getting complaisant and help you stay on top of changing risks.

## Protect your business and customers

Running a business is exhausting and, understandably, cyber security isn’t top of mind most days when you have a thousand other things on your to-do list.
But when a hack happens, everything else on that list goes out the window until you get it fixed.

Instead of panicking, use this list to help you create a plan for moving forward.
Call in experts for guidance.
Bite the bullet and show transparency to your customers.
And get to work making sure it doesn’t happen again.

Among other potentially expensive mistakes to make as a business owner?
Letting chargebacks run rampant.
Chargebacks — often caused by friendly fraud — can add up, but if you download our Reducing Chargebacks Guide, you’ll get our favorite actionable tips on how to minimize your losses (and prevent them in the future).
Download it below:

# 5 Smart Email Marketing Tips for Your SaaS Business

Customer retention is more important to the SaaS industry than just about any other industry out there, and making the most of your email subscription list helps you in your retention efforts.
According to Kissmetrics, 80 percent of your revenues will come from just 20 percent of your current customers, so cultivating those relationships and staying connected is a must.
Email marketing allows you to create regular, automated touchpoints that boost those valuable connections and help you retain as many of your current customers as possible.

At its best, email marketing builds relationships, boosts engagement and provides value; at its worst, it is seen as an annoyance or even spam by the recipient.
How can you be sure that the emails you send to your subscribers are the good kind — and that you’re actively building relationships?
These ideas can help:

## 1. Send Valuable Content

Just getting in touch isn’t enough: You need to be regularly sharing useful content.
Every piece you send needs to be valuable in some way to the recipient – simply touching base because you are “supposed to” won’t cut it.
If you have an email newsletter, use this vehicle to relay interesting news, statistics about your industry and even spotlight some of the latest industry trends.
Highlighting little-known features of your recurring payment software or your subscription billing software can help existing clients learn even more about using your product and inform prospects about your capabilities without a heavy sales pitch.

## 2. Develop Your Voice

If your brand doesn’t already have a consistent voice, it’s time to think about how you’re coming across to your readers.
Developing a consistent voice that carries across your communications helps prospects know what to expect and goes a long way toward forging a lasting connection.
You are sending the same email to all of your prospects; using a consistent voice or approach helps them to feel a more personal connection to your brand.

## 3. What Traits Do Your Subscribers Share?

Your current buyers and clients have at least one thing in common — your service.
They also likely share other interests and preferences; if you can connect on more than one level, you can be more certain that your emails will be opened and read.

Whether it’s humor, hobbies, a specific fandom or other interests, knowing what makes your subscribers tick can help you forge a more personal connection.
You may actually already have this information: If you’ve come up with a marketing persona, incorporate these details into your email marketing strategy to really resonate with your prospects.

## 4. Skip the Promotion

No one wants to be constantly barraged with promotional messages and heavy-handed calls to action.
At least some of your emails need to be about providing information without strings attached.
Whether you’re offering a freebie, sharing great news or simply providing access to something new, some of your contact points need to include things that purely to benefit your reader.

If you are constantly sending “look at me” and “special offer” emails, you’ll end up in the spam folder before long.
Striking the right ratio of promotion to information and sharing helps ensure that your prospects don’t feel like they are being harassed or like they are constantly being closed.

## 5. Track What Works

Keep track of which emails your prospects are opening — and which ones are simply sitting.
By measuring your progress, you can get an idea of which headlines work and which emails are producing results; you can then use this information to further tailor your email marketing efforts.

When you maximize your emails to give your customers what they want without the hard sell, you’ll have positioned your business favorably when you roll out that next upgrade.
Happy writing!

## Want to learn more about how to take action on data — and get results?

**span** In our free price optimization guide, you’ll learn how to set up and run experiments that help you get the most from every sale, with specific experiments based on your business stage, and more.
Get it below:

# Rebilly news, features, and updates for December 2022

Hello, and welcome to the December edition of the Rebilly news, features, and updates blog.
The weather outside might be frightful, but these new features are so delightful.😊

![Christmas Rebilly image](/content-assets/rebilly-holidays-9289cb02e39f0e8d.png)

Yes, we like holiday songs here in Rebilly, and we would also like to wish you a warm and merry holiday season.

## New features

This month, we added the following new features.

### Customer AML checks

This feature is available for the Rebilly KYC add-on only.
To activate KYC, [contact Rebilly](/support/).

Customer AML checks are now fully integrated into the data table section of the Rebilly UI.

Use Anti-Money Laundering (AML) data tables to view, accept, and reject customer AML checks.
AML checks are automated tasks that help to ensure your customers and leads are not attempting to launder money through your company.

An AML check is an automated process that scans customer information against Rebilly AML lists as each new customer or lead is added, or when their information is changed.
When customer information matches data in an AML list, a hit is returned.
Completed AML checks contain one or multiple AML hits, where each hit is a record returned from the check.

For more information, see [Manage AML](/docs/data-tables/manage-aml) and [AML API operations](/docs/dev-docs/api/aml/).

### Refined credit memo allocations

We refined credit memo allocations as follows:

- Added the ability to apply a credit memo to invoices on `POST /credit-memos`.
- Added the ability to edit or delete credit memo invoice allocations on `PUT|PATCH /credit-memos/:creditMemoId`.
- Added invoice allocations to the response of all `GET /credit-memos` endpoints.

For more information, see [Credit memo allocations](/docs/dev-docs/credit-memos#allocations).

### KYC document upload functionality

This feature is available for the Rebilly KYC add-on only.
To activate KYC, [contact Rebilly](/support/).

Improved the Know Your Customer (KYC) document upload functionality in the Rebilly UI.
Use KYC data tables to view, edit, accept, and reject your customer's KYC documents.

For more information, see [Upload KYC documents](/docs/data-tables/manage-customer-compliance#upload-kyc-documents) and [Manage KYC](/docs/data-tables/manage-kyc)

## New docs

This month we added the following new docs.

### Product training

Product training describes how to complete the most commonly used actions in the Rebilly product.
Use this training to become a Rebilly power user!

To check it out, see [Product training](https://www.rebilly.com/docs/tutorials/product-training/).

## New payment gateway integrations

This month, we added support for the [KakaoPay](/payment-methods/kakaopay), [Payco](/payment-methods/payco), and [Samsung Pay](/payment-methods/samsung%20pay) payment methods for the [Skrill payment gateway](/gateways/skrill).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.

If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Integrate embedded payment forms

This section of the docs describes how to add embedded payment forms to your website.
These guides use the Rebilly Instruments JavaScript library.
To learn about the components of the Rebilly product, see [Concepts](/docs/dev-docs/concepts).

The Rebilly Instruments library processes customer-initiated checkout in the browser, including stored payment cards when the gateway requires CVV.
For merchant-initiated transactions, such as subscription rebills and autopay retries, use the Rebilly API.
For more information, see [Customer-initiated and merchant-initiated transactions](/docs/dev-docs/customer-initiated-and-merchant-initiated-transactions).

## Select an integration option

**Integrate a payment form**

Learn how to integrate and embed a customizable, white-label payment form into your website.

**Payment form using a JWT**

Learn how to process a payment using a JWT.

**Create a customer**

Learn how to create a customer in Rebilly using the JS SDK and the Rebilly API.

**Customize payment forms**

Learn how to customize payment forms.

**Examples**

Learn how to use the Rebilly Instruments library in your website.

**Reference**

Learn how to reference the Rebilly Instruments library.

**Supported payment methods**

Learn about the payment methods supported by the Rebilly Instruments library.

**Digital wallets**

Learn how to set up Apple Pay, Google Pay™, and Samsung Pay for embedded payment forms.

# How to Design Subscription Billing Around Customer Needs

Subscription businesses [are growing exponentially](/blog/the-state-of-subscription-businesses-infographic/), and as their growth continues, many businesses are considering switching to a subscription billing plan.
This can be a very smart move for your business — whether it’s an established business or [a brand new one](/blog/checklist-for-subscription-businesses) — but only if you approach it right.

You can’t just throw together a subscription billing process without thinking about your customers, though, or your business is destined to sink.
Here are a few can’t-ignore factors to consider as you set up your subscription business (and [the tools to help you run it](/blog/bootstrap-subscription-business-with-these-apps-tools/)):

## Updates and additions to up the value

As we’ve mentioned before, [subscription fatigue is real](/blog/common-subscription-business-struggles-and-how-to-fix-them/).
Customers that sign up for a subscription plan want to see ongoing updates to the product to keep them coming back.
And, in addition to that, you need to [show your customers how valuable your product is right away](/blog/customer-onboarding-how-to/), so they stick around through the free trial period.

[Gamefly](http://www.gamefly.com) is a good example of a subscription model that keeps customers coming back for more.
This service — which provides video game rentals — frequently updates available games and offers a purchase discount on used rental copies.
Hardcore gamers will maintain a monthly subscription because they can play through multiple games a month at a fraction of what buying new games costs.

Microsoft is another example.
[Office n365](http://products.office.com/en-us/business/compare-office-365-for-business-plans) subscriptions give customers the ability to download software to five devices and get regular updates, for less upfront cost than an Office installation disc.
Customers feel like they’re getting a good deal and the benefits for Microsoft include lower overhead and the ability to keep monetizing what’s essentially the same product.

### To showcase the value of your subscription product to customers

- Make sure you have a plan for (sustainably) increasing value to customers over time
- Highlight the updates (and their benefits)
- Talk to existing customers to see places where you could add more value

## Ease of use

Your potential customers will run for the hills (or your competitors) if the subscription checkout process is complicated or confusing.
Nobody wants to spend 20 minutes trying to sign up for a membership product.
Shoddy interface or usability design doesn’t just make a business look unprofessional, it [can kill your conversion rates](https://neilpatel.com/blog/7-usability-mistakes/).

### Instead, your subscription checkout process should

- Be fast and easy, following [ecommerce usability guidelines and best practices](https://www.userzoom.com/blog/five-super-smooth-ecommerce-checkouts/)
- Emphasize that you follow [security best practices](/blog/how-to-automate-your-pci-compliance/)
- Include a clear explanation of billing terms (including [pricing formula](/blog/subscription-business-pricing-formulas/), [billing schedule](/blog/the-most-popular-subscription-schedules/), and [free trial information](/blog/one-time-sale-vs-subscriptions-makes-customers-buy/))
- Show the customer a detailed order summary before confirming payment
- Send them a copy of the order summary and any next steps afterwards
- Segue smoothly into [customer onboarding](/blog/customer-onboarding-how-to/)

## Payment options

Your customers definitely have a preferred payment method.
It might be Visa, AmEx, MasterCard, PayPal, or something else.
Instead of forcing your customer to use a certain payment method, your need to meet them where they’re at.

All major credit card companies require vendors to meet [PCI compliance standards](/blog/how-to-automate-your-pci-compliance/) before allowing payment processing.
If you’re [thinking about building your own subscription solution](/blog/subscription-billing-build-or-buy/), make sure that you’re willing to do the work necessary to not only meet those compliance standards, but stay up-to-date on them over time.
It can prove expensive and hard to manage, since staying compliant requires frequent security testing and updates.

Another option is to use an outside subscription billing company that can integrate with your website and [payment gateways of choice](/solutions/payments/).
This saves time and resources, letting you focus on providing the best product possible for your customers.

**Not sure where to start when it comes to finding a subscription billing company that fits your needs?** Download our free Six Must-Haves guide, which covers the features you need in a subscription billing service, why you need them, and comes with a bonus feature checklist:

# 3 Ways to Maximize Subscription Retention

When it comes to retaining subscribers, small victories matter.
The increasingly mobile and connected world has left the days of market capture in the past, and customer churn rates over 50 percent are typical in most industries.
However, acquiring new customers remains much more expensive than retaining existing subscribers, so even an increase of 1 or 2 percent in retention rates can have a significant impact on net revenue.
Tactics for meeting this goal should be hyper-specific and targeted, but there are three broad strategies a company can adopt to inform their planning and maximize subscriber retention.

## Identify Pivot Points

Every subscription has a life cycle, and that cycle is marked by pivot points that serve as reliable indicators that a customer may be considering a departure.
While sales and acquisition efforts usually do a good job of shepherding customers through the first “start of contract” pivot point, that individualized attention usually drops off once the customer is subscribed.
The “renewal of contract” pivot point may seem like the next most important moment to target for retention efforts, but in between the two points any number of other events might have occurred that are influencing a customer’s decision.
These “change of life events” can create a pivot point any time they make a customer re-evaluate their plans for the immediate future.
Such moments can range from the personal, such as a marriage or home re-location, to the strictly business, such as quarterly revenue reporting or a product launch.
Businesses should be able to identify these change of life pivot points as soon as they happen, then use them to target subscribers for outreach and retention initiatives.

## Uphold the Relationship

Accurately identifying pivot points depends on a tangible and information-productive relationship between businesses and their subscribers.
In many cases, a subscriber will only enjoy dedicated client status during the period where individual sales representatives are treating them as proprietary leads.
Once subscribed, most customers enter a broader pool where their interaction with the company is less frequent and personalized.
This represents a missed opportunity to continue gathering intel on the subscriber, and can make it impossible to reliably predict pivot points.

## Gather Data, Comb the Data

Businesses should never neglect the opportunity that their own systems present for gathering subscriber intel that’s important to retention efforts.
Every subscription life cycle leaves its history behind, and over time a business should be building up a robust database of those life cycles.
The raw data can and should be rigorously mined to identify pivot points, address moments of retention failure and predict the behavior of future subscribers.

## Want to learn more about making the most of customer data?

In our free price optimization guide, you’ll learn how to set up and run experiments that help you get the most from every sale, with specific experiments based on your business stage, and more.
Get it below:

# Pricing

Use these docs to configure and manage pricing in Rebilly.

This section of the docs and the Rebilly product, is mainly used by Customer Support Agents and Software Developers.

**Select a topic:**

**Coupons**

Create and manage discount coupons.

**Products & pricing plans**

Configure products and pricing plans.

**Shipping rates**

Create and manage shipping rates.

# FramePay SDK reference

## Error handling

The FramePay SDK returns several different types of errors based on the HTTP response, ranging from 401 to 422.
They are exposed and can be imported:

```js
import { RebillyErrors } from 'rebilly-js-sdk';
```

### Error types

| **Type** | **Status code** | **Description** |
| --- | --- | --- |
| `RebillyRequestError` | `-` | Generic error when no response is available. |
| `RebillyTimeoutError` | `-` | The request timed out. |
| `RebillyCanceledError` | `-` | The request was canceled before being completed. |
| `RebillyForbiddenError` | `401` | Indicates an invalid API key or expired session token. |
| `RebillyNotFoundError` | `404` | Requested resource was not found. |
| `RebillyMethodNotAllowedError` | `405` | Request method not allowed on this resource. |
| `RebillyConflictError` | `409` | Requested operation triggered a conflict. |
| `RebillyValidationError` | `422` | The request payload triggered a validation error. See error details. |

## Configuration options

All client API configuration parameters are optional.
A secret API key can only be provided at instantiation.

> **API environments**
>
> By default a client instance is always generated in the **Live** environment.
> The **Sandbox** mode is only recommended while developing your integration.

| **Option** | **Type** | **Description** |
| --- | --- | --- |
| `apiKey` | `string` | Your secret API key. To be used only for server-side integration. See [Developer > API Keys](https://app-sandbox.rebilly.com/api-keys). |
| `sandbox` | `boolean` | Flag used to enable sandbox mode for the instance. Enable sandbox mode to run requests without processing real transactions on your account. Defaults to `false`. |
| `timeout` | `integer` | Define the timeout in milliseconds for API requests. Defaults to `6000`. |
| `organizationId` | `string` | Your organization identifier in scope of which need to perform request. If not specified, the default organization will be used. |
| `urls` | `object` | Define the root URLs for `live` and `sandbox` mode. Object must have a key for each mode that have strings for values. Defaults to `{live: 'api.rebilly.com', sandbox: 'api-sandbox.rebilly.com'}`. |

## Collections, members, and files

All resource calls return either a File, Member, or Collection:

- The `getAll` method always returns a `Collection`, which contains a list of Members
- CSV or PDF downloads will return a `File`
- All other methods return a `Member`

> **Frozen objects**
>
> Both collections and Members are **immutable**.
> Attempting to modify either one directly will result in a `TypeError`.
> You can retrieve a plain JSON object for mutation using the `getJSON` method.

### Collection

The collection type represents a list of Members.
For example, a list of customers, a list of transactions.

Each collection instance exposes the same properties.

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| `items` | `Array<Member>` | An array of member entities. See the [Member type](#member) for details. |
| `total` | number | An integer defining the total amount of members that exist regardless of the requested limit. |
| `limit` | number | An integer defining the count of values returned by the API request. Reflects the `limit` value passed to the function which returned the Collection. |
| `offset` | number | A zero-based index defining the starting position for the requested members. |
| `response` | Object | The original response stripped down to the status code, status text and headers. Exposes three more properties: `{status, statusText, headers}`. |
| `getJSON` | Function | Returns a plain mutable JSON object exposing the `items` of the current collection instance. Discards all other property. |
| `config` | Object | An object literal with the original request query string parameters. |

### Member

The member type represents an instance of a single resource entity in Rebilly.
For example, one customer, one transaction.

Each member instance exposes the same properties.

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| `fields` | Object | An object literal with key-value pairs for each field returned by the API in the response. |
| `response` | Object | The original response stripped down to the status code, status text and headers. Exposes three more properties: `{status, statusText, headers}`. |
| `getJSON` | Function | Returns a plain mutable JSON object exposing the `fields` of the current member instance. Discards the `response` property. |
| `config` | Object | An object literal with the original request query string parameters. |

### File

Use the file type to access the `arraybuffer` data from API requests that return files.
The files can be either exported CSV data or generated invoice PDFs.

You can generate a binary file to download from the file content directly in the browser, or save it locally using the file system in Node.js.

Each file instance exposes the same properties.

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| `data` | Object | An `arraybuffer` containing the file data returned by the request. See [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). |
| `response` | Object | The original response stripped down to the status code, status text and headers. Exposes three more properties: `{status, statusText, headers}`. |
| `config` | Object | An object literal with the original request query string parameters. |

# Adapt revenue forecasts to subscription billing

In many ways, subscription billing can make a company’s revenue forecasts even easier than point-of-sale or booking models, as it provides a reliable and repeatable rate of revenue accretion.
However, in most cases, a company won’t be able to simply replace POS numbers with subscription information and come out with an accurate forecast.
Follow these suggestions that companies should keep in mind while transitioning to a subscription-billing model.

## Change metrics

For most companies that are dependent on sales, the holy grail of metrics for revenue forecasting is the “booking” or “lead-in” number, which tracks sales orders to then predict the resulting revenue.
However, the booking model usually takes into account factors such as cancellations, sales expenses, closure rates and product returns that fare poorly in a one-to-one transfer to a subscription model.

To most accurately reflect the landscape of a subscription-revenue model, the ideal prime metric is some form of Monthly Recurring Revenue (MRR).
MRR can be tracked for each sales representative, or each individual customer, but most importantly, it only reflects the subscription revenue made that month.
This distinction is crucial, as it provides the most accurate means to track the real revenue flow involved, and incorporates the monthly revenue from all subscriptions, even those billed quarterly or annually.

A subscription is by definition a longer term arrangement than a simple point of sale, so revenue made from a monthly subscription payment is already final.
It’s not subject to any after-the-fact wrinkles like those in a booking model.
Adopting MRR instead of a straight Recurring Revenue (RR) metric allows a company to track revenue across multiple billing cycles, and keeps the ebb and flow of the aggregate annual revenue stream clear and identifiable.

## Identify churn

The major benefit of forecasting revenue under a subscription model is its reliability, so it’s important that a business is able to predict any disruptions to that flow.
Doing so requires a clear churn rate, which tracks the number of customers who cancel their subscription preterm or simply decline to renew it at the end of a billing cycle.

It can be difficult for a company to calculate accurate churn rates when they have just transitioned to a subscription model.
Nevertheless, the churn rate will remain the single most important factor impacting revenue from year to year.
It’s vital to start tracking that information immediately and incorporating it as much as possible into revenue forecasts from the start.

## Learn how to boost the metrics that matter

**span** Download our free guide that’ll show you how to boost your customer lifetime value by 43% or more below:

# Add an Intuit payment gateway account

This topic describes how to add an Intuit payment gateway to Rebilly.

1. Configure Intuit:
    1. [Login to Intuit](https://developer.intuit.com/app/developer/dashboard).
    2. In the top right of the page, press **Dashboard**.
    3. Select an app.
    4. In the left navigation bar, in the **Development** section, press **Keys & OAuth**.
    5. In the **Keys** section, take note of the **Client ID** and **Client secret** values.
    6. In the **Redirect URIs** section, add the following redirects:
          - `https://hook-sandbox.rebilly.com/intuit/return/`
          - `https://hook.rebilly.com/intuit/return/`
    7. Press **Save**.
2. Configure Rebilly:
    1. [Log in to Rebilly](https://app-sandbox.rebilly.com/login).
    2. Select an environment: In the top right corner of the page, press your initials, then select an environment.
    3. In the left navigation bar, press **Settings**.
    4. In the **Configuration** section, press **Gateway accounts**.
    5. Press **Add gateway account**, and then select **Intuit**.
    6. In the **Gateway account ID** field, enter a unique alphanumeric value.
      Use a value that is recognizable in your reports.
      This ID is used in other configuration screens, and is how this account is referenced within the API.
    7. In the **Intuit credentials** section, enter the Intuit client ID and client secret that you noted earlier.
    8. Enter your gateway account credentials.
    9. Select a payment method.
    10. Optionally, [configure advanced gateway settings](/docs/settings/set-up-a-gateway).
    11. Press **Save gateway account**.
3. Authenticate: You are redirected to Intuit to authenticate the integration.
4. Complete [test transactions](/docs/tutorials/test-transactions).
  For applicable gateways, you can test that your credentials are correct by using the '**Check credentials**' button at the top of the page.

# How to Choose a Payment Gateway

Once your subscription business is off the ground, you’d _probably_ like to get paid for the service or product you’re providing.
To do that, you’ll need a payment gateway – and choosing which one is one of the most critical decisions you can make.
(In fact, we recommend that you set up more than one, but we’ll talk more about that later.)

Or perhaps your current payment gateway isn’t cutting it, and you’re looking for a new solution.
What should you look for when selecting a payment gateway?
What is a payment gateway, actually?
Why are they important?
How can you set them up so that you can process payments [without any interruption](/blog/suspended-by-paypal-what-to-do-next/) to your business?
Read on to find out the answers.

## What is a payment gateway?

**Payment gateways are the go-between in the online transaction process between the buyer and seller**.
A payment gateway makes it easy for a customer to securely pay for a product on your website using a debit or credit card.

When someone buys something online, they typically enter their credit card information.
The data that’s transmitted gets encrypted by the payment gateway, which communicates with the payment processor, which relays that information to the merchant account.

## Aren’t payment gateways and merchant accounts the same thing?

Nope! **A merchant account is where** **from your customer’s account after the transaction has occurred**.
It’s important to note that merchant accounts aren’t the same thing as your business bank account, either.
Payments usually go to the merchant account _before_ they hit your business bank account.

## Do I need a payment gateway?

The simple answer is yes. **A payment gateway is how you get paid when someone initiates a transaction on your website**.
Though there are many to choose from, there are a few factors you’ll want to consider when picking the payment gateways you’ll make available to customers on your website.

**And actually, you need** [**more than one**](/blog/suspended-by-paypal-what-to-do-next/) **payment gateway**.
The reason why is simple: If, for whatever reason, your sole payment gateway stops working, another payment gateway option allows customers to complete their transactions without any hassle.
Best of all, you don’t lose a sale due to a technical issue.
It’s win-win for everyone. _This is why Rebilly supports [214 payment gateways](/solutions/payments/) — so you have all the options you need to protect yourself and your business._

## What factors do I need to consider when choosing a payment gateway?

[Choosing a payment gateway](/blog/bootstrap-subscription-business-with-these-apps-tools/) is a decision you’ll want to make carefully.
The features of a payment gateway can affect your customers [and your profitability](/blog/tracking-reducing-involuntary-churn/).
Here are the top 8 questions to ask when evaluating a payment gateway:

### Question one: Modern or classic?

Modern gateways, like PayPal and Stripe, make for an easy process to get you up and running – and often don’t require having a merchant account since the modern gateway acts as an all-in-one system.
Modern gateways, being more all-inclusive, will typically have higher fees compared to classic gateways.

Classic gateways, like WorldPay, take a bit longer to set up, and require both a separate merchant account and more technical knowledge.
They will comparatively lower fees, but you’ll likely have fees associated with a separate merchant account.

### Question two: Hosted or integrated?

Do you want customers to be able to complete payment on your website, or get redirected to your hosted gateway website?
Hosted gateways offer the opportunity for more security, but it may affect your conversion rate if people have to leave your website to pay.

### Question three: Level of security?

With data breaches everywhere you look, [payment security is a huge factor](/blog/how-to-automate-your-pci-compliance/).
How secure your gateway is could be the difference between making a sale or not.
If your website payment method isn’t secure, some customers will avoid it completely because they’ll be nervous about entering their card data.

### Question four: Payment methods accepted?

People still pay with credit and debit cards when making online purchases, but you might want to ensure that your payment gateway accepts other forms of payment, like digital wallets or bitcoin.
Are you a global company?
Then you also need to consider what sort of currencies you’ll accept.

### Question five: What fees are involved?

It’s difficult to find a gateway that doesn’t have fees.
Some gateways charge a fee per transaction, while others charge a monthly flat fee.
You’ll also encounter additional fees for chargebacks or refunds.
Depending on what type of service you offer, [those fees can add up](/blog/cost-of-chargebacks/).
Do your research and make sure that you won’t lose money on associated fees.

### Question six: What contracts and/or service agreements are required?

If you have a contract or service agreement with your gateway payment provider, be sure to read the fine print.
You might need to meet a certain number of transactions to qualify for a payment rate.

### Question seven: Can you view customer data?

If you rely on your payment gateway for user data for financial review, this would be a good feature to have.
In general, the more customer data you can track, the better.

### Question eight: Does the gateway offer fraud detection and prevention?

This added layer of protection helps you as the seller, so you don’t lose money to fraudulent transactions.

## Where does subscription billing software come into all of this?

You might think that your billing software and payment gateway are similar mechanisms, but **billing** **software helps you stay organized, automates some of the recurring billing processes, and can** [**offer gateway integrations**](/solutions/payments/).
Payment gateways are not one-size-fits-all and don’t always do what you need them to do.
Using a billing software can help route payments, restrict certain customers, simplify foreign currency transactions, and more.

After you’ve got all the credit card info and want to arrange recurring payments for your subscriptions, subscription billing software allows you to set up [payment plans](/product/orders/) and [pricing formulas](/docs/settings/pricing-formulas) (flat, tiered, stair-step, etc.).
Your customers will be able to check out through the software, and you’ll have options for viewing customer data as you see fit.

Subscription billing software can also help keep your card-data current, which becomes vital in the event that a card [expires](/blog/tracking-reducing-involuntary-churn/).
If it offers Account Updater features, subscription billing software can [automatically try and update the card data for you](/product/renewals/)—before you lose the recurring revenue.

## To recap

Payment gateways are an important part of your subscription business.
Without them, there’s no way for buyer and seller transactions to occur.
When choosing a payment gateway, factors such as security, integration, payment methods, and fees (among others) should be top-of-mind to avoid problems in your billing.

**Don’t forget to make sure that you have more than one option available.** That way, you can avoid interruptions to your payments and keeps customers happy.

**Now that you know what to look for in a payment gateway, find out what you should look for in your subscription billing tool.** Download our Six Must Haves guide to get a list of the must-haves (and why they matter), plus a bonus three-page feature checklist.
Get it for free below:

# Rebilly news, features, and updates for July 2022

Hi there!
Welcome to the Rebilly blog post for July 2022.
It has been a hot one, here are some hot features.

## New features

This month, we added the following new features.

### Tax locations

Tax locations help you to comply with tax obligations.
This feature enables you to utilize our Tax Jar integration to calculate and collect taxes in multiple states.
For example, your company may be headquartered in New York, but you have a warehouse location in Georgia and are required to collect sales tax from customers in both states.
This feature enables you to configure both addresses in Rebilly and collect taxes in those states.

This feature is only available to US-based organizations.
For more information, see [Manage tax locations](/docs/settings/organizations-and-websites#manage-tax-locations).

### Set a default payment instrument on an order

Default payment instruments can now be configured on subscriptions and used to automatically pay subscription renewals.
This allows customers to have multiple payment methods on file, that can be used for auto-payment on separate orders.
For example, a customer may have a large annual subscription that they wish to put on their MasterCard and a smaller monthly subscription that they want to put on their Visa.
For more information, see [Add a default payment instrument to an order that contains subscription items](/docs/data-tables/manage-subscriptions#add-a-default-payment-instrument-to-an-order).

## New docs

As always, we are working hard on our docs — this last month was no exception.
Here are some of the larger docs that we completed in July.

### Developer onboarding

We added a detailed topic that describes all components of the Rebilly product and how they relate to each other.
Our aim with this topic is to help our developer audience to quickly understand how Rebilly works and to aid with integration.
For more information, see [Concepts](/docs/dev-docs/concepts).

We also added a section to help new developers get started with Rebilly.
For more information, see [Get started](/docs/dev-docs#get-started).

### QuickBooks Online integration guide

This topic describes how to set up and use the QuickBooks Online integration.
Use this integration to synchronize data from your Rebilly account to your QuickBooks Online account.
For more information, see [QuickBooks Online integration](/docs/app-store/quickbooks-online-integration).

### Klarna Buy Now Pay Later (BNPL) set up guide

Due to popular demand, we added a setup guide for Klarna Buy Now Pay Later (BNPL).
This guide describes how to use FramePay to tokenize payments made using Klarna.
For more information, see [Set up Klarna BNPL](/docs/dev-docs/setup-klarna-method).

### Tags

This topic describes how to use tags in Rebilly.
Use tags to organize and categorize customers or KYC documents based on keywords.
For more information, see [Tags](/docs/settings/tags).

### Basic integration

This topic describes a basic means of integrating Rebilly into your application and is aimed at a non-developer audience.
It describes how to add a "Buy now" button to your web page and how to process payments using a Rebilly hosted payment form.
For more information, see [Basic integration](/docs/tutorials/basic-integration).

### Subscription statuses

This topic describes the Rebilly subscription statuses and related terms.
For more information, see [Subscription statuses](/docs/dev-docs/subscriptions#subscription-status).

## New payment gateway integrations

This month, we added the following integrations:

- Added the support for the [NOWPayments payment gateway](/gateways/nowpayments).
- Added dispute support for the [Adyen payment gateway](/gateways/adyen).
- Added support for the [BankSEND payment gateway](/gateways/banksend) and [BankSEND payment method](/payment-methods/banksend).
- Added support for the [Interac Online payment method](/payment-methods/interac-online) for the [Payper payment gateway](/gateways/payper).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways/), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.

If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Strength in Numbers: Choosing the Best Pricing Structure for Your Business

Choosing a pricing formula is one of the first — and most important — steps when creating a pricing plan.
If you’re a new subscription business owner, it’s easy to assume you need to use something like “$X a month for Y product.” It’s simple, intuitive, and it works well in a spreadsheet.

However, there are other options that may fit your business model better and result in a healthier bottom line.
In addition to understanding the basic pricing formulas available, you need to know how to combine those into a value-based pricing structure for your subscription business.

**The most common pricing formulas are:**

- Fixed fee
- Flat rate
- Volume
- Stairstep
- Tiered

## Fixed fee

Fixed fee pricing is probably the pricing formula you immediately think of when you think of a subscription.
The unit quantity is always one, the price is the same, and the only factor that changes with this formula is the time period (whether it’s billed per week, month, year, etc.).

For example, “Petflix,” a dog movie streaming company, charges their customers $13.99 per month to have full access to their dog movies database.
The quantity of movies streamed at the end of the month does not affect the price paid.

**Good for:** Subscription businesses where there’s no need to measure units because the quantity is always one.
This is often the go-to model for membership programs or digital subscriptions.
For example, [Hulu](https://help.hulu.com/s/article/how-much-does-hulu-cost?language=en_US) is $5.99/month with ads or $11.99/month without.

## Flat rate per unit

This is another simple formula, represented by a price per unit.
An example might be $0.10 per transaction or $12 per seat.

**Good for:** Businesses where customers might want to vary the amount of product they’re getting from month-to-month (or quarter-to-quarter, etc.), where volume discounts don’t come into play.
This is also great for businesses where the value the user gets increases as the amount of units increases.
For many businesses, “users” are the units here — for example, [Front charges $9/user/month](https://frontapp.com/pricing) for their “Starter” plan.

## Volume

The volume pricing formula uses quantity brackets.
Volume-based is the price for the quantity bracket multiplied by the number of units.
It’s essentially the same thing as flat-rate per unit pricing, but with a volume-based discount.

This is a very popular formula in retail.
Let’s take a look at the following pricing table:

- For 0 to 1 apples, each apple is $5
- For 2 to 5 apples, each apple is $4
- For 6 or more apples, each apple is $3

If you were buying six apples, each of them would cost $3, for a grand total of $18.

**Good for:** The same businesses that work with a flat rate per unit, but want to add a volume discount (or frequently get requests to do so).
It’s also good for businesses where there’s less overhead for a larger volume of units, so they aren’t leaving money on the table by _not_ offering a volume discount.

This is especially popular for physical subscriptions boxes.
An example is Freshly, [a meal delivery service](https://www.freshly.com/plans), which offers plans that start at $12.50/meal for four meals a week, with the per-meal price going to $8.99/meal for twelve meals a week.

## Stairstep

Stairstep pricing is best for units that are only sold in a specific quantity.
Using eggs as an example, if Joey wants to buy four eggs, they has to buy a carton of six eggs.
They can’t buy ⅔ of a carton of eggs.
If they wants to buy seven eggs, they’ll have to buy a carton of twelve eggs.

**Good for:** Businesses who want to avoid selling products in smaller quantities, or businesses who want to keep their pricing simple (instead of having per-unit pricing).
This formula lets you extract more value per unit from particular price brackets.
Another example might be businesses who want to cap usage within specific pricing brackets — [for example](https://zapier.com/pricing/), Zapier’s free plan allows for 0 to 5 zaps a month, whereas their $20/month plan covers up to 20 zaps a month.

## Tiered

The tiered pricing formula also works by brackets, with a few differences from stairstep or volume-based pricing.
A common example of this is per-user pricing for software as a service products.
On a basic plan, you can have up to three users for a certain price per user, and additional seats are charged at a different rate.

Let’s take a look at the following example:

- For 0 to 3 seats, the price per seat is $25
- For 4 to 5 seats, the price per seat is $20
- For 6 or more seats, the price per seat is $15

If you decide to buy 6 seats, here is how much each would cost based on the tiered pricing plan:

- Seat #1: $25
- Seat #2: $25
- Seat #3: $25
- Seat #4: $20
- Seat #5: $20
- Seat #6: $15

For a grand total of $130/month.

**Good for:** Overall, tiered pricing works well in the same businesses where volume pricing works.
It’s often found in digital products, including SaaS products and hosting companies.
One example of tiered pricing is [Amazon S3’s Storage pricing](https://aws.amazon.com/s3/pricing/), which charges $0.023 per GB for the first 50 TB used in a month, then $0.022/GB for the next 450 TB used in a month, and $0.021/GB for everything over 500 TB used in a month.

## Combine pricing formulas to create your pricing structure

In many cases, a subscription business might use a combination of these formulas to create a pricing structure that makes the most sense for their business and users.
[Intercom’s pricing](https://www.intercom.com/pricing) is one example:

**Their pricing involves:**

- Fixed fee (the minimum monthly price for any given plan)
- Tiered pricing that’s metered based on usage (an additional fee for more than 200 active leads/customers, that goes up in tiers depending on how many active users you have)
- Flat rate per unit ($19/month for extra seats on the Essential plan)

**An example subscription rate might look like:**

- A user signs up for the Essentials plan, which has a base rate of $136/month for up to 200 active people and two seats
- The user has 525 active people (leads and customers), which adds $15/month.
- The user needs two extra seats, which adds $19 x 2 = $38/month

The user’s total rate is $189/month.

Using multiple pricing formulas like this is one way to make sure you’re maximizing your profits, _but_ you do run the risk of confusing your customers.
If you use hybrid pricing structure, make sure that it’s as easy as possible for your customers to figure out what their costs will be.
[Check out MailChimp’s pricing calculator](https://mailchimp.com/pricing/) for one example of how to make it clear.

## Other factors to consider in creating your subscription pricing structure

### Billing: to meter or not to meter?

You probably noticed above that we mentioned Intercom has tiered, metered billing as part of their pricing structure, and might be wondering why “metered” wasn’t listed above as one of the pricing formulas. **Metered billing isn’t a pricing formula as much as it is a method of determining what quantity of units the customer is billed for.**

It’s likely you have more than one metered subscription account — energy bill, anyone?
With metered billing, the customer is charged for what they use, and nothing else.
Sometimes, it’s referred to as “usage based billing” or “variable price billing,” since it goes up and down from month-to-month depending on the usage.

One easy way to determine whether something is metered or not is:

**Is the customer choosing the quantity of the item, or is the quantity based off of the customer’s usage?**

Since it’s determined by usage, metered billing is usually done after the fact (more on that in a moment).
To use the above Intercom example, the seats are determined in advance by the customer and are paid every month whether the customer uses them or not.
The customer pays for the seats to be used in the next 30 days, but the price for active users is metered and is billed after the fact.

### When you’ll bill

Depending on how you’re billing users, it might make more sense to bill in advance or in arrears (after the fact).
Most subscription services are billed in advance (for example, the customer pays on June 15 for service from June 15 to July 15), but businesses using metered billing often bill afterwards.
There are exceptions, though — for example, [Slack](https://slack.com/pricing) bills per active user, per month (or year), but bills in advance, and if you remove active users throughout the month, they issue you an account credit.
You can also do things like prepay for mobile phone usage, and only renew once you’ve used up the amount you prepaid for.

### How often to bill

People often think of subscription services as being monthly, but they don’t have to be.
Depending on the industry and product, it’s not uncommon to find weekly, biweekly, quarterly, or annual billing.
There is some debate about which of these options might be best — [we’ve discussed the research before](/blog/one-time-sale-vs-subscriptions-makes-customers-buy/), but here’s a quick overview:

- [Annual plans can be better for getting upfront](https://www.profitwell.com/blog/here-is-why-every-saas-company-needs-an-annual-plan)cash, which can help you recoup your customer acquisition costs faster.
- Compared to annual pricing, [monthly pricing can increase user commitment](https://hbr.org/2002/09/pricing-and-the-psychology-of-consumption).
  If your product requires more habit formation than others (for example, something fitness related vs. a streaming movie service), it might actually be beneficial for you to bill monthly instead of in larger periods, because your customers might be more likely to use it.
- Showing annual plans and/or annual costs can be used as a form of price-anchoring to incentivize people to sign up for a higher plan than they may have normally ([read about that in the previous post](/blog/one-time-sale-vs-subscriptions-makes-customers-buy/))

### Pricing for cost vs. pricing for value

One last thing to note is that there are two factors to account for in how you price each unit (whether that’s a membership, GB of storage, active users, or something else).
Those two things to keep in mind are:

1. The value your customer gets from using the product 2.
  The cost involved for you in creating/selling the product

Obviously, you need to make sure that you’re covering your costs.
Otherwise, you won’t have a business for very long!
However, it’s all too common for people to price based on _just_ their costs, without considering the value for the customer/end user.
This goes both ways:

- If you’re pricing a subscription at $200/month because that’s what _you_ think it’s worth, but the average customer doesn’t, then you’re going to run into issues
- If you’re pricing a subscription at $20/month because that covers all of your costs and also has an okay profit margin, you could be leaving money on the table if your customers would be willing to pay more

This is something you can test over time ([which you can read more about here](/blog/how-to-optimize-your-prices-to-increase-subscription-revenues/)).
To start, you can get a feel for what kind of value your product provides by talking to your customers (or would-be customers) about the impact it has on their life, and looking at what your competitors (or would-be competitors) charge.

### Keep testing and course-correcting

Choosing how to structure your pricing to use can feel intimidating, but now that you’re more informed, you can make the right choice for you _and_ your business.

**Want to keep optimizing your prices after you choose a formula?** Download our Price Optimization Guide to get a list of experiments you can do right now, categorized by funnel stage and difficulty, starting today:

# PGP public key

Use this PGP public key to encrypt sensitive information, such as security or payment card information, before sending to Rebilly.

## Key details

- **Key ID**: 15052D54A63D1B75
- **Key type**: RSA
- **Key size**: 4096
- **Key fingerprint**: 7310 E2A2 77A6 2E82 36A3 3099 1505 2D54 A63D 1B75
- **User ID**: Rebilly PGP Key [security@rebilly.com](mailto:security@rebilly.com)

### Key block

```key
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBGKNVrcBEADOOPfbSau5hitt3qZN6bA2rgd1UPxfIc3siQV5C3w/OMz2lSo5
3PasRN07HMDTKr0LlGdrz0rJ9/SsfQR5I8dmcyNztetnJm5q6s/lRHq1MP1B9e86
mskWff15H16dv89JzbGcJ34jdSC7Ii4f8gmVZ8ltWaptSAzDl82wo/4OwfMGIGwb
/pNjpSZaoxhxHIEzuCbwVwf9aSoUaAqLCRun4HA0KFbq4bcoDXKTS5ruQViInuiD
zJgCOfKMo8iuAILWSSUn16m13EW1kQSYftMjuQY0WJdf4rxr/TlGwT+5icDLAdAs
1Tbnk+/FBEOnKdEgMG9ZUK6igT2Wucyw5pHi1uEFfZ0verNPwSDMjbStFF26zkrE
odrM67L1A/Y6R4k/0lkecepUbAMkKIQhcJBpVVpsMX2HdCPWWSfgrNS2hCcYilTW
08pgt6iGkPCxHSjHDy3fOx2RnfJlFyUSR+D/T9O19yJ87T1bcEuEqN4cxbjCQolV
0AdeqfoByjpuE2D+wZWnjEkLU3zWkwkXGr3uDhqwvB4uwPA/95y7cdjXiMivC1aQ
yy6HCw7Lj5YxHaXXiv6GEEqOrAj8x8YuoHOcIBQriclHR3D3aRdU8BoYx7fIN2HE
89Ns5uzmUNbk8kf22yW3SkAfhwctyFRVLbUSdck9iTXWwl5s1gdiG9VQ5QARAQAB
tCZSZWJpbGx5IFBHUCBLZXkgPHNlY3VyaXR5QHJlYmlsbHkuY29tPokCUQQTAQgA
OxYhBHMQ4qJ3pi6CNqMwmRUFLVSmPRt1BQJijVa3AhsDBQsJCAcCAiICBhUKCQgL
AgQWAgMBAh4HAheAAAoJEBUFLVSmPRt10R4P/A6/2KVcPv3TJ4bcTIzDF+QIilU+
h56NFh5UJepJ6iiJbT9+VpEtHjUsFE+4ughOBPKi8VuBmhvQXXGtgC0Rp2zdc9g6
pUAhyILNeUnK8ZGcdoQq/FEQyNO81FoPRUQ2wtvToIVVJAk18cQkd1xf/fWeEsA9
ZExK8x23XQZpf54RCeEcrMZ8OlYMEqCA9Q0u4lmDclBaTSz9uGI84hFezxo8huXB
8Q7EpkMMv8vqXLpk4gRjrCud2g0COiepilEvFA+0mj28O3ZbPFfCJKBDcvJkU6de
bKXVXHnSik3tFuwvtgJAyhBDsnCH7A0BZZaaipSsXdWfj0rFauY3yIIdEC4VGdes
dqcyX6/XPfX9A1zpfHjFredmnp6s4VVetKgZTPsL4/3kUv+jZbkkcMz/EnzRHSSH
piUc6BqZUQs6onCEPQXkQb5AFoyMy7dqCjFJspvfFF1cIFz7G9nfzsqjT0pJxvg7
QkKasFU1ppFDrWxhZQYRYxG+OavTSTjepdn3ivuOwR+Y1Rr4m0nqRjNE7YJrdddt
7Rb59qeKXQCCeZuAZO+yToAv5+LqFJW/prWW1e/0RriQLmx/vB6gc2OBVT9UVGIs
ACt2V2qjummZGSkR3UMKfG4zAHAUXbUusOdvpws2gnSJedbMHE1pyfDN9cGIlqNc
mb/i4IAo7HyOxBRcuQINBGKNVrcBEADJGyRG0AU16wcjfJ3xiLX+WHg9zRYIGCL0
roSehnQBQs9NutykzcLNCabJUjDSX9Np2dLW3DaCpdzO0VAYaXG8jQ466qqUQYT3
CpkWITQUiSPpdGObc0lOngCzzGqJl8r7atwP4hxS9XRolVu5mIi/hiNGLGXsl01b
f5gFC+WeSKhqhqaUiuv57zDOtvM2w31gQ4s3764lorjaRjcJt05s0rJ7kT/Z5MCJ
dKTkG9J2Du9i8F5Zu9roJMp9iuBB+jnlGNC0HywNCBYhAGQ/RbPDyMfbQWudZYKM
hWEpSbFliM51SxfvfCeR/VRtj1l4NV6cqhlbW7iXlvdHN2danVQ5tAkgOInDlW3I
tXpoRbb8sBiL82zC9oYPTxpb1a/eg1uGSFcSNB5IEGc2EUD+iO0Y+m3So2eYyGLk
dI/5RqlFHv6npTt0dED3L/0sGxDFXla9Fuq8W1vL7BNf8X+Uj8ui+Mt/Oob2XMBw
EPnrbWkTxiplbRYvEOvbzjXSAQ19eXxP9nF/wFjUbicYrAGv0A8htz0WlrEpIs81
XajIcClsXEl9C/lwjzjtXWa7N04aLdFHORjvU9FbgU/llmE6ISGsnyM9W38fCtTS
B5R40V6HlOVS4J83/x+796CiTxuUgzXU+HVPSBiJikTPYQFX+Wh0aEqIAR+t7oKv
xlUzjGHRDwARAQABiQI2BBgBCAAgFiEEcxDionemLoI2ozCZFQUtVKY9G3UFAmKN
VrcCGwwACgkQFQUtVKY9G3UGJQ/+L9ziVGtIuGn6S0c+2HWHvHkKLaGudOduw3rS
j54ZZ0RgXdikf9GkNnHPM6vPr9lUuAm7e6E3GEH63BLlSfwQ15widtquqN6LLDAl
nNIrtvCDJbWC/s486zOT2M6BeEIdIqJvQdz5zmYm+8HgGwajFDvuZaLECxnKNq2K
I71TTnyjLNni0Bmc7l3eRHAznotoKNzm1X2a6diNQ/6+0Zd5FKoBTekHRkurXlAm
ESkTdh0bcegzSnLqUZ1NjBWjHJpb40YkhVIPS0WoOFWBVZBI9UMaw51cUM7smzYO
ECrBAODHshZGJYwYmE/JHAwhWI4BfKubhCBChr1UE/jhMeVD0z3SPVqF5JeS3nCc
ddGszU01uacS2wTn3dprUxKCWnFKZQDtU64aDFURoYEltVSXWqbvkZoYxaRePmTm
b0MYRuwln3n3i6dDiDE3R74yiYUXlXaH3r8zBZ30ftUoHMzV9Z+G9htGtavqOpPB
faT9lFt9rTtgFNXrhgSF5eWVKOPY/EG8tfD2QTSD+EODTKluBstX3aXWi7l/NGDm
gY+2ORHCePcZKt8VFtcD3qglXBKwO9Mom+zQx+zwd/W8vxrWT/1cFMbQh0fRdhJr
lZdOf4h2TMzvxPLGjQed2c0JkUPZdQrohXAkHw1h0IK28RNvjU+wG6edQTpOFvu5
wGU3DAI=
=37GV
-----END PGP PUBLIC KEY BLOCK-----
```

# Task 4. Products and pricing plans

Task: Create the following products and pricing plans.

Docs: [Create a product and pricing plan](/docs/settings/products-and-pricing).

---

## Product 1

Create the following product with two pricing plans.

- Product name: Software
- Product ID: software
- Product description: Software to solve your problems.
- Unit label: seats
- Accounting code: 0000
- Taxable: True
- Tax category ID: Software as a Service (30070)
- Shippable: False

## Pricing plan 1

- Name: Basic plan
- Currency: USD
- Recurring: True
- Pricing formula: Flat rate
- Price per seat: $50
- Recurs: Forever (until canceled)
- Recurring period: 1 month
- Billing timing: Prepaid
- Activate service period anchor: False
- Activate trial: False
- Setup fee: None

## Pricing plan 2

- Name: Pro plan
- Currency: USD
- Recurring: True
- Pricing formula: Flat rate
- Price per seat: $200
- Recurs: Forever (until canceled)
- Recurring period: 1 month
- Billing timing: Prepaid
- Activate service period anchor: False
- Activate trial: False
- Setup fee: $50

---

## Product 2

Create the following product with two pricing plans.

- Product name: Consulting services
- Product ID: consulting-services
- Product description: Consulting services for your toughest problems.
- Unit label: hours
- Accounting code: 2000
- Taxable: True
- Tax category ID: General (0000)
- Shippable: False

### Pricing plan 2

- Name: Basic consulting
- Currency: USD
- Recurring: False
- Pricing formula: Flat rate
- Price per hour: $375

#### Pricing plan 2.1

- Name: Pro consulting
- Currency: USD
- Recurring: False
- Pricing formula: Flat rate
- Price per hour: $500

---

# Timelines: View and Comment on Transactions, Orders, and More

We’ve been hard at work on adding new features to Rebilly, and we’re happy to share our progress on Timelines.

Timelines let your customer service team quickly view a timeline of activity (including customer activity, charges, and renewals).
In addition to viewing that information, they can also view and add internal notes on the timeline.
The goal? **Help your customer service team provide a better experience to customers and clients.**

## Here’s what a customer timeline looks like

To view a customer’s timeline, you’ll find that customer through the “Customers” screen.
After clicking on a customer’s name, you’ll be able to see the timeline underneath “Recent Orders.” While you’re on a timeline, you can leave comments on it, with notes for yourself or other team members.

**While you’re leaving a comment, you can also**

- Tag another person in your organization
- Attach documents or images
- Link to another customer or order

**Items tracked in the timeline include**

- Invoices being created, issued or reissued, and paid
- Invoices being marked past due or voided
- Changes to the subscription’s products or pricing plans
- Payment methods being added or updated
- Which payment methods have been charged
- Transactions being approved or declined
- Changing of billing anniversary dates

These are all laid out on a simple chronological timeline, complete with dates, times, and which of your team members took an action.
For example, you can see when a team member marked something as past due.

**In addition to customer timelines, we’ve also added order and transaction timelines.** You can view these timelines by clicking on the order or transaction to see the history.
All of the same commenting features apply on these timelines, as well.

This is what a transaction timeline looks like:

## The best part of Timelines?

Sharing important customer information internally, so that your customer service and success teams can access it quickly later, and serve your customers better.

**Ready to check it out?** [Sign in to Rebilly](https://app.rebilly.com/login) and follow the instructions above. **Not a Rebilly user?** [Sign up for a trial today](https://app-sandbox.rebilly.com/) and see what you’re missing.

# Here's to Six Years of Rebilly

## Happy 6th Birthday!

Six years ago, we embarked on a mission to get more people from the pricing page to the thank you page, and get more renewals paid.

I think about the past 6 years and can’t help but feel filled with emotions.

**Awe, because…**

Our progress is measurable.
We’ve helped our clients transact with millions of customers, totaling well over a billion dollars in transactions.

**Gratitude, because…**

Our clients have entrusted us with their most precious resources.
I’m grateful for our team, without whom none of this would have been possible.

**Anticipation, because…**

We’re just getting started.
Even though six years have passed, it still feels like a new beginning, with bright and endless possibilities.

**Resolved, because…**

Even though there will be obstacles, we’ll overcome them.
We’ve navigated on smooth and rocky roads.
We’ll be ready.

It’s soothing to take moments, like this one, to pause and reflect.
May the next year be filled with good.

![Adam Altman headshot](/content-assets/Rebilly-Post-Headshot-9b0bdd25cd7364d9.png)Best,

Adam Altman

_Rebilly Founder_

# KYC document gatherer

Use the KYC document gatherer to collect documents from your customers to verify their identity and comply with KYC and AML regulations.
Customers can upload documents from their device or capture images using their camera.
Feedback is provided on the quality of the images and further instructions if the customer attempts to upload an invalid image, such as a selfie or blurry ID.
The KYC document gatherer works on both mobile and desktop devices and is localized and translated into 14 languages.

Following document types are supported:

- Proof of identity
- Proof of address
- Proof of funds
- Proof of purchase.

For information on available document types, see [Automated KYC document analysis](/docs/kyc-and-aml/kyc#automated-kyc-document-analysis).

This feature is available for the Rebilly KYC and AML features only.
To activate, [contact Rebilly](/support/).
The KYC and AML features may be used together or separately.

To use the KYC document gatherer in an iframe together with the selfie feature for proof of identity, the iframe tag must include the `allow="camera;"` attribute.
This attribute enables the iframe to access the camera.

```HTML
<iframe allow="camera;" src="https://verification.comply.services/?token=<token>" />
```

## Collect KYC documents

To collect KYC documents from your customers using the KYC document gatherer, see [How KYC works](/docs/kyc-and-aml/kyc#how-kyc-works).

## Customer journey

This section describes the customer journey when using the V2 user interface of the KYC document gatherer.
The customer is requested to provide proof of identity, a selfie, proof of address, proof of funds, and proof of purchase.
To specify which user interface version to use in the KYC document gatherer, see [Choose document gatherer UI](/docs/settings/kyc#choose-document-gatherer-ui).

In all steps of the process, the customer is guided through the process and provided with feedback on the quality of the image or document.
The customer can retake the photo if the image is blurry or re-upload if the document is not valid.

### Landing page

When the customer opens the KYC gather request, this is the first page that is displayed.
This page provides an overview of the documents that are required, information on why the documents are needed, an option to use another device, and a button to start the process.

![Landing page](/content-assets/start-e22d4c5f4f069cfd.png)

### Proof of identity

The customer is prompted to upload a picture of their ID, or use the camera to photograph their ID.
If required, the customer is also prompted to take a selfie to verify their identity.

| **Proof of identity flow** |
| --- |
| ![Proof of identity screen 1](/content-assets/id-proof-1-467529cfff446a41.png) | ![Proof of identity screen 2](/content-assets/id-proof-2-4577d08fa8902b6d.png) | ![Proof of identity screen 3](/content-assets/id-proof-3-selfie-460a7dbbf35434b0.png) |
| ![Proof of identity screen 4](/content-assets/id-proof-3-selfie-2-3dd62b2624022e72.png) | ![Proof of identity screen 5](/content-assets/id-proof-4-c05b31cf10781b01.png) | ![Proof of identity screen 6](/content-assets/id-proof-thanks-9b0a07e4fcf50a69.png) |

### Proof of address

The customer is prompted to upload or take a picture of a document that displays their address.

| **Proof of address flow** |
| --- |
| ![Proof of address screen 1](/content-assets/address-proof-1-1219b00371f78e92.png) | ![Proof of address screen 2](/content-assets/address-proof-2-606601f58bf63656.png) | ![Proof of address screen 3](/content-assets/address-proof-4-bf2334479a4432f9.png) |
| ![Proof of address screen 4](/content-assets/address-proof-4-bf2334479a4432f9.png) |

### Proof of funds

The customer is prompted to upload or take a picture of a document that displays proof of funds.

| **Proof of funds** |
| --- |
| ![Proof of funds screen 1](/content-assets/funds-proof-1-25bf464038d53d32.png) | ![Proof of funds screen 2](/content-assets/funds-proof-2-fa68ee9d80497d51.png) | ![Proof of funds screen 3](/content-assets/funds-proof-3-5968120e3a6d2e4a.png) |
| ![Proof of funds screen 4](/content-assets/funds-proof-4-6059f8f7c63cb59f.png) | ![Proof of funds screen 5](/content-assets/funds-proof-5-aa2ac406b30b1caf.png) |

### Proof of purchase

The customer is prompted to upload or take a picture of a document that displays proof of purchase.

| **Proof of purchase** |
| --- |
| ![Proof of purchase screen 1](/content-assets/purchase-proof-1-fc5642e57df936bb.png) | ![Proof of purchase screen 2](/content-assets/purchase-proof-2-952c027e6bf9566f.png) | ![Proof of purchase screen 3](/content-assets/purchase-proof-3-23b3114a089e60e6.png) |
| ![Proof of purchase screen 4](/content-assets/purchase-proof-4-3982969aedb4fb3a.png) | ![Proof of purchase screen 5](/content-assets/purchase-proof-5-ef23bce7314e35ca.png) |

### Summary page

After the customer has uploaded all the required documents, this page is displayed.
The customer is informed that the documents have been submitted and that they will be contacted if further information is required.

![End screen](/content-assets/end-ff6f59193f5253d0.png)

# Overcome transaction challenges for subscription billing

The purpose of subscription billing is to allow business owners to streamline their accounts receivable process through a digital platform; however, subscription billing may be difficult if business owners don’t take the time to figure out the steps involved in tracking revenue, performing collections and generating reports.
The information below provides details on how to overcome challenges businesses may encounter using subscription billing systems.

## Failed Transactions

Payment reminder notices should be sent out to customers to alert them when their account will be deducted.
Consider sending out the notices at least five to 10 days in advance so that the customers can ensure the money is available on the due date.
The notification sent should contain information on the total amount due, as well as any other fees that were added during the month.
If the transaction is in excess of the authorized amount, the notification will also serve as a reminder to the customer that there are also additional fees due.

## Cash Flow

Setup account email reminders so that customer payments are received on time through the recurring billing option.
The account reminders will alleviate the challenges faced by business owners as a result of customers being charged without their knowledge.
The immediate availability of cash is a hassle-free way for businesses to manage their accounts receivables.
Subscription billing will provide business owners with a steady stream of readily available cash.
The immediate access to cash flow also enables business owners to reinvest in their companies and better control their accounts payable.

## Flexible Billing and Payments

Customers prefer flexible payments for their subscription billing accounts.
The convenience of scheduling payments on an annual, monthly or weekly basis gives customers more control of when to make their payments.
The flexible billing service option may increase efficiency for business owners since invoicing and sending out paper bills in not necessary.
The flexibility of accepting payments can streamline the accounts receivable process for business owners.
Customers have a variety of options available for subscription billing services, such as eCheck payments, credit card payments and debit card payments.

## Paperless Process

Subscription billing decreases overhead costs due to the nearly paperless process.
Offering paperless billing options can save a business both time and money; however, it is essential that business owners have their customers opt-in for the paperless billing option.
Providing customers with the option to select paperless billing lets them know up-front whether the bill will come through the postal service or to their email account.
Customers will also have the option to access their accounts online to view bills when necessary, alleviating the unnecessary worry caused by losing or misplacing a paper bill.

## Want to learn more about making the most from subscription billing?

**span** In our free price optimization guide, you’ll learn how to set up and run experiments that help you get the most from every sale, with specific experiments based on your business stage, and more.
Get it below:

# Payout requests

A payout request is a customer request to withdraw funds.
This topic describes the payout request resource and its lifecycle.

A payout request is created when the [Create a payout request](/docs/dev-docs/api/transactions/postpayoutrequest/) API operation is called, or when a member of your organization creates a payout request on the customer's behalf.
To integrate payout requests using the Rebilly API, see [Hosted payout form API integration](/docs/dev-docs/hosted-payout-integration).

To process payout requests, you must configure at least one gateway for payouts.
For more information, see [Configure a gateway to manage payout requests](/docs/settings/set-up-a-gateway#optionally,-configure-how-the-gateway-manages-payout-requests) and [Configure methods to display to customers](/docs/settings/payout-method-configuration#configure-methods-to-display-to-customers).

## Payout request components

A payout request contains the following:

- **Customer**: Customer who is requesting a payout.
- **Amount and currency**: Requested payout amount and currency.
- **Payment instrument**: Payment instrument that the customer selects or adds as the suggested instrument for payout.
  Payout allocations are not limited to this instrument and can be applied to any instrument the customer has available for payouts.
- **Allocations**: How the payout amount is split across payment instruments and gateways.

## Payout request lifecycle

This section describes the lifecycle of a payout request.

### Payout request status

The following are all payout request status types.

| Status | Description |
| --- | --- |
| `pending` | A payout request is created and begins the pending period configured for the website.    During the pending period, the customer can select a [payment instrument](/docs/dev-docs/payment-instruments).  New payout requests can be configured to begin in the `ready` status. If the initial payout request state is not configured, the default status is `ready`. For more information, see [Edit payout request settings](/docs/settings/organizations-and-websites#edit-payout-request-settings).  A member of your organization can skip the pending period and move the request to the `ready` status. To skip the pending period and move the request to the `ready` status, select from the following:  - API: Use the [Update a payout request](/docs/dev-docs/api/transactions/patchpayoutrequest/) operation and set the `status` of the payout request to `ready`. - UI: [Mark a payout request as ready](/docs/data-tables/manage-payout-requests#mark-a-payout-request-as-ready) in the Rebilly UI. |
| `ready` | The pending period ends, or a member of your organization skips the pending period, and the request is ready for approval. When payout request status is `ready`, the customer can select a [payment instrument](/docs/dev-docs/payment-instruments) if one is not already assigned. |
| `approved` | A member of your organization approves the payout request. |
| `in-progress` | Funds are distributed across payment instruments and gateways, and processed as [allocations](#allocations). |
| `fulfilled` | Allocations have been processed, and the full payout amount has been paid out. |
| `canceled` | The request is canceled by a merchant, customer, or system. Cancellation requires a `canceledBy` value of `customer`, `merchant`, or `system`. |
| `split` | A member of your organization splits the request into two or more child payout requests. Payout requests are split when the full amount cannot be processed because of amount restrictions, but a smaller amount can be processed. For example, if a payout request for `$4,000` cannot be processed, but `$3,000` can, split the request into two. Process the `$3,000` request first and the `$1,000` request later instead of blocking the entire `$4,000` request. |
| `merged` | A member of your organization merges the request into another payout request. |

### Payout request created and fulfilled

This section describes the lifecycle for a payout request that is approved and fully paid out.

```mermaid
%%{init: {"flowchart": {"htmlLabels": false}}}%%
graph LR;
    A(1 Pending) --> B(2 Ready)
    B --> C(3 Approved)
    C --> D(4 In-progress)
    D --> E(5 Fulfilled)
```

1. A payout request is created when the [Create a payout request](/docs/dev-docs/api/transactions/postpayoutrequest/) API operation is called, or a member of your organization creates one on the customer's behalf.
  Depending on which initial payout request state is configured, the payout request begins in one of the following states:

    - `pending`: The payout request enters the `pending` state for a configured period before it can be reviewed or approved by a member of your organization.
      When the pending period ends, the payout request automatically transitions to the `ready` state.
    - `ready`: The payout request enters the `ready` state and can be reviewed and approved immediately by a member of your organization.
  If the initial payout request state is not configured, the default status is `ready`.

  To configure the initial state, see [Edit payout request settings](/docs/settings/organizations-and-websites#edit-payout-request-settings).
2. A member of your organization reviews the payout request and approves it.
  The request transitions to `approved`.
3. A member of your organization allocates funds to payment instruments and processes them through the gateway.
  The payout request transitions to `in-progress`.
4. Allocations are processed and the payout request transitions to `fulfilled`.

### Payout request canceled

This section describes the lifecycle for a payout request that is canceled.
A payout request can be canceled from the `pending`, `ready`, or `approved` status.

Cancellation requires a `canceledBy` value that identifies who initiated the cancellation:

- `merchant`: A member of your organization cancels the request.
- `customer`: The customer cancels the request.
- `system`: The system cancels the request automatically.

To cancel a payout request, use the [Update a payout request](/docs/dev-docs/api/transactions/patchpayoutrequest/) operation and set the `status` of the payout request to `canceled`.

**Example**: Payout request canceled by a member of your organization

```json Payload application/json
{
  "status": "pending",
  "canceledBy": "customer",
  "cancellationDescription": "string",
  "description": "string",
  "blocked": false,
  "blockReason": "fraud-suspected",
  "blockDescription": "string"
}
```

**Example**: Payout request canceled by customer

```json Payload application/json
{
  "status": "pending",
  "canceledBy": "customer",
  "cancellationDescription": "string",
  "description": "string",
  "blocked": false,
  "blockReason": "fraud-suspected",
  "blockDescription": "string"
}
```

## Block a payout request

Blocking a payout request temporarily prevents transitions to `ready`, `approved`, `in-progress`, `merged`, `split`, and `canceled`.
It also prevents allocation creation, allocation processing, and cancellation of pending allocations.
For example, for suspected fraudulent activity, you can block a payout request to prevent it from being processed until the activity is investigated.

A blocked payout request can still transition to the `fulfilled` status if allocation processing starts before the payout request is blocked.

This action is available for payout requests in the `pending`, `ready`, `approved`, or `in-progress` status.

To block or unblock a payout request, use the [Update a payout request](/docs/dev-docs/api/transactions/patchpayoutrequest/) operation and set `blocked` to `true` or `false`.
When blocking, provide a `blockReason` and optionally a `blockDescription`.

**Example**: Block a payout request due to suspected fraudulent activity

```json Payload application/json
{
  "status": "pending",
  "canceledBy": "customer",
  "cancellationDescription": "string",
  "description": "string",
  "blocked": false,
  "blockReason": "fraud-suspected",
  "blockDescription": "string"
}
```

**Example**: Unblock a payout request

```json Payload application/json
{
  "status": "pending",
  "canceledBy": "customer",
  "cancellationDescription": "string",
  "description": "string",
  "blocked": false,
  "blockReason": "fraud-suspected",
  "blockDescription": "string"
}
```

## Allocations

Allocations define how the payout amount is distributed across payment instruments and gateways.
After a member of your organization approves a payout request, you can create allocations manually or automatically.

During automatic allocation, payout limits on the gateway account apply to the allocated amount.
Manual allocations are not limited.
To configure payout limits in the Rebilly UI, see [Set payout limits](/docs/settings/manage-payment-gateways#set-payout-limits).
To configure payout limits using the API, use the [Update a gateway account](/catalog/all/gateway-accounts/patchgatewayaccount/) operation and the `payoutLimits` field.

Each allocation has a status that tracks the progress of the allocation operation:

| Status | Description |
| --- | --- |
| `pending` | Allocation is created and awaiting processing. |
| `queued` | Allocation is queued and waiting to be processed. |
| `processing` | Allocation is being processed, and a transaction is being created. |
| `completed` | Allocation is processed, and the gateway approves the transaction. |
| `failed` | An error prevents the allocation from being processed, and the allocation status is set to `failed`. |
| `canceled` | A member of your organization cancels the allocation before processing, and the allocation status is set to `canceled`. |
| `declined` | A gateway declines the allocation, and the allocation status is set to `declined`. |

Available operations:

- To manually allocate funds, use the [Create a payout request allocation](/docs/dev-docs/api/transactions/postpayoutrequestallocation/) operation.
- To automatically allocate funds, use the [Create automatic payout request allocations](/docs/dev-docs/api/transactions/postpayoutrequestautoallocations/) operation.

## Webhooks

Use webhooks to notify your systems when payout request events occur.
For more information, see [Webhooks](/docs/dev-docs/webhooks-configuration) and [Event types](/docs/automations/event-types).

## Related topics

- [Edit payout request settings](/docs/settings/organizations-and-websites#edit-payout-request-settings)
- [Hosted payout form API integration](/docs/dev-docs/hosted-payout-integration)
- [Manage payout requests in the UI](/docs/data-tables/manage-payout-requests)
- [Payout method configuration](/docs/settings/payout-method-configuration)
- [Configure a gateway to manage payout requests](/docs/settings/set-up-a-gateway#optionally,-configure-how-the-gateway-manages-payout-requests)
- [Set payout limits](/docs/settings/manage-payment-gateways#set-payout-limits)
- [Payout requests API](/docs/dev-docs/api/transactions/)

# Tips for Creating a High-Conversion Free Trial

Free trials make sense as a marketing strategy for software as a service (SAAS).
Instead of asking prospective consumers to blindly accept the utility of a product, the software company offers a personal experience with the product.
While there are clearly some good reasons for this approach, not all free trials are worth the investment.
Here are some informative tips for establishing high-conversion free trials.

## Share the Free Trial Option

Brand identity can be enhanced by encouraging customers to share their free trial experience through social media.
Sharing can be paired with a referral bonus for bringing in another customer.
Furthermore, a business can publicize its free trial policy on its social media profiles.
Eventually, the public will associate the trial offer with the brand.

## Offer a Full-Featured Trial

Customers can’t be won over if the free trial doesn’t give them full access to all product features.
Full access to features gives potential consumers the information they need to make a decision.
The customer’s decision is based on the product’s true effectiveness, instead of solely on its price.

## Test the Free Trial’s Effectiveness

Free trials aren’t free for businesses.
Like any investment, free trials should be analyzed and tested periodically to check their ROI.
One quick way to see whether a free trial offer is resulting in more conversions is temporarily replacing the “Try Now” button with a “Buy Now” or “Begin Subscription” button.
If the free trial offer is effective, terminating it should result in a recognizable drop in the number of conversions.
Hard numbers that document the effectiveness of a campaign can be very persuasive to managers.

## Segment the Target Market

A great way of hitting the middle ground in managing free trials is to offer them to a select subset of a company’s audience.
Kabbage recommends that small businesses specifically target users who do a lot of online sharing, offering free trials selectively to these active influencers.
This “strategic sampling” procedure puts products into the hands of thought leaders and trendsetters, strengthening the company’s relationships while allowing influencers to spread the news about the product.

Free trials are an integral part of selling software, and their popularity among both businesses and consumers will likely continue to rise.
Small and medium-sized businesses can ensure they get the most out of these programs by following a few of these straightforward practices.

## Want to learn more about price optimization?

**span** In our free price optimization guide, you’ll learn how to set up and run experiments that help you get the most from every sale, with specific experiments based on your business stage, and more.
Get it below:

# Gateway integration requests

This topic describes how to request the integration of a new payment gateway or payment method.
If the gateway or method that you require is not listed, Rebilly will integrate it free of charge.
To browse, see [Gateways](/gateways/) and [Payment methods](/payment-methods/),

## Send an integration request

1. Compose an email, and provide the following:

    - Payment methods, such as payment cards, alternative payment methods, and other.
    - Documentation.
    - Test credentials.
    - A technical contact, if possible.
    - Written intent to use Rebilly.
      Note: This only applies to new merchants.
2. Optionally, if you require the integration of advanced features for a payment gateway, provide:

  Rebilly can only integrate features that are supported by the API of the payment gateway.
  Include a link to documentation that describes how to integrate the feature.

    - Recurring billing.
    - Card on file billing.
    - Automated charge-back reporting.
    - Payouts / credits.
    - Refunds.
    - Additional information that may be required.
3. In the subject, use this format:
  _[Your company name] Gateway integration request for [Gateway], [critical, high, medium, or low] priority.

  Rebilly will respond to your email and confirm receipt within 24 hours.
  Rebilly will alert you when the integration is in progress, and also when the integration is complete and ready for testing.

  The integration depends on the priority level, and the existing integration requests.
  Below is an estimated timeline based on priority level.

  | **Priority** | **Estimated time to completion** | **Select when:** |
  | --- | --- | --- |
  | `Critical` | 1-2 weeks | You may lose significant customers without this integration. |
  | `High` | 2-3 weeks | A project may be delayed without this integration resulting in a cost at your end. Customers have requested this integration. |
  | `Medium` | 3-4 weeks | More that one customer has requested this integration but are happy to wait a short period. |
  | `Low` | 4-8 weeks | You have noticed that this integration may be useful, but it is not yet a requirement for you to do business. A customer has requested this integration. |
4. Send the email to [support@rebilly.com](mailto:support@rebilly.com).

## Integration request examples

### New merchant example

**To:**

```plaintext
support@rebilly.com
```

**Subject:**

```plaintext
[ABC Company] Gateway integration request for Hot New Gateway, high priority
```

**Body:**

```plaintext
Hello,
We need a payment card integration for Hot New Gateway.
I've attached the integration docs to this email.

The test credentials are:
- URL: [staging URL for Hot New Gateway]
- Username: abccompany_hotnewgateway
- Password: password123!

For technical questions, reach out to Bill at bill@hotnewgateway.com.

Please integrate support for the following additional features:
- Recurring payments
- Refunds
- Chargeback reporting
- Payouts / credit type transactions.

High priority.
We are expanding to a new market in the next month and Hot New Gateway
is an integral part of our expansion strategy.

Please consider this email our written intent to use Rebilly.

Best,
Sandra
ABC Company
<attachment: hotnewgateway_docs.pdf\>
```

### Existing merchant example

**To:**

```plaintext
support@rebilly.com
```

**Subject:**

```plaintext
[DEF Corp] Gateway integration request for Get Paid Gateway, low priority
```

**Body:**

```plaintext
Hello,
We need an alternative payment method integration for Get Paid Gateway.

The docs can be found here: [URL for Get Paid Gateway integration docs]

The test credentials are:
- URL: [staging URL for Get Paid Gateway]
- Username: defcorp_getpaidgateway_test
- Password: password456?

Let me know who will be working on this integration.
I will add them to our Skype group with the Get Paid Gateway team for any technical questions.

Low priority.
This is not a high priority right now,
but we would like to have this integration complete in the next 2-3 months.

Warm regards,
Michelle
DEF Corp
<attachment: getpaidgateway_docs.pdf\>
```

# 3 Simple Tips for Subscription Billing

Billing errors can create significant headaches for businesses, forcing you to spend time chasing down customers who haven’t paid enough or apologizing to those you’ve overcharged.
Making sure these three areas are covered will save you time (and money!), allowing you to focus more on your data to make smart decisions for your business.

## Set Up a Billing Cycle

Whether you bill your customers weekly, monthly or even yearly, automated subscription billing can help you handle the process as efficiently as possible.
Once you decide on the lengths of your billing cycles, you can set up a subscription billing automation system that sends out bills at regular periods without requiring any human input.
Recurring payment software can automatically generate accurate bills and send them to customers, which reduces the chance of manual errors such as sending out a bill for the wrong amount or, worse, failing to send a bill at all.

## Simplify Your Invoices

Generate simple, clear invoices for your customers.
Invoices that are difficult for customers and employees to understand can increase the risk of billing errors going unnoticed, which could result in money lost for your company or anger in your customers when they realize they have been paying inaccurate bills.

## Keep Customers Happy

By offering a seamless billing experience to customers, you can encourage them to stay loyal to your brand.
Attracting a new customer can cost as much as five times more than retaining a current one, so it’s vital to focus on keeping your current customer base happy.
You can go above and beyond automating rebills and simplifying your invoices by rewarding long-time customers or updating your product to reflect their feedback.

If your business isn’t already using a subscription billing service, you could be losing out on vital revenue. **Not sure where to start when it comes to finding a subscription billing company that fits your needs?****span**  Download our free Six Must-Haves guide, which covers the features you need in a subscription billing service, why you need them, and comes with a bonus feature checklist:

# Rebilly news, features, and updates for May 2022

Hi there!
Welcome to the Rebilly blog post for the month of May, 2022.
This blog describes Rebilly news and features from the past month.

## Docs website changes

You may have noticed that the navigation bar looks different in the [Rebilly docs website](/docs/).
We've updated it, and our documentation to match the product user interface.

Our aim is to make it easier to locate documentation and to create an association with the UI.
For example, to find out what customer interactions are available and how to perform them, do as you would in the UI — go to **Data tables**.

Developer docs now has its own top level section in the navigation bar.
And, we also added a tutorials section.
Tutorials are a great way for new and old users to learn about all the features Rebilly has to offer.

We have been doing a ton of work on our docs over the past year.
We'll continue to improve readability and fill in the gaps on areas where documentation is needed.
In case you're not aware, we use a docs-as-code way of working and the awesome [Redocly](https://redocly.com/) documentation tool for all our documentation.

## Revenue recognition reports

To help simplify your accounting and to generate financial reports, we've added new revenue recognition reports to KPIs.

Use revenue recognition reports to manage the revenue status of your company and to understand how your business is evolving.
Rebilly financial reporting now includes revenue waterfall and Monthly Recurring Revenue (MRR) reports.

For more information on revenue recognition, see [Revenue recognition](/docs/data-tables/revenue-recognition).

### Revenue waterfall

The revenue waterfall report describes revenue that is recognized up to a given month.
It contains information on booked revenue, recognized revenue for the months in the issued period, and the remaining revenue up to the selected month.
To create a revenue waterfall report, see [Revenue waterfall](/docs/reports/billing-reports#view-revenue-waterfall-reports).

### Monthly Recurring Revenue (MRR)

The MRR report displays information on the predictable recurring revenue for your business over a period of months.
To create a MRR report, see [MRR](/docs/kpis/billing-kpis#monthly-recurring-revenue).

## New payment gateway integrations

This month, we added the following integrations:

- Added support for the [Conekta OXXO](/payment-methods/conekta-oxxo) for the [Safecharge payment gateway](/gateways/nuvei).
- Added support for the [Cashterminal payment gateway](/gateways/cashterminal) and the [Cash terminal payment method](/payment-methods/cashterminal).
- Added support for the [P24 payment method](/payment-methods/p24) for the [Skrill payment gateway](/gateways/skrill).
- Added support for the [Klarna payment gateway](/gateways/klarna).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways/), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.

If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Privacy Notice

Last updated: December 12, 2023.

Rebilly, Inc. and its group companies ("Rebilly", "we" or "us") respect your privacy. This privacy notice ("Notice") explains who we are, how we collect, use and share personal information about you, and how you can exercise your privacy rights. Rebilly collects and processes personal information about you from various sources to provide our Services and to manage our Website. "You" may be a visitor to one of our websites, a user of one or more of our Services ("Rebilly User"), or a customer of a Rebilly User ("End Customer").

## Quick Links

We recommend that you read this Notice in full to ensure you are fully informed. However, to make it easier for you to review those parts of this Notice which apply to you, we have divided up the document into the following sections:

- Section 1: [WHO WE ARE](#1-who-we-are) (applicable to everyone)
- Section 2: [PRIVACY FOR THE WEBSITE](#2-privacy-for-the-website) (applicable to visitors to our Website)

    - [2.1 What information do we collect?](#21-what-information-do-we-collect)
    - [2.2 Social Media Widgets](#22-social-media-widgets)
    - [2.3 How do we use your information?](#23-how-do-we-use-your-information)
- Section 3: [3.PRIVACY FOR THE SERVICES](#3-privacy-for-the-services) (applicable to Rebilly Users and End Customers)

    - [3.1 What information we collect and why?](#31-what-information-we-collect-and-why)
    - [3.2 How do we use your information?](#32-how-do-we-use-your-information)
    - [3.3 Cookies and Similar Technologies](#33-cookies-and-similar-technologies)
- Section 4: [GENERAL INFORMATION](#4general-information) (applicable to everyone)

    - [4.1 How do we share your information?](#41-how-do-we-share-your-information)
    - [4.2 International Data Transfers](#42-international-data-transfers)
    - [4.3 Legal basis for processing personal information](#43-legal-basis-for-processing-personal-information-eea-visitors-only)(EEA visitors only)
    - [4.4 Your data protection rights](#44-your-data-protection-rights)
    - [4.5 How do we keep information secure?](#45-how-do-we-keep-your-personal-information-secure)
    - [4.6 How long do we keep information?](#46-how-long-do-we-keep-your-personal-information)
    - [4.7 Third-Party Websites and Apps](#47-third-party-websites-and-apps)
    - [4.8 Children's information](#48-childrens-information)
    - [4.9 Changes to this Notice](#49-changes-to-this-notice)
    - [4.10 Contact Us](#410-contact-us)

## 1. WHO WE ARE

We are a US-based technology company that offers subscription billing software to increase our customers' lifetime value. We enable subscription services to handle payments, invoices, billing disputes, fraud prevention and provide analysis (the "**Services**"). We have offices in Austin, Montreal and Barbados and other employees based all over the world. You can find out more about us at [www.rebilly.com](http://www.rebilly.com/).

## 2. PRIVACY FOR THE WEBSITE

This section describes how we collect and use personal information in the usual course of business, including through our websites (such as [https://www.rebilly.com/](https://www.rebilly.com/) (and any of its sub-domains) or any other website which includes a link to this Notice is posted) (the "**Website**"), as well as in connection with our events, sales and marketing activities.

### 2.1 What information do we collect?

**Information that you provide voluntarily**: Our Website offers various ways that individuals may contact us, such as through form submissions, email or phone, in order to inquire about our company and services. For example, when expressing an interest in obtaining additional information about Rebilly or our Service, subscribing to marketing or otherwise contacting us, Rebilly collects personal information from you. This can be via the Website, in person at a tradeshow or event or via a phone call with one of our sales representatives.
The personal information we collect may include:

- contact information (such as your name, address, telephone number and email address) as well as the nature of your communication;
- professional information (such as your company name, job title);
- marketing information (such as your contact preferences, source/campaign); and
- any information you choose to provide to us when completing any 'free text' boxes in our forms (for example, for event sign-up or bot interaction).

**Information we collect automatically**: When using our Website, certain information is automatically collected by most browsers or through your device (such as your IP address, your operating system, your browser, mobile device information, request information (speed, frequency) and information about how you interact with our Website and other websites). In some countries, including countries in the European Economic Area ("**EEA**"), this information is considered 'personal data' under data protection laws. Some of this information is collected using cookies and similar tracking technology, as explained in our [Cookie Notice](/cookie-notice).

**Information we collect from other sources**: In order to enhance our ability to provide relevant marketing, offers and services to you, we may obtain information about you from other sources, such as public databases, joint marketing partners, data providers, social media platforms, as well as from other third parties.

### 2.2 Social Media Widgets

Our Website includes plugins of social media platforms, such as Facebook Inc., 1601 S. California Ave, Palo Alto, CA 94304, USA; Twitter Inc., 795 Folsom St., Suite 600, San Francisco CA 94107, USA; and LinkedIn Corporation, 1000 W. Maude Avenue, Sunnyvale, CA 94085, USA. You can identify the plugins by the respective network's logo. Details about purpose and extent of data collection, as well as processing and use of the data, by the social media networks can be obtained by reading the privacy policies of Facebook, Twitter, and LinkedIn.

### 2.3 How do we use your information?

We use the information we collect or receive (alone or in combination) to:

- To respond to your inquiries and fulfill your requests, such as to send you requested materials and newsletters, as well as information and materials regarding our products and services.
- To send administrative information to you, for example, information regarding the Websites and changes to our terms, conditions, and policies.
- To send you marketing communications, including via email and SMS in compliance with applicable laws and in accordance with your preferences, that we believe may be of interest to you.
- To personalize your experience on our Websites by presenting products and offers tailored to you.
- For our business purposes, such as data analysis, audits, fraud monitoring and prevention, developing new products, enhancing, improving or modifying our Websites and services, identifying usage trends, determining the effectiveness of our promotional campaigns and operating and expanding our business activities.
- As we believe to be necessary or appropriate: (a) under applicable law, including laws outside your country of residence; (b) to comply with legal process; (c) to respond to requests from public and government authorities including public and government authorities outside your country of residence; (d) to enforce our terms and conditions; (e) to protect our operations or those of any of our affiliates; (f) to protect our rights, privacy, safety or property, and/or that of our affiliates, you or others; and (g) to allow us to pursue available remedies or limit the damages that we may sustain.

## 3. PRIVACY FOR THE SERVICES

This section applies to the personal information we collect and process about Rebilly Users and their End Customers through the Services.

In general, our Service is intended for use by Rebilly Users. As a result, for much of the personal information we collect and process through the Services, we act as a processor. It is primarily Rebilly Users that control what personal information we collect through the Services and how we use it. If you are an End Customer and have privacy related questions or concerns about the privacy practices of or the choices Rebilly Users have made to share your information with us or any other third party, you should contact that Rebilly User or review their privacy policies. Rebilly is not responsible for the privacy or security practices of Rebilly Users, which may differ from those set out in this Notice.

### 3.1 What information we collect and why?

Information you provide to us: If you are a Rebilly User you may provide certain personal information to us through the Services - for example, when you sign up for a Rebilly account to access and use the Services, when you consult with customer support or send us an email or communicate with us in any way (for example, to make a support request).

The personal information we collect may include: your business contact information (such as your name, job title, organization, address, telephone number and email address) and contact preferences; account information (such as your username and password); and if you purchase the Services, payment details (card information, alternative payment method information, invoices, order information and transaction history). If you ever communicate directly with us, we will maintain a record of those communications and responses.

Information we collect automatically: In connection with the deployment of the Services, we may automatically collect certain device data about Rebilly Users and their End Customer's (such as IP address, device type, operating system and internet browser type, screen resolution, operating system name and version, device manufacturer and model) when they interact with the Services.

If you are a Rebilly User we may also collect information about your use of the Services (such as the dates and times you access the Services, page views, which activities and features you use, the links you click on and how you interact with the Services), device event information (such as system activity, error reports (sometimes called 'crash dumps') and hardware settings) and/or log files automatically generated during the use of the Services (such as access times, hardware and software information).

We (or our third party service providers) use cookies and other tracking technologies to collect some of this information. See [Section 3.3](#33-cookies-and-similar-technologies)(Cookies and Similar Technologies) for more information.

Information we process about End Customers on behalf of Rebilly Users: In connection with the provision of the Service, we may process certain personal information relating to End Customers on behalf of the Rebilly Users. This information may include: contact information (name, email, phone, address), device information (such as IP Address), billing and transactional information (such as payment card information, photo ID, alternative payment method information, date of birth, order information) and any other custom data fields as configured by Rebilly Users. We only use and process this information as a processor and to provide the Services in accordance with the instructions of the relevant Rebilly Users.

### 3.2 How do we use your information?

- Provide and facilitate delivery of Services. For example, for the creation or administration of your Rebilly account, to communicate with you, and to provide you with customer support or other services you request, such as product updates, product patches and fixes and similar communications and sending other administrative and account related communications.
- To send you marketing communications, including via email and SMS, in compliance with applicable laws and in accordance with your preferences, that we believe may be of interest to you.
- To carry out our obligations and enforce our rights arising from any contracts entered into between you and us.
- To manage the Rebilly User's account, including for billing purposes as well as for our customer relationship management.
- To prevent potentially illegal activities.
- To respond to legal requests or prevent fraud, we may need to disclose any information or data we hold about you. If we receive a subpoena or other legal request, we may need to inspect the data we hold to determine how to respond.
- To help us deliver a better and more personalized experience for Rebilly Users (for example, it enables us to customize our Services according to a Rebilly User's interests).
- For our business purposes, such as data analysis, audits, fraud monitoring and prevention, developing new products and features, enhancing, improving or modifying our products and services, identifying usage trends and expanding our business activities.
- As part of our efforts to keep the Service safe and secure (for example, to help monitor, prevent and detect fraud, enhance security, monitory and verity identity or access, and combat spam or other malware or security risks).
- To comply with and enforce applicable legal and regulatory requirements (such as anti-money laundering and fraud prevention).

### 3.3 Cookies and Similar Technologies

Cookies are small text files placed on your device to store data that can be recalled by a web server in the domain that placed the cookie. The Services may make use of first or third party cookies (whether session or persistent cookies) and similar technologies, for such things as session management, account access/ authentication, to recognize returning Rebilly Users, for storing and honoring Rebilly User's preferences and settings, combating fraud, maintaining and monitoring the infrastructure of the Services, ensuring security protections, analyzing how our products perform and other analytics purposes, and fulfilling other legitimate purposes as further described in this Notice (such as fixing issues with and improving our Services and related user experience).
We also use analytics cookies to better understand how our Services are being used by tracking how you interact with the Services and where you click.

You can use controls in your internet browser to limit how the websites you visit are able to use cookies and to withdraw your consent by clearing or blocking cookies.

## Google ANALYTICS

We use cookies served by Google Analytics to collect limited data directly from end user browsers to enable us to better understand your use of the Services, including making use of the demographics and interests reports services of Google Analytics. Further information on how Google collects and uses this data can be found at www.google.com/policies/privacy/partners/. You can opt-out of all Google supported analytics within the Services by visiting [https://tools.google.com/dlpage/gaoptout/](https://tools.google.com/dlpage/gaoptout/).

## 4.GENERAL INFORMATION

### 4.1 How do we share your information?

We do not sell or share your personal information with third parties except as outlined below. We may disclose your personal information to the following categories of recipients:

- **Service providers**. In order to provide these services to you, it is necessary for us to disclose your information to contracted third parties and service provider partners who perform certain functions of our service on our behalf. Examples include payment providers (to authorize, record, settle and clear payment card transactions); cloud hosting providers (to provide data storage and processing services); communications providers (to process new queries and to manage our emails); and analytics company to perform analysis on the Website and Services.
- **Rebilly affiliates**. Rebilly is headquartered in Austin and has offices in Montreal and Barbados and other employees based all over the world. We may share information with our parent companies, subsidiaries and/or affiliates for use and processing purposes described in this Notice.
- **Compliance with laws**. We may disclose information where we are legally required to do so in order to comply with applicable law, governmental requests, a judicial proceeding, court order, or other legal process (including in response to public authorities to meet national security or law enforcement requirements).
- **Vital interests and legal rights**. We may disclose information where we believe it is necessary to investigate, prevent, or take action regarding illegal activities, suspected fraud, situations involving potential threats to the safety of any person, violations of our Terms of Use or this Notice, or as evidence in litigation in which Rebilly may be involved.
- **Business transfers**. We may share or transfer information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company, provided that we inform the buyer it must use your personal information only for the purposes disclosed in this Notice.
- **Consent**. We may share your information with any other person with your consent to the disclosure.

### 4.2 International Data Transfers

The Rebilly Websites and Service are provided and hosted in the United States. If you are using the Website or Service from outside the United States, please be aware that your information may be transferred to, stored, and processed by Rebilly in our facilities and by those third parties with whom we may share your personal information, in the United States and other locations including Canada and Barbados, where we have offices. These countries may have data protection laws that are different to the laws of your country.

However, we have taken appropriate safeguards to require that your personal information will remain protected in accordance with this Notice. These include implementing the European Commission's Standard Contractual Clauses for transfers of personal information between our group companies, which require all group companies to protect personal information they process from the EEA in accordance with European Union data protection law. Our Standard Contractual Clauses can be provided upon request. We have implemented similar appropriate safeguards where legally required with our third party service providers and partners and further details can be provided upon request.

### 4.3 Legal basis for processing personal information (EEA visitors only)

If you are resident in or a visitor from the EEA, our legal basis for collecting and using the personal information described above will depend on the personal information concerned and the specific context in which we collect it. In most cases we use personal information: where we need it to perform a contract with you; where the processing is in our legitimate business interests; or, where required by applicable law, we have your consent to do so. In some cases, we may have a legal obligation to collect personal information from you. Typically, our legitimate interests include: (i) providing, improving and personalizing our Website and Services; (ii) managing our relationship with you; and (iii) conducting our marketing activities.

If you have questions or need further information about the legal basis we rely on to collect and use your personal information, please contact us using the contact details provided under the [Contact Us](#410-contact-us) section of this Notice.
The data controller of your personal information is typically Rebilly, Inc.

## 4.4 Your data protection rights

Where we are acting as a controller, and depending on your location and subject to applicable law, you may have the following rights with regard to the personal information we control about you:

- You can access, correct, update, delete, and deactivate your personal information through the Website by signing in to your account and editing your information as desired. You can also contact us at help@rebilly.com.
- In addition, if you are a resident of or visitor from the EEA, you can object to processing of your personal information, ask us to restrict processing of your personal information or request portability of your personal information, sent to you by portable electronic format or by mail, in accordance to applicable law. To exercise these rights email help@rebilly.com.
- You can opt out of receiving marketing emails from us by clicking the "unsubscribe" link in the email, by emailing help@rebilly.com. If you choose to no longer receive marketing information, we may still communicate with you regarding such things as your security updates, product functionality, responses to service requests, or other transactional, non-marketing purposes.
- If we have collected and processed your personal information with your consent, then you can withdraw your consent at any time. Withdrawing your consent will not affect the lawfulness of any processing we conducted prior to your withdrawal, nor will it affect processing of your personal information conducted in reliance on lawful processing grounds other than consent.
- You have the right to complain to a data protection authority about our collection and use of your personal information. For more information, please contact your local data protection authority. Contact details for data protection authorities in EEA are available here.

### 4.5 How do we keep your personal information secure?

We are committed to security and privacy, maintaining appropriate physical, technical and administrative standards to protect the personal information that we collect. As part of this commitment, we adhere to the Payment Card Industry Data Security Standard (PCI DSS) as a Level 1 service provider. This is the payment card industry's most stringent security standard. This means that we have taken extensive security measures that include: physical, electronic, and procedural safeguards; documented security policies; use of strong encryption for data transmission; security monitoring tools; restricted access to personally identifiable information; and regular audits by independent, third party security experts.

We require all service providers to take appropriate steps to safeguard the security and privacy of your personal information. The service provider must fit into our overall security framework as part of our PCI DSS Level 1 compliance.

However, no electronic transmission over the internet or information storage technology can be guaranteed to be 100% secure, so you should take care in deciding what information you send us in this way.

### 4.6 How long do we keep your personal information?

We retain personal information we collect from you where we have an ongoing legitimate business need to do so (for example, to comply with applicable legal, tax or accounting requirements, to enforce our agreements or comply with our legal obligations).

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such data. If this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

### 4.7 Third-Party Websites and Apps

This Notice only applies to the Rebilly Website and Services. Any access to and use of any linked websites or services is not governed by this Notice, but instead is governed by the privacy policies of those third parties. We are not responsible for the information practices of such third parties.

### 4.8 Children's information

You must have reached the age of majority to register as a member of or be permitted use of the Website or Service. Any information we receive from people we believe to be under this age will be purged from our database. We do not knowingly collect personal information from children under the age of 13 or have any reasonable grounds to believe that children under the age of 13 are accessing our Website or using our Service.

### 4.9 Changes to this Notice

Rebilly will review and update this Notice periodically and will note the date of its most recent revision above. If we make material changes to this Notice, we will notify you either by prominently posting a notice of such changes prior to implementing the changes or by directly sending you a notification. We encourage you to review this Notice frequently to be informed of how Rebilly is protecting your information.

## 4.10 Contact Us

If you have any questions or suggestions regarding our Notice, feel free to contact us at help@rebilly.com or in writing at:
3801 N. Capital of Texas Hwy. E-240 #72, Austin, Texas 78746, USA

# Rebilly news, features, and updates for May 2024

Hello, and welcome to the May edition of the Rebilly news, features, and updates blog.

## New developer 'Get started' guides

This month we added new developer 'get started' guides to help you get up and running with Rebilly.

These end-to-end guides are specifically designed for a developer audience.
They provide a comprehensive overview of how to integrate Rebilly into your website or checkout flow.
The guides include interactive, step-by-step instructions with detailed code samples and fully functional examples.
To try them out, see [Get started](/docs/dev-docs#get-started).

We value your feedback and encourage you to share your experiences and suggestions to help us improve our guides and better meet your needs.
To provide feedback on any Rebilly documentation, use the 'Was this helpful?' option at the bottom of the page.

## New payment gateway integrations

- Added support for the [PayU payment gateway](/gateways/payu).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.
If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Lower overhead: subscription products vs. subscription services

A subscription platform can be successful for a wide variety of businesses, but how to keep costs low will depend on the product or service offered.
[Netflix](http://www.netflix.com) and a subscription snack food box need to utilize different tactics to lower overhead.
Establishing a program plan before signing up the first subscription is vital to long-term success.
Look to existing successful programs for tips on how to keep costs low and begin a successful subscription business.

## Service Updates

A company offering a recurring service has an easier job at creating subscription billing programs.
Content updates are the key to attracting and retaining subscribers.

Netflix is a prime example of this model.
For a monthly subscription, customers get access to either DVD rentals or instant streaming — or both.
The streaming service is more profitable for Netflix, due to the lack of physical product, and the company has promoted instant subscriptions by changing up the movies and shows offered.
Content cycles on and off of Netflix, which means that customers need to watch a favorite program before it goes away.
And the fresh content keeps customers coming back for more.

## Tailored Products

Product-based companies have a tougher brainstorming period than services.
The presence of physical products requires careful planning to keep inventory down and subscription retention high.

[NatureBox](https://naturebox.com/) is a subscription snack box.
Each month, subscribers are sent a box of five or six full-sized snacks.
Choosing food for others is dangerous due to a wide variety of preferences — and food allergies — so NatureBox allows customers to design the box ahead of shipment.
The company can still limit the number of products offered to keep down inventory but also deliver exactly what a customer wants.
NatureBox can use Netflix’s model of cycling by doing away with unpopular products and promoting seasonal or limited-time snack options.

## Combo Approach

Companies with both services and products can create a cross-promotion plan without alienating customers by seeming too pushy.
One aspect of the business will usually be in the forefront while the other is an optional or supplemental aspect.
ProWritingAid is an online grammar and spell checker.
While the scan offered will help most writers edit a work, ProWritingAid offers another option for those who need more help.
Users can press a button and get a price quote on having a human proofreader work on the text.
Many users won’t use that option, but by using freelance proofreaders rather than full-time employees, ProWritingAid could keep its overhead low while picking up the occasional service customer.

## Set up subscriptions

Billing provided by a software as a service, or SaaS, places the day-to-day payment maintenance in the hands of a capable third-party processor.
This leaves the subscription company more time to develop programs and cycle through new products or content.

**Not sure where to start when it comes to finding a subscription billing company that fits your needs?****span**  Download our free Six Must-Haves guide, which covers the features you need in a subscription billing service, why you need them, and comes with a bonus feature checklist:

# Rebilly news, features, and updates for August 2021

Team Rebilly is constantly working hard to improve your user experience.
In the last month, we’ve added several new integrations and updated a few features.
Here’s a further look at what has changed:

## New integrations

- We integrated with [PPRO](https://www.rebilly.com/gateways/ppro) which can support merchants doing business in Czechia, Poland, and Germany, and adds three alternative payment methods: Blik, PayU, and Giropay.
- We expanded our current integration with [CCAvenue](https://www.rebilly.com/gateways/ccavenue) to add support for recurring payments.

_Need a gateway integration that’s not on [our list](https://www.rebilly.com/gateways/)?
Follow our [new integration request guide](/docs/settings/integration-requests) and submit your request._

## New features

This month we've added additional flexibility to our invoice functionality to better accommodate more real world scenarios, such as: upgrades, downgrades, pricing changes, and customized orders.

[Edit an invoice](/docs/data-tables/manage-invoices#edit-an-invoice).

Manually add, update, or delete an item from an unpaid invoice.

[Modify subscription items or settings](/docs/data-tables/manage-subscriptions#modify-subscription-items-or-settings)

You can now change the items on a subscription for any unpaid or upcoming invoice, including:

1. Adding or removing items
2. Changing the quantity of existing invoice items
3. Editing the pricing plan for new or existing items

_Have any questions on these or future updates?
[Shoot us a message](https://www.rebilly.com/support/) and we’ll be happy to help!_

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) to see what you're missing.**

# Review AML hits

AML checks can return more than one hit.
Each hit is one record from an AML list.
During review, record a confirmed match or a false positive on each hit.
The check status is calculated from those decisions.

KYC and AML features are available as add-ons to your Rebilly account.
To activate, [contact Rebilly](/support/).

## How check status is calculated

| Hit decisions | Check status |
| --- | --- |
| At least one hit has no decision yet | `pending-review` or `in-review`. A check that inherits the result of an earlier check keeps that result until a reviewer decides a hit. |
| Every hit has a copied decision, but the decisions come from more than one earlier check, or the earlier check was not reviewed, or its set of hits differs | `pending-review` until a reviewer completes the check |
| Every hit has a decision, and at least one is a confirmed match | `confirmed-match` |
| Every hit is a false positive | `false-positive` |

A confirmed-match hit cannot be stored on a false-positive check.
For information on inherited results, see [AML check inheritance](/docs/kyc-and-aml/aml#aml-check-inheritance).

## Review hits on a check

Use this process to record a decision on each hit of an unreviewed AML check.
The check stays in review until every hit has a decision.

1. In the left navigation bar, press **Data tables**, then press **KYC & AML**.
2. Press **AML unreviewed customers**, then in the **ID** column, press an AML check ID.
3. On each hit with the **Needs review** badge, press **False positive** or **Confirm match**.
4. Optionally, to apply one decision to every hit that still has no decision: In the top right of the page, press **False positive** or **Confirm match**.

To change a decision after the check is reviewed, see [Change a hit decision](#change-a-hit-decision).

## Change a hit decision

Use this process to change the decision on a hit of a reviewed AML check.
The check status is calculated again from the hit decisions.

1. In the left navigation bar, press **Data tables**, then press **KYC & AML**.
2. Press **AML reviewed customers**, then in the **ID** column, press an AML check ID.
3. On the hit, press **False positive** or **Confirm match**.

## Decisions copied from an earlier check

A later AML check can return a hit that matches a hit with a decision on an earlier check.
The decision is copied onto the new hit.
The most recent earlier check of the same customer is read first, then the most recent check of each related customer.
A related customer is treated as the same person as the checked customer.
A copied decision shows the **Copied from prior review** badge on the hit.
A false-positive result of an earlier check can also be reused as a whole, from the same customer or a related customer.
Every hit on the new check then has a copied false-positive decision.

Hits without a decision are left open for review.
A later check that only adds new hits keeps the earlier decisions and leaves the new hits open.
When two hits on the earlier check have the same identifying details but different decisions, neither decision is copied, and both hits come back open.

When every hit on the later check has a copied decision, the check can still wait for a reviewer.
That happens when the earlier check was not reviewed, when the set of hits changed, or when the decisions come from more than one earlier check.
To complete it, press **False positive** or **Confirm match** at the top of the page, or press a decision on a hit.

## Example

A recurring check for a customer named John Smith returns four hits.
Two lookalikes were marked false positive on the most recent earlier check, and those decisions are copied onto hits 1 and 2.
Hits 3 and 4 are open, with neither **False positive** nor **Confirm match** selected.
The reviewer presses **Confirm match** on hit 3.
The check stays in review because hit 4 has no decision.
The reviewer presses **False positive** on hit 4.
Every hit has a decision, and one is a confirmed match, so the check status is `confirmed-match`.

When you export AML checks from data tables, the hits column includes the decision on each hit.

## Related topics

- [AML](/docs/kyc-and-aml/aml)
- [Manage AML](/docs/data-tables/manage-aml)
- [Review an AML check](/catalog/all/aml/postamlcheckreview)

# Rebilly news, features, and updates for December 2024

Hello, and welcome to the December 2024 edition of the Rebilly news, features, and updates blog.
We are excited about the opportunities that await us in 2025 and look forward to sharing more innovations and updates with you.
Wishing you a joyful and prosperous New Year! 🎉

## Docs

### User interface guides

We added a new section to the docs that describes how to use the Rebilly User Interface (UI).
These guides provide step-by-step instructions on getting started with Rebilly, including basic integration that uses the Rebilly UI only, without any code, as well as instructions on how to create automations and more.
For more information, see [User interface guides](/docs/tutorials/tutorials/).

### Meetup blog

In 2024, Rebilly went to Montenegro for our annual company meetup.
We had a blast!
Check out the [Montenegro 2024 blog post](/blog/montenegro-2024).

## New payment gateway integrations

- Added support for the [Pay.com payment gateway](/gateways/paycom).
- Added support for the [Limepay payment gateway](/gateways/limepay).
- Added support for the [Tabby payment gateway](/gateways/tabby).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.
If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Rebilly news, features, and updates for January 2022

We're already a month into 2022 and Team Rebilly has several new updates, including new integration support and updated payment methods!
Take a peek at what has changed:

## New integrations

- We added support for ACH payments via the [BlueSnap payment gateway](https://www.rebilly.com/gateways/bluesnap).
- We added support for the [MaxiCash payment gateway](https://www.rebilly.com/gateways/maxicash).
- We added support for the [WesternUnion payment gateway](https://www.rebilly.com/gateways/westernunion).
- We added [POLi](https://www.rebilly.com/payment-methods/poli) and [Rapyd](https://www.rebilly.com/gateways/rapyd) checkout support for the [Skrill payment gateway](https://www.rebilly.com/gateways/skrill).

## New features and additions

- We added support for [Apple Pay](https://www.rebilly.com/payment-methods/apple%20pay).
  For more information on how to set up, see [Set Up Apple Pay](/docs/dev-docs/setup-apple-pay)
- We added "Shipping rates" as a replacement for "Shipping zones".
  For more information, see [Shipping](/docs/settings/shipping).
- We added the option to add detailed fee information to transactions.
  [Use fees to reconcile transactions with applicable fees and discount rates](/docs/settings/fees).
- We have made The Rebilly Instruments library accessible on a Content Delivery Network (CDN).
  For more information, see [Integrate embedded payment forms](/docs/dev-docs/get-started-integrate-payments).
- We added a new property to the Rebilly Instruments JavaScript library, which returns the version of the library.
  For more information, see [RebillyInstruments.version](/docs/dev-docs/reference-rebilly-instruments#rebillyinstrumentsversion).

**Need a gateway integration** that’s not on [our list](../../gateways/)?
Follow our [new integration request guide](/docs/settings/integration-requests) and submit your request.

_Have any questions on these or future updates?
[Shoot us a message](https://www.rebilly.com/support/) and we’ll be happy to help!_

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) to see what you're missing.**

# Tags

This topic describes how to use tags in Rebilly.
Use tags to organize and categorize customers, AML checks, or KYC documents based on keywords.

To tag or view KYC documents or AML checks, you must activate the Rebilly KYC add-on.
To activate KYC, [contact Rebilly](/support/).
For more information, see [KYC and AML](/docs/kyc-and-aml).

To use tags:

1. [Create one or more tags](#create-a-tag).
2. Select from the following:
    - [Manually tag or untag customers, AML checks, or KYC documents](#manually-tag-or-untag).
    - [Automatically tag or untag customers](/docs/automations/automated-tagging#create-a-tag-automation).
3. [View tagged customers, AML checks, or KYC documents](#view-tagged-customers-aml-checks-or-kyc-documents).

## Create a tag

Use this process to manually create customer, AML check, or KYC document tags.

1. In the left navigation bar, press **Settings**.
2. In the **Management** section, press **Tags**.
3. In the right of the page, press **Create tag**.
4. In the **Name** field, enter a name for the tag.
5. In the **Type** dropdown, select from the following:
    - Create a customer tag: Select **Customer**.
    - Create a KYC document tag: Select **KYC document**.
    - Create an AML check tag: Select **AML check**.
6. Press **Create tag**.

## Manually tag or untag

This section describes how to manually add tags to customers, AML checks, or KYC documents and use tags to filter associated data in [Data tables](/docs/data-tables/data-tables).

### Tag or untag customers

Use this process to manually tag or untag customers.

To automatically tag or untag customers based on the occurrence of a specific event, see [Create a tag automation](/docs/automations/automated-tagging#create-a-tag-automation).

1. In the left navigation bar, press **Data tables**, then press **Customers**.
2. In the **Name** column, press a customer.
3. Select from the following:

  **Tag a customer**

    1. On the left of the page, under the customer's address, press **+ Add tag**.
    2. Press the input field and select one or more customer tags.
    3. Press **Apply**.
  **Untag a customer**

    1. On the left of the page, under the customer's address, locate the tag.
    2. On the right of a tag, press **Close s**.

### Tag or untag KYC documents

Use this process to manually tag or untag KYC documents.

1. In the left navigation bar, press **Data tables**, then press **KYC & AML**.
2. Depending on where the document is located, press **Unreviewed documents**, **Reviewed documents**, or **Documents in review**.
3. In the **ID** column, press a KYC document.
4. Scroll to the bottom of the page, then select from the following:
    - Add tags: In the **Tags** dropdown, select one or more tags.
    - Remove tags: In the **Tags** dropdown, on the right of the tag, press **Close s**.
5. Depending on the review status of the document, press **Update & reject document** or **Update & accept document**.

### Tag or untag AML checks

Use this process to tag or untag AML checks.

1. In the left navigation bar, press **Data tables**, then press **KYC & AML**.
2. Depending on where the AML check is located, press **AML reviewed customers** or **AML unreviewed customers**.
3. In the **ID** column, press an AML check.
4. In the top of the page, under the AML check ID, select from the following:
    - Add tags: Press **+ Add tag**, add one or more tags, then press **Apply**.
    - Remove tags: On the right of a tag, press **Close s**.

## View tagged customers, AML checks, or KYC documents

Use this process to view and group tagged customers, AML checks, or KYC documents in [Data tables](/docs/data-tables/data-tables).

1. Select from the following:

  **View tagged customers**

    1. In the left navigation bar, press **Data tables**.
    2. Depending on the information you want to filter, press **Customers**, **Payments**, or **Billing**.
  **View tagged AML checks**

    1. In the left navigation bar, press **Data tables**.
    2. Press **AML reviewed customers** or **AML unreviewed customers**.
  **View tagged KYC documents**

    1. In the left navigation bar, press **Data tables**, then press **KYC & AML**.
    2. Press **Unreviewed documents**, **Reviewed documents**, or **Documents in review**.
2. In the top right of the table, press **Filter**.
3. Press **Add filter**.
4. In the **Filter** dropdown, type `Tags` and select it.
5. In the **Operation** dropdown, select a condition.
6. In the **Value** dropdown, select or add tags.
7. Press **Apply filter**.
8. Press **Save**.
9. Optionally, to create a new segment based on the applied filters:

    1. Press **Save segment as**, enter a name for the new segment.
    2. Press **Save**.
10. Optionally, to export the filtered data as a CSV file: In the top right of the page, press **Export**.

# Rebilly Blog Grand Opening

Rebilly has been evolving for years.
We’re launching our blog to make it easy for our team to publish articles.
We plan to publish articles about a variety of topics including:

- Subscription economy
- Product features
- Behind the scenes in the development of Rebilly

On that note, we’ve opted to create our own light blogging software.
We wished to host our content on www.rebilly.com, and as such wouldn’t use any of the standard options for security reasons.
So, our blog doesn’t have all of the bells and whistles you may be used to, but we’ll add new blog features as appropriate.
If you care to comment, please tweet to @rebillyinc hashtag #grandopening.

# Subscriptions

A subscription is a recurring item in an order.
It is a charge for a product or service that is billed at regular intervals, such as monthly or annually.
These periods are referred to as service periods.
An invoice is generated for each service period.
Example: A monthly pre-paid subscription to an internet service provider.

A subscription item is active while the order that contains it is active.
Pause, cancel, and reactivate apply to the order, and every subscription item in that order follows the change.
A single subscription item cannot be paused, canceled, or reactivated on its own.

This topic describes the current order model.

In the legacy order model, an order represents a subscription.
Items on that order use the same recurring interval, the same trial, and the same anchor for the service period.
The `billingStatus` field contains the status of the most recent invoice.
If the order has no recent invoice, `billingStatus` is `unpaid`.

In the current order model, a subscription item does not have a separate status.
An order that contains subscription items does not include `billingStatus`.
Subscription items can use different billing periods if the anchors for the service period are compatible.
All subscription items on an order use the same trial.
For more information, see [Legacy orders model](/docs/glossary#legacy-orders-model).

Renewal charges are Merchant-Initiated Transactions (MIT).
For CVV, stored credentials, and related API fields, see [Customer-initiated and merchant-initiated transactions](/docs/dev-docs/customer-initiated-and-merchant-initiated-transactions).

By default, if `delinquencyPeriod` is not set or is `null`, an order that contains subscription items remains active when payments fail.
You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders.
For more information, see [Configure automatic cancellation of delinquent orders](#configure-automatic-cancellation-of-delinquent-orders).

## Subscription status

The statuses in this section describe an order that contains subscription items.
A subscription item has no status.

Example: A monthly order for an internet service that is charged at 20 USD per month.

`status` describes the state of the order.
The following are all statuses.

| **Status** | **Description** |
| --- | --- |
| `pending` | A customer signs up for an order that contains subscription items. |
| `active` | A customer pays the first invoice for a new order, the order `startTime` is exceeded, or, for a free trial, the customer's payment instrument is verified. |
| `canceled` | A customer cancels an order that contains subscription items. To cancel the order, the order must be in an active or paused state. The order remains canceled until the time remaining on the last paid service period expires. The state then changes to churned. |
| `churned` | The time remaining on the last paid service period expires. The customer is no longer subscribed to the service, but can still reactivate the order. |
| `paused` | A customer or a merchant pauses the order. Every subscription item in the order is paused with it. |
| `completed` | The service period of the order is concluded. |
| `trial-ended` | The trial period of the order has ended. This status is exclusive to a trial-only order. |
| `voided` | There is an issue with the order and you, or the customer, choose not to activate it. |
| `abandoned` | A pending order is not activated and the `abandonTime` is reached. The order is automatically marked as abandoned. |

### All order status transitions

The following diagram describes all states of an order that contains subscription items.

```mermaid
graph LR;
    A(Pending) --> |Invoice is paid,<br/>or payment instrument<br/>is verified| B(Active)
    A(Pending) --> |Order not activated<br/>and voided by API| Z(Voided)
    A(Pending) --> |Order not activated<br/>and automatically abandoned| X(Abandoned)
    B --> |Trial-only period ended| C(Trial-ended)
    B --> |Cancels order| D(Canceled)
    B --> |Pauses order| E(Paused)
    B --> |Service period<br/>completed| F(Completed)
    D --> |Paid service<br/>period expired| G(Churned)
    E -.-> |Resumed| B
    D -.-> |Reactivated| B
    G -.-> |Reactivated| B
```

### Trial-only subscription

This section describes the status of a trial-only order that contains a subscription item.

```mermaid
%%{init: {"flowchart": {"htmlLabels": false}}}%%
graph LR;
    A(1 Pending) --> |Payment instrument<br/>is verified, or charged,<br/>for the trial.| B(2 Active)
    B --> |Trial is concluded| G(3 Trial ended)
```

1. A customer signs up for a trial-only order that contains a subscription item.
  The order is `pending`.
2. The customer verifies a payment instrument, the customer's payment instrument is charged, or the order `startTime` is exceeded.
  The order is `active`.
3. The trial period of the order ends.
  The order is `trial-ended`.
  When the trial ends, the customer can continue the subscription item with recurring billing or stop using the product.

To convert a `trial-ended` trial-only order that contains a subscription item to recurring billing without restarting the trial, create a change quote.
When the quote is accepted, the order that contains the subscription item is `active` and recurring billing begins.
For more information, see [Quotes](/docs/dev-docs/quotes).

### Paused order

This section describes the states of a paused order.
For more information, see [Pause orders](/docs/data-tables/manage-subscriptions#pause-orders) or the [Pause a subscription](/docs/dev-docs/api/orders-(legacy)/postsubscriptionpause/) API operation.

```mermaid
%%{init: {"flowchart": {"htmlLabels": false}}}%%
graph LR;
    A(1 Pending) --> |Invoice is paid| B(2 Active)
    B --> |Pauses order| C(3 Paused)
    C -.-> |Resumes order| B
```

1. A customer signs up for an order that contains subscription items.
  The order is assigned the `pending` status.
2. The customer pays the first invoice.
  The order is assigned the `active` status.
3. The customer pauses the order.
  The order is assigned the `paused` status.
  Every subscription item in the order is paused.
4. The customer resumes the order, or the pause end date is reached and the order resumes.
  The order is assigned the `active` status.

### Canceled order

This section describes the states of a canceled order.

```mermaid
%%{init: {"flowchart": {"htmlLabels": false}}}%%
graph LR;
    A(1 Pending) --> |Invoice is paid| B(2 Active)
    D --> |Paid service period expired| C(4 Churned)
    B --> |Cancels order| D(3 Canceled)
    D -.-> |Reactivates order| B
    C -.-> |Reactivated| B
```

1. A customer signs up for an order that contains subscription items.
  The order is assigned the `pending` status.
2. The customer pays the first invoice.
  The order is assigned the `active` status.
3. The customer cancels the order.
  The order is assigned the `canceled` status.
  The order keeps this status until the time remaining on the last paid service period expires.
  The customer is still subscribed to the service and can reactivate the order.
4. The time remaining on the last paid service period expires.
  The order is assigned the `churned` status.
  The customer is no longer subscribed to the service, but can still reactivate the order.

### Abandoned order

This section describes the states of an abandoned order.

Use the `abandoned` status to differentiate between an order that is voided and a pending order that is abandoned because it is not activated.

1. A customer signs up for an order that contains subscription items.
  The order is assigned the `pending` status.
2. The order is assigned an `abandonTime` value when the order is created, or from the organization billing settings.
3. The abandon time is reached, and the order is assigned the `abandoned` status.
  Associated invoices are voided.

### Completed order

This section describes the states of a completed order.

```mermaid
%%{init: {"flowchart": {"htmlLabels": false}}}%%
graph LR;
    A(1 Pending) --> |Invoice is paid| B(2 Active)
    B --> |Service period is concluded| C(3 Completed)
```

1. A customer signs up for an order that contains subscription items.
  The order is assigned the `pending` status.
2. The customer pays the first invoice.
  The order is assigned the `active` status.
3. The service period of the order is concluded.
  The order is assigned the `completed` status.
  From this state, the customer can begin a new order.

## Manage subscriptions

This section describes how to manage subscriptions.

For more information on the UI, see [Manage billing](/docs/data-tables/manage-billing).

### Service period anchor, billing timing, and invoice time shift

The following properties are used to configure subscriptions:

- Service period anchor: Used, in conjunction with the start time, to calculate the service period.
- Billing timing: Used to determine when, relative to the service period date, the invoice is issued.
  Billing timing controls whether the service is prepaid in advance or postpaid in arrears.
  In most scenarios, the service period anchor is aligned with the billing period.
  For example, the service period ends on the 1st of the month, and is billed on the 1st of the month.
- Invoice time shift: Used to adjust invoice issue and due date when billing must occur before the service period changes.
  For example, rent must be paid in advance, so the invoice must be in advance of the billing date.
  For more information, see [Invoice time and due time shift](/docs/settings/products-and-pricing#invoice-time-and-due-time-shift).

If subscription items are changed, the recurring interval is updated based on the new item plans.
An item that keeps its plan and quantity also keeps its service period anchor.
Items with a new plan or quantity use the service period anchor from the plan.
In the legacy order model, all items must use the same service period anchor.
The same rules apply when you reactivate an order with new items.

To keep a trial-only order in trial-only, set the renewal policy to `retainTrialOnly`.

If the renewal policy is `retainTrialOnly` or `retainTrialThenRecurring`, the new items keep the trial end time of the order.
The trial ends when the renewal policy is `resetToRecurring` or `retainRecurring`.

If the order specifies a trial end time and is not in trial, the new items use the specified trial end time.
If no trial end time is specified for the order, the new items use the trial period from the plan.

### Subscription renewals

Rebilly automates the scheduling and generation of renewal invoices.
If `autopay` is active, the payment against the invoices is scheduled automatically.
To stay informed on changes to the order, or when invoices get paid, see [Webhooks](/docs/dev-docs/webhooks-configuration).

Alternatively, use the UI to send email notifications.
[Create event-based email notifications](/docs/automations/email-notifications#create-event-based-email-notifications) using the invoice paid and order activated events.

### Cancel an order

Canceling an order cancels every subscription item in that order.

Select from the following cancellation options:

- Use the API to cancel an order — see [Cancel an order](/docs/data-tables/manage-subscriptions#change-cancellation-reason).
- Use the UI to manually cancel an order — see [Cancel order](/docs/data-tables/manage-subscriptions#cancel-a-subscription).

### Edit subscription details

All subscription items can be edited or updated.
For more information, select from the following:

- Use the UI to edit subscription items or settings — [Modify subscription items or settings](/docs/data-tables/manage-subscriptions#modify-subscription-items-or-settings).
- Use the API to change order items — [Change order items](/docs/dev-docs/api/orders/postorderitemschange/).

### Configure automatic cancellation of delinquent orders

Use this process to configure the automatic cancellation of an order that contains subscription items if it is not paid within a specified length of time.

The delinquency period is the length of time after which an order with a past-due invoice is automatically canceled.
The value uses the ISO 8601 duration format.
Example: `P30D` for 30 days.
Delinquency time is calculated for each invoice using the invoice due time and the delinquency period of the order.

If the delinquency period value is `null`, the order does not change state and remains active.
You must explicitly configure the delinquency period to enable automatic cancellation of unpaid orders.

Use the following options to manage delinquency periods:

- When creating an order:

    - Set the delinquency period using the `delinquencyPeriod` parameter and the [create an order API operation](/catalog/all/orders/postorder#orders/postorder/t=request&path=&d=0/delinquencyperiod).
    - Deactivate the delinquency period by passing a `null` value in the `delinquencyPeriod` parameter and the [create an order API operation](/catalog/all/orders/postorder#orders/postorder/t=request&path=&d=0/delinquencyperiod).
- When updating an active order:

    - Set the delinquency period using the `delinquencyPeriod` parameter and the [upsert an order API operation](/catalog/all/orders/putorder#orders/putorder/t=request&path=&d=0/delinquencyperiod).If you add a delinquency period to an active order, it is applied to all new invoices created for the order.
      It is not applied to the unpaid and past-due invoices.
    - To apply a delinquency period to unpaid invoices, set the `delinquencyTime` to the current time plus your desired delinquency period.
      For more information, see the `delinquencyTime` parameter in the [upsert invoice API operation](/catalog/all/invoices/putinvoice#invoices/putinvoice/t=response&c=200&path=delinquencytime).

## Related resources

- [Orders API operations](/docs/dev-docs/api/orders/)
- [Invoices API operations](/docs/dev-docs/api/invoices/)

# Automation reports

This topic describes how to view and use automation reports.

Use automation reports to view and interact with detailed automation data.

## View events triggered reports

Use this process to analyze data on events that have been triggered over a period of time.

1. In the left navigation bar, press **Reports**.
2. In the **Automation reports** section, press **Events triggered**.
3. In the top right of the page, press the date picker, then select a date range.

## View rules matched reports

Use this process to analyze data on rules that have been matched over a period of time.

1. In the left navigation bar, press **Reports**.
2. In the **Automation reports** section, press **Rules matched**.
3. In the top right of the page, press the date picker, then select a date range.

# Customize tables

This topic describes how to customize how data is displayed in data tables.

## Edit or reorder columns in a table

Use this process to edit or reorder columns in a data table.

1. In the left navigation bar, press **Data tables**, then press **Customers**, **Payments**, **Billing**, **Logs**, or **KYC & AML**.
2. In the top right of the table, press **Edit columns**.
3. Select an option:

  **Edit or change columns**

    1. In the top of the new page, press **Select columns**.
    2. Select the columns you want in the table.
  **Reorder columns**

    1. In the top of the new page, press **Arrange columns**.
    2. Drag the items to arrange the order.
  **Use or reset columns to default values**

    1. Scroll to the bottom of the page, then press **Use defaults**.
    2. Select an option.
4. Press **Apply**.

## Adjust table column width

Use this process to adjust the table column width of a data table.

1. In the left navigation bar, press **Data tables**, then press **Customers**, **Payments**, **Billing**, **Logs**, or **KYC & AML**.
2. In the table header, select from the following:
    - To resize a column manually: drag the lines that divide the columns.
    - To fit a column to its content: press the line on the right side of the column twice.
      The column expands or shrinks to fit the widest cell in that column.

## Adjust table sort order

Use this process to change the sort order of content that is displayed in a data table.

1. In the left navigation bar, press **Data tables**, then press **Customers**, **Payments**, **Billing**, **Logs**, or **KYC & AML**.
2. Select a segment, then in the table header, press a column heading.
  Sorted table headings display this icon: **Caret up**.
  This icon indicates that a sort is applied, and it displays the sort order.
  To remove a sort, press the table header until the sort icon is not displayed.

## Refresh the table

Use this process to manually refresh the content that is displayed in a data table.

1. In the left navigation bar, press **Data tables**, then press **Customers**, **Payments**, **Billing**, **Logs**, or **KYC & AML**.
2. In the top right of the table, press **Refresh**.

## Adjust number of items displayed in a data table

Use this process to adjust the number of items that are displayed in a data table.
By default, 20 results are displayed on each page.

1. In the top right corner of the page, press your initials to open your user profile.
2. In the menu, press your name.
3. In the **Data tables report limit** section, press the **Results per page** dropdown, then select the number of items to display.

## Apply a filter to data table content

Use this process to filter data table content.

To add more than one filter to a data table, repeat the following process.

To filter data table content by custom fields, see [Filter by a custom field](/docs/settings/custom-fields#filter-data-table-content-by-custom-fields).

1. In the left navigation bar, press **Data tables**, then press **Customers**, **Payments**, **Billing**, **Logs**, or **KYC & AML**.
2. Select a segment, then in the top right of the table, press **Filter**.
3. Press **Add filter**.
4. In the **Filter** dropdown, select a value to filter.
5. In the **Operation** dropdown, select a condition.
6. In the **Value** field, enter or select values.
7. Press **Apply filter**.
8. Select an option:

  **Save the filtered data to the active segment**

  Press **Save**.

  **Create a new segment based on the filtered data**

    1. Press **Save segment as**.
    2. Enter a name for the new segment, then press **Save**.
      A segment is a filtered view of the data set.
      Depending on where the filtered view is created, new segments are displayed in **Customers**, **Payments**, **Billing**, **Logs**, or **KYC & AML**.
      For more information, see [Segments](/docs/settings/segments).

## Set relative and absolute time filters

To filter data table and segment content based on a period of time that is relative to today's date, or based on a specific date range, see [Set relative time filters](/docs/data-tables/set-relative-time-filters).

## Export table data as a CSV file

Use this process to export data that is contained in a data table to a CSV file.

1. In the left navigation bar, press **Data tables**, then press **Customers**, **Payments**, **Billing**, or **KYC & AML**.
2. Select a segment.
3. In the top right of the page, press **Export**, then press **Export as CSV**.
  When the report is generated, a notification is displayed in the top right corner of the page.
4. In the top right corner of the page, press **Alerts**, then press the file to download.

## Related topics

- [Set relative time filters](/docs/data-tables/set-relative-time-filters)
- [Filter by a custom field](/docs/settings/custom-fields#filter-data-table-content-by-custom-fields)
- [Segments](/docs/settings/segments)
- [Manage logs](/docs/data-tables/manage-logs)
- [Manage billing](/docs/data-tables/manage-billing)
- [Manage payments](/docs/data-tables/manage-payments)
- [Manage KYC](/docs/data-tables/manage-kyc)

This is an interactive example of a Rebilly hosted payment form.
Press **Process payment** to see the hosted form.
To complete the payment flow, enter any 3-digits for the CVC number.
For more test cards, see [Test cards, IBANs, and ACH details](/docs/tutorials/test-payment-cards).

**iframe**

# Integrate a hosted payment form

This guide describes how to integrate a hosted payment form into your website using [Express JS](https://expressjs.com/en/starter/installing.html) and [Rebilly JS SDK](https://www.npmjs.com/package/rebilly-js-sdk).
Use payment forms to process payments from your customers.

Hosted payment forms simplify the process of accepting payments.
Rebilly hosts your payment forms and ensures that your payments process is secure and [PCI-compliant](/docs/glossary#payment-card-industry-data-security-standard-pci-dss).

Download full app

**Prerequisites**

To complete this guide, you must have a website ID, an organization ID, a publishable API key, a product ID, and a pricing plan ID.

You also must have at least one payment gateway configured in your Rebilly account.
If you are testing in the sandbox environment, a test payment gateway called `TestProcessor` is already configured.

To obtain your IDs and API keys, and to create a product and pricing plan, see [Set up your environment](/docs/dev-docs/set-up-environment).
If you have already created a product and pricing plan, and know how to obtain your IDs and API keys, skip this step and continue to [Step 1. Set up the server](#step-1-set-up-the-server).

## Step 1. Set up the server

Set up an Express node app to authenticate the client.

1. Install the required dependencies in your project directory:

  ```bash
  npm install express rebilly-js-sdk --save
  ```
2. Declare Express and the Rebilly SDK as dependencies.

Set up an Express.js web server that serves static files from a 'client' directory and can parse JSON request bodies.

Provide your secret API key, Organization ID, and website ID.
For more information, see [Prerequisites](/docs/dev-docs/get-started-integrate-hosted-payments#prerequisites).

Set up the Rebilly JS SDK, and provide sandbox mode and API key.

Define a route for handling HTTP GET requests to the `/index` endpoint that redirects to `index.html`.
For more information, see [Express example](https://expressjs.com/en/starter/hello-world.html).

Define route for handling HTTP POST requests to the `/payment` endpoint, and extract parameters from `customerId`, `currency`, `amount`, and `redirectUrl` from the request body.
These values are used to create a transaction.

> **Note:** `redirectUrl` is the URL that the customer is redirected to after a payment is completed.

Create an asynchronous transaction that sends data to the Rebilly API and waits for a response.

Check if the response includes an `approvalUrl`.
This value is the hosted payment form.

If this value is included in the response, redirect the client to the URL to complete the payment.

If this value is not returned, send the transaction details back to the client.

If the Rebilly API returns an error, such as an invalid API key, log the error and return a JSON response with the error message and status code.
Without this step, Express returns an HTML error page that the client cannot parse.

Start an Express server on port `3000` and log a message to the console.

## Step 2. Set up the HTML page

For this guide, `index.html` and `client.js` must be placed in a `client` directory in the root of your project.

Add `client.js` and the stylesheet to the HTML page.

Add div to the HTML page and assign it the ID `app`.
This is where the payment form will be displayed.

Display the transaction parameters in a code snippet.

Add a button to trigger payment processing, and a paragraph with the ID `error` to display error messages.

## Step 3. Set up the client

Locate the button element with the ID `process-payment` in the HTML form.

Add an event listener to the button element to listen for press events.

Disable the button to prevent multiple clicks.

Send a POST request to the `/payment` endpoint.

Provide payment data.

Parse the JSON response from the server.
If the response is not successful, or does not contain an `href` value, throw an error.

Redirect the user to the provided URL.

Log any errors that occur during the process, and display the error message in the page.

Re-enable the button after the request is complete.

## Step 4. View the payment form

This section describes how to view the hosted payment form in a web browser.

Run `server.js`.
When the server is running, open a browser and visit `http://localhost:3000`.

For more information, see [Prerequisites](/docs/dev-docs/get-started-integrate-hosted-payments#prerequisites).

```bash
node server.js
```

## Next steps

- Confirm the payment result on your server: [Webhook configuration](/docs/dev-docs/webhooks-configuration).
- Test declined and 3D Secure outcomes: [Test cards, IBANs, and ACH details](/docs/tutorials/test-payment-cards).
- Switch your integration from the sandbox to the live environment: [Go live](/docs/tutorials/go-live).

# Manage credit memos

A credit memo is a record that describes an amount owed to a customer.
Similar to an invoice, a credit memo includes items, taxes, and shipping.
The total of the credit memo is subtracted from the invoice amount.
A common use case for a credit memo is to provide store credit instead of a refund.
This use case applies when a customer overpays or returns a product.

Credit memos can be created and applied to unpaid or partially paid invoices, or created directly from specific invoices.

You can allocate all or part of a credit memo amount to an invoice.
For example, a customer has a credit memo of $50 and an unpaid invoice of $100.
If $25 of the credit memo is applied to the invoice, the invoice amount is reduced to $75.
The remaining $25 of the credit memo can be applied to another invoice or kept as credit for future use.

You can apply one or more credit memos to the same invoice in a single action.
Abandoning or voiding an invoice removes credit memo allocations from that invoice.
Unused credit returns to the credit memo.
When an autopay retry schedule ends and the invoice stays open, credit stays allocated to the invoice.

## Allocate a credit memo to an invoice

Use this process to allocate an amount from a credit memo to an unpaid invoice.

1. If you have not already done so, [Create a credit memo](#create-a-credit-memo).
  Credit memos must be created before they can be allocated to an invoice.
2. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
3. In the left navigation bar, press **Data tables**.
4. Press **Billing**, **Unpaid invoices**, then select an invoice.
5. In the right of the page, press **Apply credit memo**.
6. In the **Apply credit memo** dialog, complete the following:
    1. In the **Credit memo** field, select a credit memo.
      If only one credit memo is available, it is selected automatically.
    2. In the **Amount** field, enter the amount to apply.
      The amount is prefilled with the lower of the available credit memo amount and the invoice amount due.
      The available credit memo amount displays below the **Amount** field.
      The total of all credit memo allocations cannot exceed the invoice amount due.
      The amount for each credit memo cannot exceed the available credit memo amount.
    3. To apply more than one credit memo, press **Add another credit memo**, then repeat the previous steps for each credit memo.
7. Press **Apply credit memo** or **Apply credit memos**.

## Create a credit memo

Use this process to create a credit memo.
A common use case for a credit memo is to provide store credit instead of a refund.
This use case applies when a customer overpays or returns a product.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Customers**.
3. In the **Name** column, press a customer's name.
4. In the right of the page, press **Manage customer**, then press **Create credit memo**.
5. In the **Credit memo information** section, complete the following:

    1. In the **Description** field, enter a description of the credit memo.
    2. In the **Reason** field, enter the reason for the credit memo.
6. Optionally, create a credit memo from a specific invoice:

    1. In the **Invoice information** section, select the **Create credit memo from a specific invoice** checkbox.
    2. In the **Invoice** field, select an invoice.
    3. Optionally, to view the invoice, press **View invoice details**.
7. Optionally, to link the credit memo to a transaction:

    1. In the **Transaction information** section, in the **Transaction** field, select a transaction.
      Only approved transactions of the customer with an amount greater than zero are listed.
      The currency of the credit memo is changed to the transaction currency.
      The credit memo items and the shipping amount that you entered are replaced with one item.
      The item is filled with the transaction amount as the unit price, a quantity of 1, no tax, and the transaction description.
      If the transaction has no description, the item description is `Transaction` followed by the transaction ID.
    2. Optionally, to view the transaction, press **View transaction details**.
8. In the **Credit memo items** section, complete the following:

    1. In the **Currency** field, select a currency.
    2. In the **Shipping amount** field, enter the shipping amount.
9. In the **Credit memo items** section, enter the following:

    - In the **Unit price** field, enter the unit price of the credit memo item.
    - In the **Quantity** field, enter the quantity of units.
    - In the **Tax amount** field, enter the total amount of tax.
    - In the **Tax description** field, enter a description of the tax.
    - In the **Description** field, enter a general description for the credit memo item.
    - In the **Invoice item** field, select an invoice item.
    - In the **Product** field, select a product.
    - In the **Plan** field, select a plan.
      Optionally, to add more items to the credit memo, press **Add another credit memo item**.
10. Press **Create credit memo**.

## Edit a credit memo

Use this process to manually add, update, or delete a line item or other information in a credit memo.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**.
3. Press **Billing**, **Credit memos**, then select a credit memo.
4. Select from the following:

  **Edit an item**

    1. On the right of the item, press **Edit s**.
    2. Update the item, then press **Update item**.
  **Delete an item**

  On the right of the item, press **Delete**.

  **Add a new item**

    1. Under **Description**, at the end of the items list, press **Add item +**.
    2. Enter the item details, then press **Add item**.

## Filter credit memos

Use this process to filter credit memos in a data table segment based on specific criteria.
For example, you can filter credit memos by customer, created time, total amount, and more.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Credit memos**.
4. At the top of the table, press **Filter**.
5. Select a filter, then press **Apply**.
6. To add more filters, press **Add filter**.

## View credit memos

Use this process to view credit memo details.
To filter credit memos, see [Filter credit memos](/docs/data-tables/manage-credit-memos#filter-credit-memos).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Credit memos**.
4. To view the details of a credit memo, select a credit memo.

## Re-allocate a credit memo

Use this process to change which invoices a credit memo is allocated to.
You can also use this process to change how much is allocated to each invoice.

This process is only for credit memos that are fully applied and have invoices that can be re-allocated.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Credit memos**.
4. Select a credit memo.
5. In the right of the page, in the **Allocation details** section, press **Re-allocate**.
6. In the left of the window, select one or more invoices to re-allocate.
7. In the right of the window, enter the amount to re-allocate to each invoice.
8. Optionally, to apply the credit memo to more invoices, press **+ Add another invoice to allocate**.
  Then specify the amount to allocate to the new invoice.
  Repeat this step to add more invoices.
9. Press **Update**.

## Download a credit memo

Use this process to download a credit memo in PDF format.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Credit memos**.
4. Select a credit memo.
5. At the bottom of the credit memo, press **Download credit memo**.

## Void a credit memo

Use this process to void a credit memo.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**.
3. Press **Billing**, **Credit memos**, then select an issued credit memo.
4. At the bottom left of the credit memo, press **Void**.

## Refund a credit memo

Use this process to refund a credit memo.

A credit memo can be refunded only if it is related to an order or invoice.
When the credit memo is refunded, the unallocated amount is used to create a refund transaction.
This transaction is created from the related order or invoice transaction.
If the invoice has multiple transactions, those transactions are refunded.
Only credit memos with an amount that does not exceed the last invoice transaction total can be refunded.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**.
3. Press **Billing**, **Credit memos**, then select an issued credit memo.
4. At the bottom left of the credit memo, press **Refund**.

# Is Rebilly for Me?

We say Rebilly is the world’s first subscription profit maximization company, meaning our product is purpose-built to help you derive greater profits from your subscription business.
But is Rebilly the right fit to manage your particular recurring billing needs?
Every business and story is of course incredibly unique, so this post will attempt to help you answer a question that you may be having: “Is Rebilly for me?”

## Do you have subscribers?

This is one of the first questions we ask when we are meeting potential clients.
Rebilly gives you the tools you need to have greater control over your subscription or recurring billing, so for Rebilly to be at its most valuable to you, you’ll need customers that pay you on a regular basis, or “subscribers.” Those payments can occur weekly, monthly, quarterly, annually, etc. — any regular cadence.

## Do you run offers?

So, you’ve got subscribers.
That alone means there’s a lot about Rebilly that would make your life easier.
But do you run offers, such as a free or discounted trial of your product?
This is a really powerful way to market to consumers, but can be trickier to manage on the payments side.
Rebilly not only makes it simple to manage your offers, but also gives you the tools you need to help manage risk involved with offering trials.

## Do you need help controlling issues related to subscription billing?

Do the words “churn” and “chargebacks” mean anything to you?
They are some of the most frustrating parts of recurring billing, which is why we’ve equipped Rebilly with several tools to help reduce involuntary churn, declines, and chargebacks.
Of course those things do still happen, which is why we’ve also created convenient and intelligent ways to automate the retry process on declines as well as the documentation process for chargebacks.

### Do you love data and testing?

Is half (or more) of the fun of your subscription business the testing and optimization you manage to reach the numbers you care about?
Maybe that’s total number of subscribers, customer lifetime value, cost per acquisition — whatever your goals, if you care about data and tracking to help make your business more successful, Rebilly is for you.
Our reporting suite gives you access to the data you want when you want it, and you can configure our reports completely to your liking.

We hope these answers gave you a greater understanding of how Rebilly can work for you.
If you read something here that resonated with you, and perhaps even helped you answer “Yep” to the question, “Is Rebilly for me?” then we hope you’ll [reach out](/contact/) soon.
We’d love to help you start maximizing your subscription profits.

# Transactions

This topic describes the transaction resource.
All payment transactions have a [type](#type), [result](#result), and [status](#status) value.
For information on how to inspect a payment transaction, see [View payment transaction details](/docs/data-tables/manage-payments#view-payment-transaction-details).

When you design checkout, stored payment card, or recurring charge flows, see [Customer-initiated and merchant-initiated transactions](/docs/dev-docs/customer-initiated-and-merchant-initiated-transactions).

## Type

The `type` value defines the type of transaction.

| Type | Description |
| --- | --- |
| `authorize` | Confirms that the payment instrument is valid, that the customer is associated with the payment instrument, and that the funds are available. For payment cards, this transaction places a hold on the customer's account for the authorized amount. An authorized transaction is valid for seven days and can be captured or voided. |
| `sale` | Combines the authorization and capture process in one transaction. A sale can be voided before settlement, and can be refunded after. |
| `void` | Reverses an authorization, capture, or sale transaction. A void can only occur before settlement, otherwise a refund must be used to credit the customer. |
| `refund` | Returns funds that had been collected from a customer's account. A refund is similar to a void, except a void must happen before the settlement of funds. On some occasions, a refund transaction can be voided. |
| `credit` | Permits payments to a customer's account that exceed a just refund. A credit is a special and rare type of transaction. It requires special permissions from your acquiring bank. |
| `setup` | Creates a payment instrument that can be used for future payments. The setup transaction performs actions from the setup instruction settings on the gateway account.    These actions are:- `do nothing`: A `setup` transaction is created and automatically marked as approved.   The payment instrument is created and no further validation takes place. - `authorize`: Creates a `setup` transaction with an associated `authorization` child transaction.   The result of the `setup` transaction matches the result of the `authorization` transaction.   The `authorization` amount is equal to the `setup` transaction amount.   For example, if `0` is sent as the amount, a `0` `authorization` is executed. - `authorize and void`: Creates a `setup` transaction with an associated `authorization` child transaction.   The result of the `setup` transaction matches the result of the `authorization` transaction.   If approved, the `authorization` transaction is immediately voided.   If the setup transaction amount is $0, a $1 authorization is created; otherwise, the setup transaction amount is used. - `Strong Customer Authentication (SCA)`: Creates two transactions, a `setup` transaction and a `3ds-authentication` child transaction, which validates the cardholder by instructing them to authenticate their card through their issuing bank.   This process is called 3D Secure (3DS) and may require the cardholder's interaction.   For more information, see [3D Secure](/docs/settings/3ds) and [Strong Customer Authentication (SCA)](/docs/glossary#strong-customer-authentication-sca). |

### View transaction details

This process describes how to view transaction details.
Select one of the following options:

**View transaction details in the Rebilly UI**

1. In the left navigation bar, press **Data tables**, then press **Payments**.
2. Select a segment, then in the top right of the table, press **Filter**.
3. Press **Add filter**.
4. In the **Filter** dropdown, select `Type`.
5. In the **Operation** dropdown, select `is in`.
6. In the **Value** field, select one or more of the following transaction types:

    - `authorize`
    - `sale`
    - `void`
    - `refund`
    - `credit`
    - `3ds-authentication`
    - `setup`
  **View declined setup transactions**

  To view detailed information, such as logs, on declined setup transactions:

    1. In the right on the page, in the **Related transactions** section, press the **Child transaction**.
    2. View detailed transaction information, interact with the **Transaction details**, **Timeline**, **Webhook logs**, and **API logs**.
7. Press **Apply filter**.
8. In the table, in the **ID** column, press a transaction.

**View transaction details in the Rebilly API**

Using the [Retrieve transactions](/docs/dev-docs/api/transactions/gettransactioncollection/) operation, in the `type` field, enter one of more of the following values separated by the `;` character:

- `authorize`
- `sale`
- `void`
- `refund`
- `credit`
- `3ds-authentication`
- `setup`

Example: `type=setup;3ds-authentication`.

## Transaction initiation types

Payment gateways distinguish between Customer-Initiated Transactions (CIT) and Merchant-Initiated Transactions (MIT).
How you collect payment details and whether CVV is required depends on which type of transaction you are processing.

Set `isMerchantInitiated` to `true` on [Create transaction](/catalog/all/transactions/posttransaction) when the customer is not present.
Rebilly sets `isMerchantInitiated` automatically for subscription rebills and similar flows.

For more information and best practices, see [Customer-initiated and merchant-initiated transactions](/docs/dev-docs/customer-initiated-and-merchant-initiated-transactions).

## Result

The `result` value defines the result of completed transactions.

| Result | Description | When your application receives this result: |
| --- | --- | --- |
| `approved` | A valid transaction is accepted by the issuing bank. | Present the customer with a confirmation page which displays the billing descriptor. |
| `declined` | A payment transaction is not approved by the issuing bank. A [reason code](#payment-gateway-response-codes-and-messages) is supplied, which describes why the transaction is declined, such as: insufficient funds, incorrect billing address or CVV, and so on. | Present the customer with a message stating that the transaction is declined. Ask your customer to retry the transaction with a different payment method. If you detect abuse, block the customer. For more information, see [Blocklists](/docs/automations/blocklists). |
| `abandoned` | A customer began payment but did not complete it within the Time To Live (TTL) window. | Trigger an abandoned cart outreach campaign. |
| `canceled` | Transaction is canceled by the merchant, or by an automation, such as a blocklist match before funds are removed from their account. | Present the customer with an option to select a different payment method. |
| `unknown` | A transaction is in process, the status changes as it is processed. | Check if the status is `waiting-approval`. If it is, within the response, in the `_links` object, locate the `approvalUrl` and direct the customer to it. |

To inspect a payment transaction using the UI, see [View payment transaction details](/docs/data-tables/manage-payments#view-payment-transaction-details).

## Status

The `status` value defines the execution status of a payment transaction.

| Status | Description |
| --- | --- |
| `pending` | Transaction is created and is queued. |
| `sending` | Request is sent to a payment gateway. |
| `completed` | Transaction is completed. |
| `voided` | Transaction authorization, capture, or sale transaction is reversed. |
| `partially-refunded` | Transaction amount is partially refunded. |
| `refunded` | Transaction amount is fully refunded. |
| `disputed` | Transaction, or transaction amount, is disputed by the merchant or customer. |

### Successful payment transaction flow

The following is a successful payment transaction status flow.

```mermaid
stateDiagram
   [*] --> Pending
   Pending --> Sending
   Sending --> Completed
```

### Error and additional processing status

If a transaction does not receive a response from the payment gateway, or if there is a long delay in the response, one of the following statuses is returned.

| Status | Description |
| --- | --- |
| `timeout` | Transaction is not completed within the payment gateway account timeout period. For more information, see [Set up a payment gateway - configure gateway account timeout](/docs/settings/set-up-a-gateway/#configure-gateway-account-timeout). |
| `conn-error` | Transaction is not completed due to a connectivity issue. |
| `never-sent` | The request is not sent. |
| `waiting-capture` | Transaction is approved with an authorization. The funds will be captured at some point in the future. |
| `waiting-approval` | The transaction requires further action from the customer before it is marked as completed. |
| `waiting-gateway` | Awaiting an approval notification from the payment gateway before the transaction is marked as completed. |
| `offsite` | Transaction initiated. The customer has been redirected to a third-party website to complete the transaction. |

## Offsite and instant transactions

- Offsite transactions: Customers must interact with a third-party website to complete a transaction.
  This interaction may be required as part of payment regulation.
- Instant transactions: No customer interaction is required to complete a transaction.

## Prevent duplicate transactions

To prevent a duplicate transaction, generate a unique ID that and pass it to the client form.
Include the ID as the `requestId` property value in your transaction request.
Only regenerate a different ID for the client form after you receive a `completed` status in the response from Rebilly.

## Payment gateway response codes and messages

The payment gateway response contains a response code and message which describe the transaction.
For example, if a transaction is declined, the message may contain information about why the transaction was declined.
For information on how to view payment gateway response codes and messages, see [View payment transaction details](/docs/data-tables/manage-payments#view-payment-transaction-details).

In Rebilly, the code and message received from the payment gateway is displayed in the 'Original message' and 'Original code' fields.

Rebilly uses a superset of the [ISO 8583 — international standard for financial transaction card originated interchange messaging](https://en.wikipedia.org/wiki/ISO_8583).
Gateway codes are mapped to ISO 8583 as part of the gateway integration process.
The standardized codes are displayed in the 'Message' and 'Code' fields.
This standardized coding enables you to use the same response codes and messages across all payment gateway integrations.

# Rebilly news, features, and updates for April 2023

Hello, and welcome to the April edition of the Rebilly news, features, and updates blog.

## New features

This month, we added the following new features.

### Improved settings configuration flow for application developers

You can now build and customize your own installation settings configuration form.
When users install your application in Rebilly, the settings configuration form is displayed, and guides them through the configuration before the installation begins.

### Quotes

We added the quotes feature and resource.
You can now provide quotes to prospective customers.
A quote is a pricing estimate for requested goods or services and can help facilitate negotiation before creating an order.

Customers can approve or reject a quote.
If approved, a new order is created automatically based on the quote.
A quote has an expiration date.
You can also recall or cancel an issued quote.
For more information, see [Create a quote](/docs/data-tables/manage-customer-payments-and-billing#create-a-quote), [Manage quotes](/docs/data-tables/manage-quotes), and the [quotes API operations](/docs/dev-docs/api/quotes/).

### User Interface (UI) text updates

We are still refining the text in the Rebilly product UI.
We strive to create the best possible experience when using our product, and the UI text is a huge part of this.
To check out our progress, [Sign in to Rebilly](https://app-sandbox.rebilly.com/).

## New payment gateway integrations

- Added support for the [USD-coin payment method](/payment-methods/usd-coin) for the [Orbital payment gateway](/gateways/orbital).
- Added support for the [Airwallex payment gateway](/gateways/airwallex).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.

If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# User management

Rebilly provides user and role management features that help you to manage user access.
When you add new users, they are associated with an organization, and only have access to data contained in that organization.

## User roles

User roles provide management of the levels of access for different user types within your organization.

For example, you could create roles for administrators, managers, and support staff.
Administrators would have full access to Rebilly, managers would have access to specific features, and support staff would have limited access.

Each role has a set of permissions that define what users can do in Rebilly.
If permissions are added or removed from a role, the permissions list for all users with that role are updated.
For more information, see [Create roles](/docs/settings/users#create-roles).

## User permissions

When you add a user, you can assign permissions based on roles, grant administrator permissions, or assign custom permissions.
When you assign custom permissions, you can use a permission preset or search for individual permissions.

To assign permissions to a new user, see [Add a new user](/docs/settings/users#add-a-new-user).
To change permissions for an existing user, see [Edit user permissions](/docs/settings/users#edit-user-permissions).

## Add new users

To add a user, see [Add a new user](/docs/settings/users#add-a-new-user).

## Manage users

Use the following processes to manage users:

- To edit user details, see [Edit user details](/docs/settings/users#edit-user-details).
- To edit user permissions, see [Edit user permissions](/docs/settings/users#edit-user-permissions).
- To check whether a user activated their account, see [Verify user account activation](/docs/settings/users#verify-user-account-activation).
- To view or delete users, see [View or delete users](/docs/settings/users#view-or-delete-users).

## Configure user profiles

To reset your password, change reporting currency, or change time zone, see [Configure your user profile](/docs/settings/users#configure-your-user-profile).
To add an authenticator app to your account, see [Add an authenticator app to your account](/docs/settings/users#add-an-authenticator-app-to-your-account).

## Related topics

- [Users](/docs/settings/users)
- [User permissions](/docs/settings/user-permissions)

# KPI segments

Use KPI segments to display visuals based on filtered data in each tile in the payments, billing, and KYC KPI pages.

For example, you can use segments to display a visual in each tile that displays the number of transactions that occur in the United States.

A maximum of three KPI segments can be active at a time.
For more information, see [Select which segments to display](/docs/kpis/kpi-segments#select-which-segments-to-display).

## Add a new KPI segment

Use this process to add new data visualizations to the tiles on a KPIs page.
You can add multiple filters to a KPI segment.

1. In the left navigation bar, press **KPIs**, then press **Payments**, **Billing**, or **KYC**.
2. At the top of the page, press **Create segment**, then press **Create new segment**.
3. In the **Filter** dropdown, select an attribute to filter.
4. In the **Operation** dropdown, select a condition.
5. In the **Value** field, enter or select one or more values to complete the filter.
6. Optionally, to add more filters to the segment, press **Add filter**.
7. Press **Save segment**.

## Manage KPI segments

Use this process to toggle visibility, remove, or select which KPI segments to display on a KPIs page.

1. In the left navigation bar, press **KPIs**, then press **Payments**, **Billing**, or **KYC**.
2. At the top of the page, locate the active segments, then select from the following:

  **Toggle visibility of an active segment**

  Select from the following:

    - To hide an active segment, press **Hide**.
    - To make a hidden segment visible, press **Visibility**.
  **Remove an active segment**

  This process removes an active segment from the page.
  To activate it again, see [Select which segments to display](/docs/kpis/kpi-segments#select-which-segments-to-display).

  On the segment, press **Close**.

  **Select which segments to display**

  A maximum of three KPI segments can be active at a time.

    1. Optionally, if three segments are active, to remove a segment: On the active segment, press **Close**.
      This removes the segment from the page.
    2. Press **Create segment**, select the segments to display, then press **Apply selection**.

## Edit a segment

1. In the left navigation bar, press **KPIs**, then press **Payments**, **Billing**, or **KYC**.
2. At the top of the page, locate the active segments, then press a segment.
3. Edit a filter, or add a new filter by pressing **Add filter**.
4. Press **Save**.

# Risk management

Rebilly provides the following automated risk management features to help you manage risk in your organization:

- [Allowlists](/docs/automations/allowlists): Exclude specific customer attribute data from risk score checks, manual blocklists, and automated blocklists.
- [Blocklists](/docs/automations/blocklists): Help prevent fraud and criminal activity.
  Blocklists are lists of customer attribute values that are blocked from buying from you.
  For example, if a customer attempts to make a purchase from you with a credit card or fingerprint that is in a blocklist, the transaction is blocked and will not be processed.
- [Risk scoring](/docs/automations/risk-scoring): Assign a risk score to a transaction based on [Risk factors](/docs/automations/risk-scoring#risk-factors).
  Use risk scoring to identify high-risk transactions and to take appropriate action.
  For example, you can automatically block a payment card if it is used in a transaction that exceeds a certain amount, or if a transaction has a high risk score.

For more information about risk management in Rebilly, see [Risk](/docs/automations/risk).

# 3 Ways Online Businesses Can Simplify Transactions

Online businesses depend on customers being able to quickly and easily pay for purchases over the Internet.
If the payment process is too complex or confusing, it can be the kiss of death for an Internet-only business.
Here are three ways businesses can simplify transactions so that customers will be eager to do business with them.

## Allow Direct Debit From Bank Accounts

Third-party payment services sometimes allow users to pay directly from their bank accounts.
It’s a good idea to sign up with this type of service because not every consumer has a credit card or is willing to put credit card numbers into an online form.
If businesses allow customers to use a third-party service to safely and securely transfer money directly from their bank account or debit card, these customers will be more likely to make a purchase.
As an added bonus, most third-party services make it easy and more convenient to pay — customers just have to press a button and sign into their accounts.
As another added bonus, this can cut down on [involuntary churn](/blog/how-to-fix-involuntary-churn/) quite a lot, as credit card expiration dates are no longer an issue.

## Set Up Automatic Payments

If a business offers monthly subscription services, setting up automatic payments makes it much easier for customers to keep using the service.
Instead of having to sign into their accounts and make a payment each month, users can sign up for auto pay and forget about it; all they have to do is make sure the money is in their account prior to the payment date.
Consumers are much more likely to make on-time payments using this type of system because it makes it so simple for them to pay.

### Use Instant Transfer Methods

If a business uses a third-party provider, it still has to depend on its bank and the customer’s bank for payment, and this transfer can take 24 hours or more to clear.
In order to simplify the payment process, consider using an instant transfer method such as wire transfers or bitcoin.
Instant transfers are superior to other payment methods because the consumer’s account is debited and the business’ credited as soon as the payment is made.

The easier online payment is, the more likely customers are to do business over the Internet.
There are many ways to simplify the payment process; the important thing is to offer flexibility and automation whenever possible so that consumers can pay in the way that’s easiest for them.

## Want more tips on optimizing your pricing?

Download our free guide:

# Bootstrap Your Subscription Business With These 14 Tools

When you’re first setting up your subscription business, the sheer amount of tools available can be overwhelming.
What do you need to get started?
What’s a must-have, and what’s a nice-to-have?
We’ve got a full list for you below, split into categories covering…

- Websites
- Payments
- Marketing
- Communication
- Shipping & Logistics

Ready?
Let’s dive in:

## Websites

First off, you need a site to direct people to — a homebase for your business where people can read your marketing content, purchase your products, and sign up for your email list.
These products will get you up and running:

### WordPress/Squarespace

WordPress (which you can use [self-hosted](https://wordpress.org/) or [hosted by WordPress](https://wordpress.com/)) is the most popular CMS for a reason.
It’s easy to learn how to use, has a huge amount of themes and integrations available, and it’s easy to find contractors who specialize in it because of how popular it is.
All of the below tools integrate with it (or, in the case of one of them, are built to work with it).
If you go with self-hosted, [Flywheel](https://getflywheel.com/) is a managed WordPress host that makes the process seamless.
If for whatever reason, WordPress isn’t for you, you might take a look at [Squarespace](https://www.squarespace.com/) as an alternative.

### Thrive Themes

[Thrive Themes](https://thrivethemes.com/) offers a suite of conversion-focused themes and plugins that can get your WordPress site up, customized, and looking great, with just a few clicks.
We’ll talk more about email marketing in a moment, but the gist of it is that you definitely want to be collecting email addresses.
One of their plugins, Thrive Leads, makes that extremely easy — it lets you create opt-in forms to add to pages, posts, and your sidebar, and run tests to see which version is most effective.

### Google Analytics

If you aren’t tracking your marketing efforts, you’re missing out.
Tracking analytics on your site lets you keep an eye on what’s working and what’s not, [letting you more effectively leverage your marketing budget](/blog/data-based-marketing-can-increase-ltv/).
[Google Analytics](https://analytics.google.com/analytics/web/) is the industry standard, and it’s free.
There is something of a learning curve in figuring out how to get the most effective data from it — [here’s a resource on how to set up ecommerce reports](https://www.monsterinsights.com/5-best-google-analytics-custom-reports-for-ecommerce/) with it.

## Payments

In addition to the subscription billing software you’re using, you’ll need at least one payment gateway.
[We _strongly_ recommend](/blog/lost-merchant-account-how-to-avoid-downtime/) having at least two payment gateways as a risk-distribution measure.
That way, if something goes wrong with one payment gateway, you can still keep collecting payments through the other gateways, and not lose money.

The factors you’re looking at should include:

- The payment methods you want to accept
- The currencies you want to accept
- The rates the payment gateway charges
- Contracts & payment terms
- Ability to export customer data
- Customer support
- Whether or not they offer an Account Updater feature, which automatically updates expired card details (great for [reducing involuntary churn](/blog/how-to-fix-involuntary-churn/)!)

However, everything that goes into choosing a payment gateway deserves its own article, [which you can read here](/blog/how-to-choose-payment-gateway/).
If you want to jump-start your evaluation process, view all the Rebilly supported [Payment gateways](/gateways/).
If you find that a payment gateway is not supported, you can [request a new payment gateway integration](/docs/settings/integration-requests) free of charge.

### Subscription billing software vs. payment gateway

You might be wondering what the difference is between a payment gateway and a subscription billing software.
Here’s an overview:

- Subscription billing software (also referred to as a subscription management tool or recurring billing software) is what lets you set up recurring payment plans and payment formulas (stair-step, flat rate, etc.), gives you a clean interface for your customers to check out through, and lets you access your customer data later
- The payment gateway is what takes your customers’ money, processes the transaction, and puts your customers’ money into your merchant account

You’ll need both subscription billing software _and_ a payment gateway (and, as mentioned above, ideally 2+ payment gateways) to get your subscription business off the ground.
If you don’t already have a merchant account, [you may need to get one](/blog/does-my-subscription-business-need-a-merchant-account/).
Payment gateways are not the same thing as a merchant account, and neither is a business checking account.
If you don’t want to get a merchant account, you’ll need to use a payment gateway that doesn’t require one, usually referred to as a modern payment gateway (vs. “classic” payment gateways).

If you’re in search of a subscription management tool, there’s always [Rebilly](/product/) — you can [read about our recently announced features here](/blog/new-rebilly-features-dashboards-timelines-and-more/).

## Marketing

Getting your business up and running doesn’t do much if you can’t get the word out about it and stay in touch with leads.
These tools will help you do that:

### ClickFunnels

If you’re looking for a one-stop shop that lets you create a membership site, manage and pay affiliates, set up sales funnel pages quickly, and run A/B tests for all of this, [ClickFunnels](https://www.clickfunnels.com/) is the way to go.
If you only need one of these pieces, you can probably make do with another one of these options — but if having everything under one roof is important to you, ClickFunnels can do it all with ease.

### MailChimp/Drip

Email marketing is vital — no matter how many new social media sites crop up, email marketing should be the cornerstone of your marketing plan.
[MailChimp](https://mailchimp.com/) is a great option, especially for new business owners, as it offers a full suite of features with paid plans starting at $10/month.
If you want features that are custom-built for e-commerce and have more of a budget, [Drip](https://www.drip.com/) is $49/month for email lists up to 2,500.

### Pipedrive/Hubspot CRM

If your subscription billing software doesn’t include CRM capabilities (psst, [Rebilly does](/product/customer-service/)), consider adding a CRM to your suite of apps.
[Pipedrive](https://www.pipedrive.com/) is focused on giving you a clear, intuitive view of your sales funnel, and it’s reasonably priced at $15/user/month.
If you’re on a tight budget, the [Hubspot CRM](https://www.hubspot.com/products/crm)is free.

It _is_ worth noting that in between an email marketing tool, any CRM features in your subscription billing software, and other tools mentioned, like ClickFunnels, you might not need another CRM tool.
However, if you do, both of the tools mentioned integrate with most popular email marketing tools (including the ones we mentioned), so you’ll be able to keep it all synced up.

### Buffer/Edgar

While you shouldn’t rely on any one social network as your sole source of marketing (as that can lead to unpleasant situations when an algorithm changes unexpectedly!), social media marketing is still important.
[Buffer](https://buffer.com/) is budget friendly, easy to use, and lets you schedule content across multiple platforms, so it’s a great place to get started.
If you want something with more robust automation tools that help you recycle and create content, check out [Edgar](https://meetedgar.com/).

### Crowdcast

Webinars and live videos are a great way to keep your marketing engaging.
[Crowdcast](https://www.crowdcast.io/) will let you run webinars, online summits, and interviews while integrating with several of the other tools mentioned.
It also lets you stream to Facebook live for an extra audience boost, and engage your audience with Q&A, polls, and chat features.

## Customer Communication

Once you get customers (or have people interested in becoming customers), you need to communicate with them in a timely manner.
These tools can help you offer support, onboarding, and information to current or potential customers:

### Intercom

Intercom’s standout features are customer support chat, [chatbots](https://www.intercom.com/bots-for-support), in-app and push messages and [knowledge base tools](https://www.intercom.com/customer-support-software).
They also offer email support tools that are on par with the most popular support tools.
If you’re looking for chat/messaging features _and_ email support, and want it all in one spot, Intercom could be a good bet.
There are also service packages built around acquiring/engaging/supporting customers.
That way, you can use Intercom while continuing to use something else.

### Helpscout

Helpscout’s core functionality is [help desk](https://www.helpscout.net/help-desk-software/) and [knowledge base tools](https://www.helpscout.net/knowledge-base/), although they’ve recently added features like [Beacon](https://www.helpscout.net/live-chat/), which is something of a combination between a chatbot and knowledgebase.
If your primary priorities are email support and creating help docs, Helpscout is a great way to go.
It’s also budget-friendly, with plans starting at $12/user/month.

## Shipping & Logistics

Are you one of the many subscription businesses out there that have physical products as part of your offerings?
These tools will help you get them out the door:

### Shipstation/Shippo

Getting your shipping labels printed can be a pain…but [Shipstation](https://www.shipstation.com/) and [Shippo](https://goshippo.com/) both make it easy.
They offer data imports and integrations, with Shipstation being focused on USPS and Shippo working with multiple carriers.

### Packlane

If you fulfill locally and want to have customized packaging, [Packlane](https://packlane.com/) is a great option, especially if you have small order sizes (their order minimum is one box!).

## Let’s take it from the top

To get your subscription service up and running, you’ll need:

- A website to send people to that can collect email addresses
- A payment gateway and merchant account to receive payments
- An email marketing tool and social media sharing tool

In the category of “nice to have, but don’t let it keep you from starting,” we have:

- A CRM to manage customers or potential customers
- A customer support tool
- A webinar/interview tool to create marketing content
- A membership area and/or landing page creation tool, if applicable
- Shipping management tools and custom packaging, if applicable

**Now that you’ve got all of that covered, there’s only one thing left: make sure you’re using the best subscription software possible.** Obviously, we’re biased towards Rebilly — [check out our features](/solutions/billing).
But if you want to know what to look for (and why it matters), you can download our subscription billing checklist below:

# Are You Planning for Scalability?

It can be a wonderful problem to have: how to scale up to handle incoming business.
However, this can also be a dangerous issue.
The New York Times listed [out-of-control growth](http://boss.blogs.nytimes.com/2011/01/05/top-10-reasons-small-businesses-fail/?_r=0) as the third-largest reason why small businesses fail, just after the related problems of bad math and owners who can’t stop making the same mistakes.
Growing faster than the customer base puts too great a strain on cash flows as expenses spike on the promise of unpredictable revenue streams.
On the other hand, growing too slowly damages customer service levels and brand reputation, which mean everything to a service-based business.

Beyond getting the timing right, businesses stumble during scaling operations because they often don’t count on the fact that some problems become impossibly complex above a certain threshold.
For example, 100 customers on a monthly subscription billing model could generate roughly 1,200 invoices.
In addition, there are upgrades, service additions, downgrades, cancellations, slow payments, payment failures, and technological glitches.
Doubling the customer base can multiply those challenges beyond the business’ capability to address new problems, such as server performance, alternative payment types, churn, promotional packages, international currency and taxation issues, and additional customer support. n nHere are three suggestions to help prepare for the inevitable challenges of scalability:

## Standardize

When businesses are just getting started, everyone tends to do every job out of necessity.
In order for the business to scale effectively, ad hoc management processes have to end.

## Outsource

Clients want to feel like they receive individual attention for their invoicing needs.
In reality, though, the company will quickly run up against a hard limit of how many hours there are in a day.
Delegate a service company to handle details like billing and invoicing.
Focus on improving core value operations.

## Stop Troubleshooting

The front line has to be trained to handle the day-to-day fires.
Leadership has to let that go and do the long-range planning for scalability.
The critical lesson from Ernst & Young’s [Strategic Growth Forum](http://www.forbes.com/sites/ericwagner/2013/11/20/5-steps-to-scale-your-business-you-wont-make-it-otherwise/) last year was this: entrepreneurs fail when they forget to grow the business.
Work on your business, not in it.
In the rapidly evolving global market, stagnation is starvation.
Scale up, but do it intelligently by putting all the right resources in place before the complexity hits.

**Speaking of strategies to build and scale a successful subscription business, our Retry Strategy guide walks you through another one.****span**  Download it today to get simple steps you can take to increase your LTV by 43% or more:

# Task 5. Create orders in Rebilly

Task: Create the following orders and invoices.

Docs: [Create an order](/docs/data-tables/manage-customer-payments-and-billing#create-an-order), [Collect payment or register a payment](/docs/data-tables/manage-customer-payments-and-billing#collect-or-register-a-payment).

Before you start this tutorial, if you have not already done so, [create a product and pricing plan](/docs/tutorials/product-training/create-products-and-pricing-plans).
A product and pricing plan is required.

## Create orders

Create the following orders.

---

- Customer name: Sherry Emery
- Order type: Subscription
- Item 1
    - Product: Software
    - Plan: Basic plan
    - Quantity: 1
- Item 2
    - Product: Consulting
    - Plan: Basic consulting
    - Quantity: 3
- AutoPay: On
- Trial: Ensure this checkbox is not selected.
- Coupons: None
- Start date: Now
- Invoice time shift: Ensure this checkbox is not selected.
- Notes: Do not complete this field.
- Payment collection method: Use payment card on file

---

- Customer name: Arlene Steele
- Order type: One-time
- Item 1
    - Product: Consulting
    - Plan: Pro consulting
    - Quantity: 8
- AutoPay: On
- Trial: Ensure this checkbox is not selected.
- Coupons: None
- Start date: Now
- Invoice time shift: Ensure this checkbox is not selected.
- Notes: Do not complete this field.
- Payment collection method: Mark as `Paid outside Rebilly`

---

- Customer name: Jarvis Wooten
- Order type: Subscription
- Item 1
    - Product: Software
    - Plan: Pro plan
    - Quantity: 1
- AutoPay: On
- Trial: Ensure this checkbox is not selected.
- Coupons: None
- Start date: Now
- Invoice time shift: Ensure this checkbox is not selected.
- Notes: Do not complete this field.
- Payment collection method: Use the hosted payment form link and [any test card](/docs/tutorials/test-payment-cards).

---

- Customer name: Dale Moore
- Order type: Subscription
- Item 1
    - Product: Software
    - Plan: Pro plan
    - Quantity: 1
- Item 2
    - Product: Consulting
    - Plan: Pro Consulting
    - Quantity: 2
- AutoPay: On
- Trial: Leave unchecked
- Coupons: None
- Start date: Now
- Invoice time shift: Ensure this checkbox is not selected.
- Notes: Do not complete this field.
- Payment collection method: Use the hosted payment form link and [any test card](/docs/tutorials/test-payment-cards).

## Create an order with custom (flexible) plan

Create the following customized plans and collect payment.

---

- Customer Name: Evan Carlson
- Order type: Subscription
- Item 1
    - Product: Software
    - Plan: Pro plan
    - Quantity: 1
    - Amount: $120 per seat
- AutoPay: On
- Trial: Ensure this checkbox is not selected.
- Coupons: None
- Start date: Now
- Invoice time shift: Ensure this checkbox is not selected.
- Notes: Do not complete this field.
- Payment collection method: Use the hosted payment form link and [any test card](/docs/tutorials/test-payment-cards).

---

- Customer Name: Dorothy Casillas
- Order type: Subscription
- Item 1
    - Product: Software
    - Plan: Pro plan
    - Quantity: 2
    - Amount: $40 per seat
- AutoPay: On
- Trial: Ensure this checkbox is not selected.
- Coupons: None
- Start date: Now
- Invoice time shift: Ensure this checkbox is not selected.
- Notes: Do not complete this field.
- Payment collection method: Use the hosted payment form link and [any test card](/docs/tutorials/test-payment-cards).

# Pitch value for subscriber acquisition

Pitching value for subscriber acquisition is a more involved process than simply offering attractive price points.
When a business needs to emphasize the added value of its subscription offerings, it should keep the following information in mind to craft its marketing and acquisition strategies.

## Give Customers Ownership

Making customers feel that they’re directly involved in the growth and improvement of a product can trigger a sense of loyalty due to perceived ownership.
Accomplishing this can be as simple as regular (but brief) customer surveys, but companies should be willing to adopt radical measures if necessary.

The independent gaming industry provides an ideal example of this in its growing phenomenon of “early access” sales, in which customers pay full price to receive access to a pre-release game in alpha or beta testing.
This is a win-win from the company’s perspective, as it literally convinces customers to pay for the right to serve as product testers.
This guarantees revenue, and most importantly, ensures that the software is tailored to user needs at every step of development, vastly improving the quality and value of the final product.

## Highlight Iterations

Every company wants to pitch its current products as “the best” available, but this can actually become a liability in a subscription billing model, as it fails to emphasize the benefits of a recurring relationship with a company.

Products can still be sold as “the best,” but this should be done within a framework that emphasizes iterations, and paints a clear picture of a company’s history of product improvements from one generation to the next.
If a potential acquisition is already interested in a current product, a meta-message that says they can count on even better versions of it in the future is an effective way to convince them that they need to purchase recurring access to that product line in the present.

## Emphasize Service

Properly implementing the prior two concepts requires establishing productive relationships with clients, and a customer service ethos that emphasizes frequent business-to-customer interactions ensures that the groundwork is laid.
Taking a passive approach to customer service can be a fatal mistake in a recurring billing model, as it requires customers to already be dissatisfied in some way before they have a chance to interact with the company.

Regular surveys, product tutorials, and invitations to special events allows a business to begin building a loyalty-based attachment with its customers, and each point of contact presents an opportunity to initiate any number of added-value tactics.

## Want to learn more about making the most of customer data?

**span** In our free price optimization guide, you’ll learn how to set up and run experiments that help you get the most from every sale, with specific experiments based on your business stage, and more.
Get it below:

# Bring on new team members: 3 best practices for SaaS startups

Employee turnover can wreak havoc on any business.
A SaaS startup really depends on having the right players and a consistent, well-formed team.
It will cost you more than time to replace a worker who isn’t onboarded properly; indeed, according to human resources experts at ERE Media, [you’ll pay about 40 percent of your worker’s annual salary to replace them](http://www.eremedia.com/tlnt/what-was-leadership-thinking-the-shockingly-high-cost-of-employee-turnover/?__hstc=23243621.e5b288e4f9cc658ff277fcade84834af.1468013802648.1472499918394.1472502904591.182&__hssc=23243621.2.1472502904591&__hsfp=3704963671).

Onboarding the right way can help new hires quickly get up to speed and become a valuable part of your organization.
This is common sense, of course, and it’s easier said than done.
We’re hopeful that the tips outlined below will make it a bit easier done than said.

## 1. Create a Company Playbook

If you don’t already have one, make creating and updating an employee manual a priority.
A company-wide manual clearly outlines expectations, ensures that everyone is treated fairly, and helps new team members understand what you want from them.
In addition to a general procedures manual, an explanation of any “in-jokes,” company lingo and culture can help a new hire feel like part of the team quickly.

## 2. Outline Expectations

Employee retention and onboarding starts before the candidate is even selected.
Before you hire new people, you should have a clear idea of the work you want them to do, the goals you’d like them to achieve and what you expect from the position.
It’s also critically important to relay these details to your prospective employees.
If you get carried away describing how great your company culture is, they could be in for a shock when they see the actual job duties they have to perform.

## 3. Create a Process

Make an onboarding process that works for your business.
You’ll need to make sure your new hires fully understand their role, responsibilities and what you expect from them.
You’ll also need to make sure they meet everyone else on the team and can actually find the things they need to perform their jobs.
The more readily your new hires adapt to the environment and become part of the team, the more likely it is that they’ll stick around and become long-term, valuable employees for your startup.

With crystal clear upfront expectations and a system to introduce new hires to your office culture, all of your employees can work together for the good of your company — and your customers.
A focus on customer satisfaction and retention is key to creating a sustainable subscription business, and engaged employees can provide that focus.

## Want to learn more about how to boost the metrics that matter?

**span** Download our free guide that’ll show you how to boost your customer lifetime value by 43% or more below:

# Empty criteria

Empty criteria is a configuration option when creating a rule or bind.
If an event matches the condition, the rule or bind is executed.

For example, an event has the 'is empty or is in' criteria configured for the country ID: 'CA'.
And, has the 'transaction > payment card > bank country' filter applied.
This rule or bind will only execute when the bank country ID, related to a payment card, is null or is in Canada (CA is the country code for Canada).

Empty criteria rule or bind conditions:

- **is empty:** The selected value must be null.
- **is not empty:** The selected value must not be null.
- **is empty or is in:** The selected value must be null or within a specified value or range.
- **is empty or is not in:** The selected value must be null or not within a specified value or range.
- **is empty or is in list:** The selected value must empty or not in a specified [value list](/docs/automations/create-a-value-list).
- **is empty or is not in list:** The selected value must empty or not in a specified [value list](/docs/automations/create-a-value-list).

# Automated tagging

Use automated tagging to automatically apply tags to customers when specific events occur.
For example, to automatically tag customers who have activated a new subscription, or to untag customers who stop using the new subscription.

To manually tag or untag customers, AML checks, or KYC documents, see [Tags](/docs/settings/tags#manually-tag-or-untag).

## Create a tag automation

Use this process to automatically tag or untag a customer.

1. In the left navigation bar, press **Automations**.
2. In the **Data and alerts** section, press **Automated tagging**.
3. Press **Create tag automation**.
4. In the **Name** field, enter a name for the tag automation.
5. In the **Event** dropdown, select an event.
  When this event is triggered, specified tags are added or removed based on the conditions you define.
  For more information, see [Events](/docs/automations/event-types).
6. Optionally, to apply conditions on when to apply to tag automation: Clear the **No conditions** checkbox, define the conditions, and then press **Add filter**.
  You can add multiple filters.
7. In the **Manage tags** section, select from the following:

  **Automatically add tags when a specific event occurs**

  Press the **Add tags** field, and enter tag names.
  If the tag does not already exist, press **+ Add tag** to create a new tag.

  **Automatically remove tags when a specific event occurs**

  Press the **Remove tags** field, and enter tag names.
8. Press **Save**.

## Tag a customer when they spend over a specific amount

Use this process to automatically tag a customer when they spend over a specific amount of money in one transaction.

1. In the left navigation bar, press **Automations**.
2. In the **Data and alerts** section, press **Automated tagging**.
3. Press **Create tag automation**.
4. In the **Name** field, enter a name for the tag automation.
5. In the **Event** dropdown, select **Transaction processed**.
  This event is triggered when a transaction is processed.
6. Clear the **No conditions** checkbox.
7. In the filter dropdown, select **Transaction > Amount**.
8. In the next dropdown, select **Greater or equal to**.
9. In the **Value** field, enter the amount of money the customer must spend to trigger the event.
10. In the **Add tags** field, enter the name of the tag you want to apply.
  If the tag does not already exist, press **+ Add tag** to create a new tag.
11. Press **Save**.

## Display payment methods based on specific customer tags

Use this process to display specific payment methods if a customer has a specific tag.

To display payment methods based on specific customer tags, the customer must already have the tags applied.
For more information, see [Create a tag automation](/docs/automations/automated-tagging#create-a-tag-automation) or [Manually tag a customer](/docs/settings/tags#tag-or-untag-customers).

1. In the left navigation bar, press **Automations**.
2. In the **Rules engine** section, press **Rules engine**.
3. Press **Core events**.
4. Press **Ready to pay requested**.
5. Press **Rule set**.
6. Press **Create rule**.
7. In the **Name** field, enter a name for the rule.
8. Clear the **No conditions** checkbox.
9. In the filter dropdown, select **Customer > Tags > Name**.
10. In the next dropdown, select **is in**.
11. In the next dropdown, select the tag you want to use.
12. In the **Actions** section, press **Add action**, and then press **Adjust ready to pay**.
13. Press **Add another payment method**.
14. Select the payment method you want to display for customers with the tag, and press **Add**.
15. Press **Save rule**.

## Manage tag automations

Use this process to view, edit, delete, and activate or deactivate a tag automation.

1. In the left navigation bar, press **Automations**.
2. In the **Data and alerts** section, press **Automated tagging**.
  All tag automations are displayed.
3. Select from the following:

  **View a tag automation**

  On the left of an automation, in the **Name** column, press the ID number.

  **Edit a tag automation**

  On the right of an automation, press **Edit**.

  **Delete a tag automation**

  On the right of an automation, press **Delete**.

  **Activate or deactivate a tag automation**

  On the left of an automation, in the **Status** column, turn on or off the toggle.

# How Subscription Billing Can Increase Artisan Revenue

In many ways, artisan businesses like micro-breweries and other boutique manufacturers are prime examples of synergy waiting to happen when it comes to subscription billing models.
Their focus on frequently changing, small-batch product lines marks a perfect opportunity for capitalizing on a recurring customer relationship to increase revenue and strengthen the company.

## Put consumer inertia to work

Consumer inertia remains the bane of marketers and advertising campaigns and refers to the simple fact that most consumers resist changing products to a stubborn degree, especially if it’s a product they use frequently.
A customer may love the artisan micro-brew they impulsively picked up one time at the store, but the next time they’re in that aisle they’ll almost certainly gravitate towards their tried and true big brand, even if they don’t enjoy it as much.

A subscription model can break this trend and redirect it in the artisan’s favor by making those micro-brews a regular feature in the consumer’s consumption patterns.
When a consumer knows they have a ready supply of delicious artisan beer already at home or a shipment on the way, they probably won’t even stop by the beer aisle.
Before long, the micro-brews are the product with inertia, and the competitive dynamic has been successfully reversed.

## A Built-in Testing Pool

Although artisan businesses often focus on experimentation and constant re-invention, reliable revenue is still going to depend on at least a few recurring product lines.
Knowing when to promote a one-off product to a full-time offering can involve a lot of guessing, especially when a business has little direct contact with its customer base.

Product subscriptions can provide a source of consumer testing by including samples of new products and prospective roll-outs along with a customer’s regular delivery.
Businesses can include survey information to solicit customer feedback about the new product and use that to help calibrate their plans for the future.
To get the best response rates, surveys should be extremely brief and easy to complete.
Many people are conditioned to avoid online surveys, so a simple pre-paid postcard with five or fewer quick questions about the product is likely to get the best response.

## A Channel to Upselling

Once a consumer has been trained to switch their inertia to the artisan product, their new loyalty to the brand makes them promising targets for upsells.
Whether it’s upgrading to a larger subscription package or simply taking advantage of one-off promotional offers on related products, that brand loyalty will boost the effectiveness of product advertisements included with their regular subscription deliveries.

**Not sure where to start when it comes to finding a subscription billing company that fits your needs?****span**  Download our free Six Must-Haves guide, which covers the features you need in a subscription billing service, why you need them, and comes with a bonus feature checklist:

# Influencer Marketing 101: A Guide for Subscription Businesses

When you mention influencer marketing, what immediately comes to mind are collaborations between established brands and celebrity influencers.
Tommy Hilfiger and Gigi Hadid.
Away Luggage and supermodel Karlie Kloss.
Beats by Dre’s numerous campaigns, which have featured just about every celebrity — from the Kardashians to James Harden.

But influencer marketing can be implemented across different levels and businesses—and **even for subscription businesses working with much smaller budgets, there are significant results to be reaped**.

Take beauty subscription box LiveGlam as an [example](https://thriveglobal.com/stories/4-steps-to-creating-a-successful-influencer-marketing-campaign/).
In less than two years, CEO Dhar Mann took their business from $600 in starting capital to an eight-figure annual revenue.
Mann didn’t spend a single dollar on advertising, and instead focused on getting the word out about LiveGlam through collaborations with commission-based influencers.

If you’re looking to get started on influencer marketing, this article is for you.
In this first installment, we’ll dive into the key areas that businesses starting out on influencer marketing campaigns often find challenging.
There are:

- Choosing the right influencers for your business
- Contacting your influencers efficiently
- Determining the rates you should pay an influencer

Stay tuned for our second installment, where we’ll discuss:

- Calculating the ROI of your influencer marketing campaign
- Best practices that subscription businesses can implement

## How do I choose the right influencers for my business?

The following questions can help you assess if an influencer is a good fit for your business:

- **What’s my target audience?** There are different segmentation approaches you can use to identify the key characteristics of your target audience.
  The main approaches are abbreviated as GDPB—geographic, demographic, psychographic and behavioral segmentation.
- **What is the main role of the influencer?** This refers to the main goal that you want your influencer to achieve for your campaign.
  One example would be that your influencer needs to increase sales by 25 percent in the first three months of your collaboration.
- **What is the role of the influencer in the campaign?** This refers to actionable steps that your influencer can take to achieve their main campaign goal.
  If your goal was to have your influencer increase sales by 25 percent by the first quarter, you can then break this down into steps that your influencer can take, such as having to create three posts per week during this period.
- **Which type of influencer is most suitable for my brand?** It’s important to keep in mind that bigger isn’t necessarily better.
  As a _New York Times_ [article](https://www.nytimes.com/2018/11/11/business/media/nanoinfluencers-instagram-influencers.html) points out, a nano-influencer’s lack of fame can make them appear more approachable compared to macro- or micro-influencers.
  Their recommendations also seem like genuine advice you’d hear from a friend.
  Plus, these influencers charge lower rates too, which can be a better fit if you’re in the early stages of running your business and need to work on a small budget.
- **What influencer marketing campaigns are your competitors implementing?** It pays to keep tabs on what your competitors are up to—such as the types of influencer marketing campaigns they are launching, the influencers they work with and the platforms that they use.
  You can gather inspiration from their strategies, or draw comparisons to identify areas of improvement in your own strategy and campaigns.

## How do I contact influencers efficiently?

Once you’ve identified influencers who are a good fit for your business, the next step is to get in touch with them.
This can often be tedious and time-consuming, so we’ve included a few tips you can use to **make your process more efficient**:

### Use the right tools

When contacting influencers, there are a few tasks that you’ll need to do repeatedly, like sourcing for influencers to work with, searching up their emails or setting up an introductory video call. **By using tools created specifically to perform these tasks, you’ll be able to speed things up**.
These tools can help:

- Scheduling tools: [Calendly](https://calendly.com/), [ScheduleOnce](https://www.oncehub.com/scheduleonce)
- Email finding tools: [Hunter.io](https://hunter.io/), [Find That Email](http://findthat.email/)
- Platforms and tools for finding influencers: [HelloSociety](https://hellosociety.com/), [FameBit](https://famebit.com/), [AspireIQ](https://www.aspireiq.com/), [FollowerWonk](https://followerwonk.com/), [GroupHigh](https://www.grouphigh.com/), [Topsy](http://topsy.thisisthebrigade.com/), [Ninja Outreach](https://ninjaoutreach.com/), [Scrunch](https://www.scrunch.com/)

### Make it easy for the influencer to follow up

It’s no secret that influencers are busy people, and they’re likely to receive many emails on a daily basis.
To increase your chances of getting a positive response, you need to **make it easy and effortless for them to follow up**.
That means:

- **Adopting email best practices**: Emailing best practices are simple and effective, yet are often overlooked.
  These include: using impactful subject lines, keeping your emails brief, avoiding mass pitches, using your recipient’s first name and mentioning something specific about your influencer or their company in your email.
- **Ensuring that all details are included in the email**: Having collaborated with the likes of Neil Patel and Noah Kagan, Eric Siu, founder of digital marketing agency Single Grain [offers](https://www.youtube.com/watch?v=-3aKypunLnM&feature=youtu.be) a tip: “Give them a preview of what’s coming”.
  For example, if you’re contacting an influencer for a podcast interview, it helps to send over a list of questions so they can get an idea of the flow of the interview.
  If they’re going to create content for your brand, you should provide specific instructions, along with content samples they can refer to or images they can use.

### Be honest

Being honest and direct about your motivations and purpose will help minimize instances of second-guessing or back-and-forth communication, thereby saving time for both you and your influencer. **You should clearly state your offer, expected outcome and the amount of work that the influencer needs to do**.

## How much should I pay an influencer?

Your first step is to **calculate your influencer marketing budget**.
Writer Felicity Fromholz [shares](https://www.business2community.com/strategy/calculate-influencer-marketing-budget-01900601) a simple three-step process:

### Step 1: Calculate the potential conversions

Let’s say you’re running a [subscription box business](/blog/subscription-box-retailing-an-overview/), and are considering working with an influencer with 100,000 unique monthly views (UMV).

You’re going to assume that 1 percent, or 1,000 of these visitors will see your brand collaboration post.
Of these 1,000 visitors, the assumption is that 1 percent will convert.
That sums up to 10 visitors who might eventually purchase a subscription.

### Step 2: Calculate your LTV and CAC

To calculate these two metrics, we’ll need to assume the following:

Cost: $45

Profit margin: 35 percent

Average customer life cycle: 5 months

Therefore, the LTV will be: $45 X 0.35 = $15.75 X 5 months = $78.75

Based on the ideal [LTV:CAC ratio](https://www.patriotsoftware.com/accounting/training/blog/ltv-cac-ratio-metric/) of 3:1, the CAC will be: $78.75 / 3 = $26.25

### Step 3: Calculate your budget

To calculate your budget, you’ll need to multiply the CAC by the number of people you think will convert: $26.25 x 10 = $262.50

_(Want to learn more about how to boost your LTV with marketing?
[Head here](/blog/data-based-marketing-can-increase-ltv/).)_

## Other costs to watch out for

While you’ve got the calculation sorted out, bear in mind that this is just a rough estimate.
It may not be reflective of the final cost you’ll pay your influencer, as there are **other elements that you’ll need to take into consideration**.
These include:

### 1. Factors that affect the cost of influencer marketing

Each of the factors below can affect the cost of influencer marketing, so you’ll need to tweak your rates accordingly, in order to meet the expectations of influencers you want to work with.

- Social media platform
- Following
- Engagement
- Your service or product
- Campaign requirements
- Project timeline
- Costs of production for content creation

For example, a campaign that requires a higher level of involvement from your an influencer will incur higher rates.
Similarly, getting an influencer to market a complex subscription service will likely cost more than having them feature a beauty subscription box.

### 2. Industry rates

It is helpful to have an idea of the rates that other influencers charge for their work, or fees that businesses or agencies typically pay for a campaign.
This can serve as a point of reference, and help you ascertain that the rates you want to offer are aligned with general expectations.

Here’s what a few benchmark costs for the various social networks:

**Instagram:**

- Chelsea Naftelberg, former associate director of content and partnerships for social media agency Attention [estimates](https://digiday.com/marketing/what-influencer-marketing-costs/) her team’s influencer marketing costs based on the ‘$1,000 per 100,000 followers’ guideline.
- Henry Langer, senior account manager for influencer search platform Hypr [thinks that](https://digiday.com/marketing/what-influencer-marketing-costs/) brands can charge $250 per post for Instagram influencers with less than 50K followers, and add about $1,000 per 100K followers per post.
- [According to](https://later.com/blog/instagram-influencers-costs/) Instagram scheduling tool Later, a fashion micro-influencer with 80K followers charged $300 for a single Instagram post, and $500 for two posts.
  A health and nutrition micro-influencer with 30K followers charged the following rates: $325 (per Instagram post), $250 per day (brand IG takeover) and $85 (5 IG stories).

**YouTube:**

- Langer [suggests](https://digiday.com/marketing/what-influencer-marketing-costs/) that YouTubers with over 50K subscribers can charge $2,000 per 100K subscribers.
  That works out to a cost of $20 for every 1,000 subscribers.
- Tony Tran, CEO of digital marketing startup Lumanu [recommends](https://buffer.com/resources/influencer-marketing-cost) paying about $0.05 to $0.10 per average video view.
  This works out to a rate of about $50 to $100 for 1,000 video views.

**Snapchat:**

Snapchat influencer Cyrene Quiamco [shared](https://digiday.com/marketing/what-influencer-marketing-costs/) the following rates for a 24-hour campaign:

- $500 for 1,000-5,000 views
- $1,000-$3,000 for 5,000-10,000 views
- $3,000-$5,000 for 10,000-20,000 views
- $5,000-$10,000 for 30,000-50,000 views
- $10,000-$30,000 for 50,000-100,000 views

**Hopefully, you now have a good grasp on the key concepts you need to know to develop a successful influencer marketing strategy.** Stay tuned for part two, where we’ll discuss calculating the ROI of influencer marketing campaigns and the best practices you need to keep in mind.

**In the meantime, make sure you’ve got all the other boxes checked for your subscription business with our Six-Month Success Checklist.** It covers marketing, along with other foundational concepts, for any new subscription business.
Download it today and set yourself up to win:

# How to Get the Most from Your PPC Budget

Pay-per-click (usually shortened to “PPC”) advertising is everywhere nowadays.
It’s on Facebook, Google, YouTube, Twitter, and more — and subscription businesses are using it to great effect.
You’ve heard the PPC ad success stories, and you’re considering dipping your toe into the wide world of pay-per-click yourself.

When you do, you deserve to get the most from your pay-per-click investment.
However, this form of marketing can get very costly, very quickly.
You need to be crystal-clear on what your budget is (including overall campaign budget, cost per lead, and ideal customer acquisition cost), long before you even think about starting a PPC campaign.

**As digital marketing expert** [**Kiva Schuler**](https://theheartfulbusiness.com/) **frames it, don’t spend money on ads, especially Facebook ads, that you aren’t ready to throw away.** Even the best of the best in the business are constantly tweaking, course-correcting, and launching ad campaigns that, yes, flop.
It’s important to tread wisely and carefully.
Don’t move into PPC advertising until a failed ad campaign won’t ruin your overhead for the month.

That said, how do you use PPC ads to find your target audience and deliver a decent return, _without_ overspending?

## Step one: Solve their problem

Search for the audience’s pain point and address that pain.
This sounds like a no-brainer, but a surprising amount of well-intentioned marketing misses this key starting point.

Your product or service is solving a problem for your target audience.
That problem might be knowing what gear to wear when hiking in different locations, so they don’t end up with wet feet or blisters at the end of the day.
Or it might be knowing how to automate their email marketing, so they can spend their limited time where it counts – closing sales and serving clients.

Focus your ad copy on your product’s benefits.
Choose words, video, photos, or graphics that tell a viewer, “I feel your pain and know how to solve it.
This is _exactly_ what you are looking for.”

## Step two: Give potential customers a good place to land

If your ad copy promises a much-wanted product or service, your next step is to deliver on the promise.
Send potential customers to a landing page that:

- loads fast (did you know [page load time has a huge effect on conversion rates](https://blog.hubspot.com/marketing/page-load-time-conversion-rates)?)
- has a compelling headline (tweak yours with [this free headline analyzer](https://coschedule.com/headline-analyzer))
- has content that reinforces the benefits mentioned in the ad copy ([more on that here](https://www.impactbnd.com/blog/how-to-highlight-benefits-not-features-in-marketing-copy))
- doesn’t have a menu or prominently feature links to other pages on your site

Don’t send click-through visitors to the front page of your website.
They’ll get lost clicking on other pages, lose interest, and move on before taking the action that you want them to do.
Whether that action is signing up for your email list, becoming part of your online community, or registering for your next webinar, if they aren’t doing it, you’re effectively pouring money down the drain.

**Make it as easy as possible for visitors to do what you want them to do by sending them to a landing page with a call-to-action.**

## Step three: Individualize and personalize the funnel

Your ad appears only when someone searches for terms on a specific list, or – on sites like Facebook – when that individual is part of a group you’ve specified.
Generic terms (like “rugs”) can be as important as specific terms (like “blue wool rugs under $500”).

To make sure that your prospects are landing on pages that are as specific as possible, create multiple different keyword strings and landing pages.
Each landing page should be tweaked to align with the specific keywords and ad copy the visitor clicked on.

## Step four: Attract the exact customers you want with keyword matching

Exact keyword matches reduce the number of responses that match your PPC ad…_but_ those responses are much more likely to result in a sale.
For example, “six-axis robotic arm with laser” will attract searchers with a specific and probably immediate need for the exact item you’re selling.

In other words, go narrow rather than wide, using what’s known in the industry as a “long-tail” keyword.
A [long-tail keyword](https://blog.hubspot.com/marketing/definition-long-tail-keyword-100-words-sr) is a keyword phrase that contains 2-3+ words, and targets niche demographics rather than mass audiences.
They’re more specific and often less competitive – which means you can get more bang for your PPC buck.

Also, investigate placement advertising.
You can choose specific websites where you want your PPC advertisement to appear (and reject specific websites where you don’t want to appear).

Refine your keywords and audience carefully to get the best results possible.
According to research by [Harris Interactive](https://www.janrain.com/company/newsroom/press-releases/online-consumers-fed-irrelevant-content-favorite-websites-according), 74% of consumers become frustrated with ads, promotions, and websites that do not match their interests.

## Step five: Avoid attracting customers you don’t want by using negative keywords

Many PPC advertising providers are now counting responses that include _almost_ exact matches.
This increases the number of responses, but lowers the conversion rate.

**That change has increased the importance of negative keywords.** Negative keywords target those locations or audiences that you do not want to attract.
When the negative keywords match the content on a website or search, your advertisement will not appear.

If your subscription service is a monthly delivery of curated, high-quality and well-sourced meats like [Butcher Box](https://www.butcherbox.com/), your negative keywords might include “wholesale” since you are selling direct to consumer, or “cheap” if your offering is decidedly high end.
You might also list “free” among your negative keywords.

## Step six: Make sure every visitor remembers you with retargeting

They clicked on your advertisement.
They read your web page.
But they hesitated, they moved on, they didn’t close the deal.
All is lost and there’s no way to recoup those costs…right?

Not if you use retargeting in your PPC strategy. “Retargeting” is when you use the data gained from a previous visit to your website to reach specific visitors who have already been to your site.

For example, you can create a retargeting campaign aimed at potentially-profitable visitors by showing them a promotion based on the pages they viewed.
The promotion could be a free trial or 10% off an annual subscription for the specific product they looked at.
For more about getting started on retargeting, [head here](https://instapage.com/blog/what-is-retargeting).

## Step seven: Engage trust

You need to find out more about your target audience.
They need to trust you enough to share their personal and precise details.
According to the Harris Interactive survey cited earlier, 77% of consumers would divulge more information if they knew how it was going to be used and how it would benefit them.

You need to give your target audience the information they need to feel trust, including your information sharing policy.
If possible, give them an experience that uses that information to their benefit.
For example, they share their biggest pet peeve about successfully onboarding subscription customers, and you suggest a [blog post](/blog/customer-onboarding-how-to/) or other resource that matches that need.

## Step eight: Remember the magic word

In this case, it isn’t “thank you” or “please” — the magic word is “you.” Address your customers as real people, because they _are_ real people.
If an ad sounds like a robot wrote it, it doesn’t matter how targeted or personalized it is.
If possible, run your ad copy by existing customers and get their feedback on whether it’s addressing their wants and needs.

## Step nine: Anticipate the trends: Video & connected TV

Slowly, static ads are losing their edge in PPC in favor of video.
Video gives audiences a personalized and immersive experience that words often fail to provide.
In fact, [Cisco Visual Networking](https://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/white-paper-c11-741490.html) estimates that video content will soon consume 80 percent of internet traffic.

Connected TV advertising is one of the newest trends.
With this form of advertising, ads go directly to YouTube videos playing on a consumer’s TV.
Cisco predicts that this trend will increase 3x by 2022, to make up 27% of consumer traffic.
This doesn’t mean you have to completely change your PPC strategy, or skip trying out written copy.
But you _should_ be keeping an eye on this and planning to incorporate video and other multimedia ads into the mix when you can.

## Step ten: Continue to measure costs after your lead converts

You’ve followed the other guidelines here and created a PPC ad campaign that’s converting well, and you’re keeping an eye on the metrics to make sure your ad costs are optimized.
Your work here is done, right?
Nope.
You need to make sure that you’re keeping track of your CPL (cost per lead) and CAC (customer acquisition cost) from your ad campaigns, and which customers go with which campaign. _(_[_Head here to learn more about CAC and CPL_](/blog/data-based-marketing-can-increase-ltv/)_.)_

Both of these metrics relate to your customer lifetime value, which is the lifeblood of a subscription business.
You need to make sure that you’re making back what you’re spending on customers in a reasonable amount of time, or your business outlook is pretty grim.
Much like [optimizing your prices](/blog/how-to-optimize-your-prices-to-increase-subscription-revenues/) and [reducing involuntary churn](/blog/tracking-reducing-involuntary-churn/), evaluating your acquisition costs from pay-per-click ads is one part of the larger subscription puzzle of maintaining (and increasing) your customer lifetime value.

Following these guidelines will help maximize your marketing budget and get the most from your PPC advertising.
From there, as you get more customers and refine your ad strategy, you’ll want to work on optimizing other parts of your business…like your prices.

Not sure where to start with that? **Get tips on pricing for revenue and long-term stability with our Price Optimization Guide.** It has a list of experiments you can start today, categorized by funnel stage and difficulty.
Download it now:

# Rebilly news, features, and updates for October 2021

Team Rebilly has been hard at work this month delivering all sorts of tricks and treats you can use to improve your customer experience!
So grab your pumpkin spice latte and get cozy while we fill you in on our spine-chillingly cool October updates and improvements.

## New integrations

- We expanded our [TaxJar integration](/docs/settings/taxes#taxjar) to allow merchants to connect their TaxJar account and take advantage of their AutoFile feature.
- We expanded our offerings with [BlueSnap](https://www.rebilly.com/gateways/bluesnap) by integrating chargeback reporting and an account updater feature.
- We integrated with [Post Finance](https://www.rebilly.com/gateways/postfinance) which offers comprehensive payment transactions for banks and financial service providers based in Switzerland or Liechtenstein.
- We integrated with [Dimoco Direct](https://www.rebilly.com/gateways/dimoco) which guarantees users a secure purchase via any mobile device in 37 countries.
- We added support for iDeal, Sofort, EPS, and Giropay via [checkout.com](https://docs.checkout.com/).
- We added support for payment cards via [SafeCharge](https://www.safecharge.com/docs/API/main/).

_Need a gateway integration that’s not on [our list](https://www.rebilly.com/gateways/)?
Follow our [new integration request guide](/docs/settings/integration-requests) and submit your request._

_Have any questions on these or future updates?
[Shoot us a message](https://www.rebilly.com/support/) and we’ll be happy to help!_

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) to see what you're missing.**

# Rebilly news, features, and updates for January 2025

Hello, and welcome to the January 2025 edition of the Rebilly news, features, and updates blog.

## Feature spotlight

This section highlights some useful Rebilly features.
This month's edition focuses on payment gateway features.

### Payment gateway routing

Payment gateway routing, sometimes referred to as payment orchestration, is the process of dynamically routing transactions between payment gateways, based on real-time data and selected parameters.
For example, you can route transactions to different payment gateways based on the country of the customer, the currency of the transaction, the payment method, and many other factors.

Use this powerful feature to optimize your payment processing by routing transactions to the most cost-effective payment gateway for each transaction.

To learn more, see the [payment gateway routing documentation](/docs/settings/gateway-routing).

### Display payment methods based on the customer's location

Use the Rebilly rules engine to configure automations that dynamically display payment methods based on the customer's location.
For example, you can display different payment methods to customers in different countries, or only display payment methods that are available in the customer's country.

This feature to create a personalized checkout experience for your customers and increase conversion rates.

To learn more, see [Display payment methods by location](/docs/settings/display-payment-methods-by-location).

### Volume limits

Volume limits define the maximum number of transactions a payment gateway account can process daily or monthly.
When a volume limit is reached, the gateway account enters scheduled downtime until the frequency period resets.
For example, a daily limit of 100 transactions can be set for a payment gateway.
Once the limit is reached, Rebilly will automatically stop routing transactions to that gateway until the limit resets.
Use volume limits to manage costs associated with payment gateway accounts and prevent overuse.

To learn more, see the [volume limits documentation](/docs/settings/manage-payment-gateways#set-volume-limits).

## New payment gateway integrations

- Added support for the [Tabby payment method](/payment-methods/tabby) for the [Tabby payment gateway](/gateways/tabby).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.
If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Rebilly news, features, and updates for September 2025

Hello, and welcome to the September edition of the Rebilly news, features, and updates blog.

## New features

### Journal summary reports

We added the journal summary report.
Use this report to view revenue summary data across journal accounts over specific time periods.
You can filter the report by journal account, aggregation field, and currency.
For more information, see [Journal summary](/docs/data-tables/revenue-recognition#journal-summary).

### Send broadcast emails immediately

You can now send broadcast emails immediately.
For more information, see [Send broadcast emails immediately](/docs/automations/email-notifications#create-broadcast-messages).

### Single and multiple deposit amount buttons

We added the option to configure deposit strategies to display either a single deposit amount button or multiple deposit amount buttons to the customer.
For more information, see [Deposit strategies](/docs/settings/deposit-strategies#create-a-deposit-amount-strategy).

### Hide journal accounts with zero amounts

We added the option to hide journal accounts with zero amounts from journal summary reports.
For more information, see [View journal summary reports](/docs/reports/billing-reports#view-journal-summary-reports).

### View invoice related journal records

You can now view journal records that are associated with specific invoices.
For more information, see [View invoice related journal records](/docs/settings/journal-account#view-invoice-related-journal-records).

### Rebilly UI improvements

We made it easier to locate email delivery settings in the Rebilly UI by adding an option to the configuration section of the settings page.
For more information, see [Email delivery settings](/docs/settings/email-delivery-settings).

We also made it easier to locate payment and payout method configuration settings and hosted payment form settings in the Rebilly UI by adding options to the payment forms section of the settings page.
For more information, see [Payment method configuration](/docs/settings/payment-method-configuration), [Payout method configuration](/docs/settings/payout-method-configuration), and [Hosted payment forms](/docs/settings/hosted-payment-forms).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.
If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Concepts

This section of the docs describes the components of the Rebilly product.
In Rebilly, components are called resources.
Use this section to understand how Rebilly works and to aid with your integration.

## Resources

The following table describes the entity relationships between each resource in Rebilly.

| **Resource** | **Relationship** | **Resource** |
| --- | --- | --- |
| [Customer](/docs/dev-docs/customers) | 1 to many | [Payment instruments](/docs/dev-docs/payment-instruments) |
| [Customer](/docs/dev-docs/customers) | 0 to many | [Transactions](/docs/dev-docs/transactions) |
| [Payment instrument](/docs/dev-docs/payment-instruments) | 0 to many | [Transactions](/docs/dev-docs/transactions) |
| [Customer](/docs/dev-docs/customers) | 0 to many | [Order](/docs/dev-docs/orders) |
| [Order](/docs/dev-docs/orders) | 1 to many | [Invoice](/docs/dev-docs/invoices) |
| [Invoice](/docs/dev-docs/invoices) | Many to many | [Transactions](/docs/dev-docs/transactions) |
| [Customer](/docs/dev-docs/customers) | 0 to many | [Quotes](/docs/dev-docs/quotes) |
| [Order](/docs/dev-docs/orders) | 0 to many | [Quotes](/docs/dev-docs/quotes) |
| [Credit memo](/docs/dev-docs/credit-memos) | Many to many | [Invoice](/docs/dev-docs/invoices) |
| [Credit memo](/docs/dev-docs/credit-memos) | Many to many | [Transaction](/docs/dev-docs/transactions) |
| [Customer](/docs/dev-docs/customers) | 0 to many | [Payout requests](/docs/dev-docs/payout-requests) |
| [Invoices](/docs/dev-docs/invoices) & [orders](/docs/dev-docs/orders) | 1 to many | Products & plans (as "items") |
| [Product](/docs/dev-docs/products-and-plans#products) | 1 to many | [Plans](/docs/dev-docs/products-and-plans#plans) |
| [Customer](/docs/dev-docs/customers) | 1 to many | [Plans](/docs/dev-docs/products-and-plans#plans) |
| [Organization](/docs/dev-docs/organizations-and-websites#organizations) | 1 to many | [Website](/docs/dev-docs/organizations-and-websites#websites) |

## Extend resources

Use custom fields to extend a resource schema.
Include the data within your API requests.
Rebilly validates, stores, and returns the data when you retrieve the resource.

Example: To record a customer's preferred communication channel.

```json
{
  "customFields": {
    "preferredCommunicationChannel": "email"
  }
}
```

For more information, select from the following:

- Use the API to create or manage custom fields — see [Custom fields](/docs/dev-docs/api/custom-fields/).
- Use the UI to create custom fields — see [Add a custom field](/docs/settings/custom-fields#create-custom-fields).

## Next steps

- Accept payments on a Rebilly hosted page: [Integrate a hosted payment form](/docs/dev-docs/get-started-integrate-hosted-payments).
- Embed a payment form in your website: [Integrate payment forms](/docs/dev-docs/get-started-integrate-payment-forms).
- Browse the API reference: [Rebilly API](/docs/dev-docs/api/).

# Rebilly docs

Explore Rebilly guides and examples.

**Welcome to Rebilly**

Learn about payments related terms, concepts, and Rebilly features.
Find out what Rebilly can do for you.

## Developer guides

Learn how to integrate Rebilly into your app, website, or checkout flow.

**Developer docs**

Integrate hosted or embedded payment forms, use the libraries and SDKs, and follow the API guides.

**Rebilly API docs**

Learn how to interact with Rebilly programmatically using the Rebilly API.

## User interface guides

Learn how to integrate Rebilly into your app, website, or checkout flow using the Rebilly user interface.

**Basic integration**

Learn how to integrate Rebilly into your website, or checkout flow using the Rebilly user interface.

**User interface guides**

Learn how to use the Rebilly user interface to manage your payments and billing.

## FAQs

Answers to the most frequently asked questions about Rebilly.

**Frequently Asked Questions**

Find answers to common questions about Rebilly features and functionality.

# Rebilly news, features, and updates for April 2025

Hello, and welcome to the April 2025 edition of the Rebilly news, features, and updates blog.

## Feature spotlight

This section highlights some useful Rebilly features.
This month's edition focuses on how to use to Rebilly to manage risk.

### Blocklists

Blocklists are lists of customer attribute values that are blocked from buying from you, which helps prevent fraud and criminal activity.
For example, if a customer attempts to make a purchase from you with a credit card or fingerprint that is in a blocklist, the transaction is blocked and will not be processed.
For more information, see [Blocklists](/docs/automations/blocklists).

### Allowlists

Use allowlists to exclude specific customer attribute data from risk score checks, manual blocklists, and automated blocklists.
For example, if a customer whose name is in an allowlist attempts to make a purchase from you, the transaction is always allowed and will be processed.
For more information, see [Allowlists](/docs/automations/allowlists).

### Risk scoring

Assign a risk score to a transaction based on [Risk factors](/docs/automations/risk-scoring#risk-factors).
Risk scoring helps you identify high-risk transactions and take appropriate action.
For example, you can automatically block a payment card if it is used in a transaction that exceeds a certain amount, or if a transaction has a high risk score.
For more information, see [Risk scoring](/docs/automations/risk-scoring).

## New payment gateway integrations

- Added support for the [Ripple payment method](/payment-methods/ripple) for the [BVNK payment gateway](/gateways/bvnk).
- Added support for the [MonRem payment gateway](/gateways/monrem).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.
If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Rebilly news, features, and updates for February 2026

Hello, and welcome to the February edition of the Rebilly news, features, and updates blog.

## New features

### Convert a trial-only subscription to a subscription with trial and recurring billing

You can now convert a trial-only subscription to a subscription with trial and recurring billing.
Use this feature when a customer decides to change from a trial-only subscription to a subscription with trial and recurring billing after their trial period.
For more information, see [Convert a trial-only subscription to a subscription with trial and recurring billing](/docs/data-tables/manage-subscriptions#convert-a-trial-only-subscription-to-subscription-with-trial-and-recurring-billing).

### 'Is photocopy' KYC validation check for identity documents

Rebilly added the 'Is photocopy' KYC validation check for identity documents.
Use this feature to check if the identity document is a photocopy.
For more information, see [Identity document checks](/docs/kyc-and-aml/kyc#identity-document-checks).

This feature is available for the Rebilly KYC add-on only.
To activate KYC, [contact Rebilly](/support/).

## Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.
If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# ACH

Rebilly Instruments supports all payment methods that are available on the Rebilly platform, including ACH.

To use ACH with the Rebilly Instruments JavaScript library, you must have a ACH gateway configured and connected to your Rebilly account.
If you have not already done so, complete the [Set up a gateway](/docs/settings/set-up-a-gateway) tutorial.
No further configuration is required.

**iframe**

# Rebilly news, features, and updates for March 2024

Hello, and welcome to the March edition of the Rebilly news, features, and updates blog.

## New features

This month we added the following new features.

### Simplified rule engine

To make it easier to create and manage automations, we have simplified the rule engine by moving all email notification-based automations from the rules engine to the notifications section of the Rebilly UI.
For more information, see [Notifications](/docs/automations/email-notifications).

We also documented all webhook and automated tagging events.
For more information, see [tag events](/docs/automations/tag-events) and [webhook events](/docs/automations/webhook-events).

### Autopay on quote related subscriptions

We added the ability to set whether payment attempts for quote related subscriptions occur automatically.
For more information, see [Autopay](/docs/data-tables/manage-quotes#edit-a-quote) and the `autopay` field in the [Quotes](/docs/dev-docs/api/quotes/) API operations.

## Docs

We added a guide that describes how to search for specific results using Rebilly collection APIs.
For more information, see [Search filters](/docs/dev-docs/search-filters).

## New payment gateway integrations

- Added support for the [SPEI payment method](/payment-methods/spei/) for the [Safecharge payment gateway](/gateways/nuvei).
- Added support for the [LaCore payment gateway](/gateways/lacore).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.
If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!
For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Improve Your Dunning Emails With These 6 Tips

Most companies treat dunning emails like written contracts.
This no-nonsense, corporate approach could be doing more damage than not sending any emails at all.

It’s important to note that dunning emails shouldn’t be your first line of defense.
The best way to proactively fight churn is with [a data-driven retry strategy like ours](/thank-you/retry-strategy/).
Dunning emails come in after that, as a failsafe.

In this post, we are sharing six tips for how you can write dunning emails to retain more customers (and revenue) and even improve customer experience.

## What’s dunning?

In [our glossary article](/blog/subscription-payment-processing-glossary/), we define dunning as:

“the process of methodically communicating with customers to ensure the collection of accounts receivable.
In other words, it’s the process of retrying unsuccessful payment transactions.
This can be done automatically or manually, and might involve a “dunning discount” (which a merchant grants a customer in exchange for the balance being paid off, instead of being left unpaid).”

Most business owners think failed payments are intentional because customers don’t want to pay their bill.
However, this is usually not the case.
There are dozens of [reasons why a card is declined](/blog/five-decline-definitions-to-empower-retries).
Most failed payments are accidents, happening because of things like:

- An expired debit or credit card
- Got a new credit card, but forgot to update it on their account
- Their credit card was lost or stolen
- New billing address
- Hit their credit card limit
- Simply forgot (i.e. vacation, got busy, etc)

## 6 tips for writing better dunning emails

### Optimize the subject line and preview text

**Did you know the average person receives** [**121 emails per day?**](https://www.campaignmonitor.com/blog/email-marketing/2019/05/shocking-truth-about-how-many-emails-sent/) Most people decide whether or not to open an email based on the subject line and preview text – i.e. the one line of text that shows up in your inbox.

Here are a few tips on how you can make the most of that space:

- Use a compelling subject line
- Optimize preview text
- Tell people what you want to do, such as the two examples above from Amazon and GoDaddy

### Send these emails from a real person

Are you more likely to respond to an email from “Bob at Company XYZ,” or “[billing@companyxyz.com](mailto:billing@companyxyz.com)?”

According to a study by Pinpointe Marketing, companies that send emails from a specific person – such as Bob at Company XYZ – see [email open rates that are 15% higher](https://www.pinpointe.com/blog/best-email-send-from-address-name-or-company) than ones sent from a generic address or worse, a “no-reply” email.

When customers receive an email from a real person like Bob, it makes your brand seem more accessible and builds trust.
Because they know the email was sent from a real person, they will be more likely to reply to this email if they have a question.

### Write with empathy

Receiving an overdue payment notification email can be embarrassing, and that feeling isn’t helped when the email has a robotic or corporate-sounding tone.

As you may recall, the biggest reasons that dunning occurs are involuntary, like an expired credit card or a new billing address.
The more friendly and empathetic you can be in your email, the more likely the recipient will respond positively and stick around as a paying customer.

### Remind customers of the benefits of your product or service

It is helpful to remind people of the benefits that they are receiving whenever you ask them to re-input their payment information to keep them from having second thoughts about renewing their subscription.

Use the P.S. section at the bottom of an email to include a quick tip or key benefit such as:

- Talking about a new feature
- Including a link to a customer success story
- Sharing a blog post with some quick tips

### Make it easy for customers to get their account in good standing again

With any email, the clearer the call-to-action (CTA) is, the more likely someone will complete it.
Dunning emails are no exception.

Here are some good rules-of-thumb:

- Include a prominent CTA button to update their payment information
- Provide short, how-to style instructions right within the email body
- If for some reason, this process will take someone longer than a minute to complete, set the proper expectations within the email copy.

### Follow up (and follow up again)

If you don’t hear back right away, send at least three follow up emails over the course of a month.
The first follow-up email should be a few days later.

With each follow-up email, you can change up your messaging to employ more urgency and FOMO (i.e. fear-of-missing-out) tactics.

The simplest way to do this is to add urgency in the subject line like this example from StrongVPN.

However, a more creative and less abrasive approach would be to consider sending some of the follow-up emails from the founder or CEO’s email address.
You can even ask for feedback within these emails.

## Conclusion

We often refer to churn as a hole in your business’ bucket that customers can leak out of.
If that’s true, then strong dunning emails catch those customers as they leak and put them back in the bucket.
Dunning emails are part of life in a recurring revenue business, and following our six tips will help you collect more revenue and reduce involuntary churn.

**The best approach to churn is one that also attempts to plug the hole in the leaky bucket, before the customers have a chance to exit.** Want to learn how?
Download our free Retry Strategy guide and learn exactly how to use data like decline codes and card types to decrease churn and increase your customer lifetime value by a minimum of 43%.

Get started today:

# Rebilly news, features, and updates for February 2022

As we inch closer to spring the Rebilly team is blooming with updates for February.
Highlights include new integration support, additional KYC functionality, and updated billing and payment options!
See more of what has changed below:

## New integrations

- We added support for the [MercadoPago payment gateway](https://www.rebilly.com/gateways/mercadopago).
- Added Apple Pay, Google Pay and iDEAL support for the [Worldpay payment gateway](https://www.rebilly.com/gateways/worldpay).

## New features and additions

- We made major updates to our Rebilly Instruments library:
    - Added the [JWT property](/docs/dev-docs/example-rebilly-instruments-purchase-data#jwt-property) for the Rebilly Instruments JavaScript library.
    - The Rebilly Instruments JavaScript library now displays the customer's existing payment instruments, when provided a JWT.
    - Added [PayPal support](/docs/dev-docs/setup-rebilly-instruments-paypal).
    - Added [ACH support](/docs/dev-docs/setup-rebilly-instruments-ach).
    - Added the Rebilly Instruments JavaScript library to Rebilly hosted payment forms.
- We upgraded our billing and payment support:
    - Added the option to style Rebilly hosted payment forms.
      For more information, see [Style a hosted payment form](/docs/settings/hosted-payment-forms#style-a-hosted-payment-form).
    - Added FramePay support for automatic configuration for [payment cards](/docs/dev-docs/setup-payment-card-method), [Google Pay™](/docs/dev-docs), [Apple Pay](/docs/dev-docs/setup-apple-pay), [Plaid](/docs/dev-docs/setup-plaid-method).
    - Added the option to pause and resume subscriptions.
      For more information, see [Pause orders](/docs/data-tables/manage-subscriptions#pause-orders).
    - Added the backup payment option.
      If a payment instrument fails on a renewal invoice payment, the backup payment instrument is used.
      For more information, see [Set up a backup payment instrument](/docs/data-tables/manage-customer-payments-and-billing#manage-a-customers-payment-instruments).
- We upgraded the capabilities of our Rebilly risk product:
    - Added the `faceProofRequired` parameter to the `PostKycRequest` endpoint.
      Merchants can now verify a customer identity document against a photo (selfie) of a customer.
      To learn more, see [Facial recognition identity verification](/docs/kyc-and-aml/kyc#facial-recognition-identity-verification).

**Need a gateway integration** that’s not on [our list](../../gateways/)?
Follow our [new integration request guide](/docs/settings/integration-requests) and submit your request.

_Have any questions on these or future updates?
[Shoot us a message](https://www.rebilly.com/support/) and we’ll be happy to help!_

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) to see what you're missing.**

# Orders

An order is a customer's request to purchase items.
Orders contain one-time sales items, subscription items, or both.
Orders generate [invoices](/docs/dev-docs/invoices) that the customer must pay to receive the items.

This topic describes the current order model.

In the legacy order model, an order represents a subscription.
All items in the order use the same recurring interval, trial, and service period anchor.
The `billingStatus` field contains the status of the most recent invoice.
If the order has no recent invoice, `billingStatus` is `unpaid`.

In the current order model, an order is a container for subscription items and one-time sale items.
An order does not include `billingStatus`.
An order can contain multiple subscription items, multiple one-time sale items, or both.
Subscription items can use different billing periods if the anchors for the service period are compatible.
For more information, see [Orders with multiple subscription items and mixed plans](#orders-with-multiple-subscription-items-and-mixed-plans).
Create new orders with [Create an order](/catalog/all/orders/postorder).
`POST /subscriptions` creates a legacy order, and organizations on the current order model reject that request.
To move an existing organization to the current order model, [contact Rebilly support](/support/).

For detailed information on order API endpoints and their properties, see [Order operations](/docs/dev-docs/api/orders/).

## Types of order items

Two types of items can be included in an order:

- [One-time sales](/docs/dev-docs/one-time-sales): Single, non-recurring, charges for products or services.
  Example: A one-time purchase of an internet modem.
- [Subscriptions](/docs/dev-docs/subscriptions): Recurring charges for subscription items that are billed at regular intervals, such as monthly or annually.
  These periods are referred to as service periods.
  An invoice is generated for each service period.
  Example: A monthly pre-paid subscription to an internet service provider.

## Orders with multiple subscription items and mixed plans

Orders can contain multiple subscription items and one-time sales.
For example, a customer purchases a monthly subscription to a streaming service, a subscription to a support service, and a one-time sale of a streaming device.

Orders can contain subscription items with different billing periods.

If one subscription item in the order has a service period anchor configured, you must configure compatible service period anchors for the other subscription items in the order.
Use one of the following configurations:

- Use the same billing period for all subscription items and set the same service period anchor for all subscription items.
- Use a mix of monthly and yearly subscription items.
  Set the service period anchor for monthly subscription items to the same day of the month.
  Set the service period anchor for yearly subscription items to the same day and month of the year.

Use the following properties to configure when invoices are issued and due for subscription items on an order.

### Start time

Use the `startTime` property to set the start date of the service period for subscription items on an order.
The `startTime` property sets the date and time when the service period begins.
For more information, see [Start time](/catalog/all/orders/postorder#!t=request&path=0/startTime).

### Recurring interval

Use the `recurringInterval` property to override the plan settings for subscription items on an order.
The `recurringInterval` property sets the length of the service period for a subscription item.
For more information, see [Create an order](/catalog/all/orders/postorder).

### Invoice issue and due time shift

Use invoice time shift to adjust when the invoices for subscription items on an order are issued and made payable.
Use due time shift to adjust when the payment is due.
If autopay is on, the payment is collected at the due time.
If the invoice is not paid, the invoice moves to past due status after 24 hours.
For more information, see [Invoice time and due time shift](/docs/settings/products-and-pricing#invoice-time-and-due-time-shift).

On an order that does not use invoice time shift or due time shift, the invoice is issued on the renewal date and time.
The invoice is due 1 hour after it is issued.

## Order forms

Use order forms to collect payment for an order.
Rebilly provides [hosted payment forms](/docs/dev-docs/create-a-hosted-payment-form) and also [Billing portals](/docs/settings/billing-portals).
To create your own form, see [Get started](/docs/dev-docs#get-started).

Order forms create an invoice for payment.
When an order is created it has the `pending` status.
When you collect the payment against the invoice, an order that contains subscription items is set to `active`, and a one-time order is set to `completed`.
The `activationTime` property is also set.

To find information on the most recent invoice:

- Reference the `recentInvoiceId`, or [`expand`](#expand-resources) the `recentInvoice` element in the API resource.
  For more information, see [Search filters](/docs/dev-docs/search-filters).
- Use the [retrieve a list of invoices](/docs/dev-docs/api/invoices/getinvoicecollection/) operation.
- Use the UI to [view invoices](/docs/data-tables/manage-invoices#view-invoices).

## Expand resources

Some Rebilly API resources support the use of a query string parameter named `expand`.
This parameter is used to request that additional resources are returned in the `_embedded` property of the response.
The `expand` property accepts a comma-separated list of objects.
For more information, see [Embedded resources](/docs/dev-docs/expand-embedded-resources).

## Order renewals

Rebilly automates the scheduling and generation of renewal invoices.
If `autopay` is active, the payment against the invoices is scheduled automatically.
To stay informed on changes to the order, or when invoices get paid, see [Webhooks](/docs/dev-docs/webhooks-configuration).

Alternatively, use the UI to automate notifications and related tasks.
[Create event-based email notifications](/docs/automations/email-notifications#create-event-based-email-notifications) using the invoice paid and order activated events.

### Subscription renewal reminders

Reminders are sent 30 days, 7 days, and 1 day before an active order that contains subscription items renews.
Each reminder is sent only when the recurring interval of the order meets the minimum for that reminder.
Reminders are not sent for an order that is paused, or that has a pause scheduled to start before the renewal.
Reminders are not sent for the renewal at the end of a trial.
To notify your systems before a trial ends, subscribe to the [Subscription trial end reminder](/docs/automations/webhook-events#subscription-trial-end-reminder) webhook.
Each reminder is sent once for that renewal.
When the renewal time changes, the reminders are sent again for the new renewal time.

| **Reminder** | **When it is sent** | **Recurring interval** | **Event type** |
| --- | --- | --- | --- |
| 30 days | From 30 days before the order renews until 7 days before the order renews. | 90 days or more | `subscription-renewal-reminder-30-days` |
| 7 days | From 7 days before the order renews until 1 day before the order renews. | 14 days or more | `subscription-renewal-reminder-7-days` |
| 1 day | From 1 day before the order renews until the order renews. | Longer than 1 day | `subscription-renewal-reminder-1-day` |

A reminder is not sent after its period ends.
For example, if the renewal time of an order with a yearly recurring interval changes to 5 days from now, the order receives the 7-day and 1-day reminders.

To notify your systems, subscribe to these webhooks:

- [Subscription renewal reminder, 30 days before renewal](/catalog/all/orders/subscription-renewal-reminder-30-days)
- [Subscription renewal reminder, 7 days before renewal](/catalog/all/orders/subscription-renewal-reminder-7-days)
- [Subscription renewal reminder, 1 day before renewal](/catalog/all/orders/subscription-renewal-reminder-1-day)

## Configure automatic abandonment of pending orders

Use this process to configure the automatic abandonment of pending orders.
An order is abandoned when it is created but not activated before the abandon time is reached.
When an order is abandoned all associated payable invoices are abandoned.

Only pending orders can be abandoned.

Choose from the following options to set the `abandonTime`:

- To set the date and time when the order is abandoned, use the [`abandonTime` parameter](/catalog/all/orders/postorder#!t=request&path=0/abandonTime) when you create an order.
- To deactivate automatic abandonment, pass a `null` value in the [`abandonTime` parameter](/catalog/all/orders/postorder#!t=request&path=0/abandonTime).
- To calculate the `abandonTime` automatically based on the time it was created (`createdTime`) and the TTL of the pending order (`organization.settings.billing.pendingOrderTTL`), do not send the `abandonTime` parameter.

# Invoices

An invoice is a bill for a list of goods and services provided.
If your invoice includes subscription items, it also includes the corresponding service periods and prices.

## Invoice components

An invoice is sent from a merchant's [organization](/docs/dev-docs/organizations-and-websites#organizations) to a [customer](/docs/dev-docs/customers).
The customer may have a billing address and delivery address.
After the first transaction is received and the invoice becomes `partially-paid`, the billing address cannot be changed.
Changes to the billing address, delivery address, or shipping of an order do not update invoices already issued for that order, unless the order is `pending`.
Invoices are sequentially numbered for each customer.
If an invoice is associated with a subscription, the `subscriptionId` value is displayed.
Invoices contain line items.
Each line item may have a product ID, plan ID, quantity, service period and pricing information.

An invoice may have associated [coupons & discounts](#coupons-and-discounts), [shipping](/docs/settings/shipping), [taxes](#taxes), [transactions](/docs/dev-docs/transactions), and [credit memos](/docs/dev-docs/credit-memos).

## Invoice lifecycle

This section describes the invoice lifecycle and related terms.

Deleting invoices is not recommended, it may also be illegal in some jurisdictions.

### Invoice status

The following are all invoice status types.

| Status | Description |
| --- | --- |
| `abandoned` | Invoice is not paid, or not paid in full, and has been abandoned by the merchant. Abandoning an invoice removes credit memo allocations from it. Unused credit returns to the credit memo. When an autopay retry schedule ends and the invoice stays open, credit stays allocated to the invoice. |
| `paid` | Invoice is paid by the customer. |
| `partially-paid` | Invoice amount is partially paid by the customer. |
| `partially-refunded` | Invoice amount is partially refunded to the customer. |
| `past-due` | Invoice is issued to the customer. It is not paid. The payment time-frame has exceeded by more than 24 hours. |
| `refunded` | Invoice amount is fully refunded to the customer. |
| `unpaid` | Invoice is issued to the customer. It is not paid. The payment time-frame has not exceeded. |
| `voided` | Invoice amount is set to zero. Voiding retains the invoice number and lists it in reports but changes the amounts to zero. Voiding an invoice removes credit memo allocations from it. Unused credit returns to the credit memo. |
| `disputed` | Invoice amount paid is disputed by the customer or merchant. |
| `draft` | Invoice that is not issued yet. |
| `quotation` | Invoice with an issued quote. Once the invoice is issued, quote items cannot be modified and must be manually sent to the customer. |

### Invoice issued and paid on or by due date

This section describes the invoice lifecycle for an invoice that is paid on or by the due date.

```mermaid
%%{init: {"flowchart": {"htmlLabels": false}}}%%
graph LR;
    A(1 Invoice issued) --> |Full payment| B(2 Invoice paid in full)
```

1. An upcoming invoice is issued and assigned the `unpaid` status.
2. The invoice is paid in full and assigned the `paid` status.

When an invoice is paid, it may be refunded or disputed.
If an invoice is disputed, you may want to suspend the subscription service until the dispute is resolved.
For more information, see [Pause an order](/docs/data-tables/manage-subscriptions#pause-an-order) or the [Pause a subscription](/docs/dev-docs/api/orders-(legacy)/postsubscriptionpause/) operation.

### Invoice issued and partially paid

This section describes the invoice lifecycle for an invoice that is partially paid.

```mermaid
%%{init: {"flowchart": {"htmlLabels": false}}}%%
graph LR;
    A(1 Invoice issued) --> |Partial payment| C(2 Partially paid)
    C --> |Remaining balance paid| B(Paid)
    B --> |Amount refunded|E(Refunded)
    B --> |Amount refunded|F(Partially refunded)
    C --> |Amount refunded|E(Refunded)
    C --> F(Partially refunded)
```

1. An upcoming invoice is issued and assigned the `unpaid` status.
2. The invoice is partially paid and is assigned the `partially-paid` status.
  After the first transaction is received and the invoice becomes `partially-paid`, the billing address cannot be changed.
  From the partially-paid state:

    - If the customer pays the remaining amount, the invoice is assigned the `paid` status.
      This amount can be `partially-refunded`, or fully `refunded`.
    - If the customer does not pay the remaining amount, the partially paid amount can be `partially-refunded`, or fully `refunded`.

### Invoice issued and not paid

This section describes the invoice lifecycle for an invoice that is not paid.

```mermaid
%%{init: {"flowchart": {"htmlLabels": false}}}%%
graph LR;
    A(1 Invoice issued) --> |No payment| B(2 Unpaid)
    B --> |24 hours after due time| C(Past Due)
    C --> D(Abandoned)
    C -.-> |Reissued| A
    B -.-> |Reissued| A
    D -.-> |Reissued| A
```

1. An upcoming invoice is issued and assigned the `unpaid` status.
2. The invoice is not paid on or before the due date, it retains the `unpaid` status for 24 hours.
3. The invoice exceeds the 24 hour time-frame.
  The invoice is assigned the `past-due` status.
4. The invoice is not paid within the `past-due` time-frame.
5. The merchant decides to abandon the collection of payment.
  Or, the autopay retry attempt limit is exceeded.
  The invoice is assigned the `abandoned` status.

### Invoice past due reminders

Reminders are sent 15, 30, 60, and 90 days after the due date of a renewal invoice that is not paid.
A reminder is sent only while the invoice is `unpaid`, `past-due`, or `partially-paid`.
If the invoice belongs to an order, the order must be `active` or `pending`.
Each reminder is sent once for that due date.
When the due date changes, the reminders are sent again for the new due date.

| **Reminder** | **When it is sent** | **Event type** |
| --- | --- | --- |
| 15 days | From 15 days after the due date until 30 days after the due date. | `invoice-past-due-reminder-15-days` |
| 30 days | From 30 days after the due date until 60 days after the due date. | `invoice-past-due-reminder-30-days` |
| 60 days | From 60 days after the due date until 90 days after the due date. | `invoice-past-due-reminder-60-days` |
| 90 days | From 90 days after the due date until 120 days after the due date. | `invoice-past-due-reminder-90-days` |

A reminder is not sent after its period ends.
For example, a renewal invoice that becomes eligible 45 days after its due date receives the 30-day, 60-day, and 90-day reminders.

To email the customer, use these events:

- [Invoice past due reminder 15 days](/docs/automations/email-notifications-events#invoice-past-due-reminder-15-days)
- [Invoice past due reminder 30 days](/docs/automations/email-notifications-events#invoice-past-due-reminder-30-days)
- [Invoice past due reminder 60 days](/docs/automations/email-notifications-events#invoice-past-due-reminder-60-days)
- [Invoice past due reminder 90 days](/docs/automations/email-notifications-events#invoice-past-due-reminder-90-days)

To notify your systems, subscribe to these webhooks:

- [Renewal invoice reminder, 15 days past due](/catalog/all/invoices/invoice-past-due-reminder-15-days)
- [Renewal invoice reminder, 30 days past due](/catalog/all/invoices/invoice-past-due-reminder-30-days)
- [Renewal invoice reminder, 60 days past due](/catalog/all/invoices/invoice-past-due-reminder-60-days)
- [Renewal invoice reminder, 90 days past due](/catalog/all/invoices/invoice-past-due-reminder-90-days)

## Usage

If you follow the suggested order workflow, you may utilize the invoice using the `expand=recentInvoice` query string parameter and value on the order API requests.
You may also retrieve any invoice by its ID, for example: `GET invoices/123`.

In other resources, the invoice ID may be referred to as the `invoiceId`, `recentInvoiceId`, `initialInvoiceId` or a value with "invoiceId" in the name.

## Invoice issue and due time shift

Use invoice time shift to adjust when the renewal invoice for an order that contains subscription items is issued and made payable.
For more information, see [Invoice time shift](/docs/dev-docs/orders#invoice-issue-and-due-time-shift).

## Webhooks

Use webhooks to notify your systems when certain events occur, and to collect information about the events.
For more information, see [Webhooks](/docs/dev-docs/webhooks-configuration).

To record paid invoices in your own system, or push the data to third parties, create a trigger on the [Invoice paid](/docs/automations/event-types) event.

Rebilly also provides custom webhooks, that enable you to control the payload using placeholders.
These may be useful for integrating directly to third parties without needing to mediate the requests and responses.

## Automate emailing invoices

Use Rebilly to email invoices to your customers.
For more information, see [Automate emailing invoices](/docs/tutorials/automate-emailing-invoices).

## Taxes

Rebilly supports automated tax calculations internationally, using the location of your organization and the location of your customer.
You may also manually adjust the taxes on an unpaid invoice.
Rebilly calculates taxes after an invoice is issued and recalculates them on every invoice change.
The shipping amount is added to tax calculations.
For more information, see [Taxes](/docs/settings/taxes).

To calculate taxes:

- The product must be taxable.
- Your organization must have a full address.
- The customer must have a full address.

If you would like to use third-party tax calculators, [Contact us](/support/).

## Coupons and discounts

For more information on coupons and discounts, see [Coupons and discounts](/docs/settings/coupons-and-discounts) and the [Coupons](/docs/dev-docs/api/coupons/) operations.

# How Customers are Embracing SaaS

The trend lines for the explosion of cloud-centered SaaS solutions continue to point towards staggering growth in the coming years.
While enterprise level SaaS purchases are growing slowly but surely, one of the biggest stories in SaaS has been the huge increase in the number of purchases made by individual customers, independent of a larger corporate IT structure.
This would seem to point to a “democratization” of the software buying world, and marks a valuable potential for SaaS providers to expand their recurring revenue lines.

## SaaS Purchases on a Personal Level

Also referred to as the “Consumerization” of SaaS, this phenomenon is most clearly demonstrated when looking over the per-customer revenues of SaaS providers over the last four years.
From a high of $96,000 per customer in 2011, revenues dropped to $13,000 per customer in 2014.
When combined with the overall increase in SaaS revenues, this indicates an enormous shift from large enterprise clients to individuals as the primary driver of purchases.
Reinforcing this trend is the fact that the average SaaS provider going public in 2014 made 77 percent less per customer than similar companies in 2011.

Silicon Angle predicts a continuation of this trend, and predicted that in the future, software purchasing decisions will continue to decentralize.
There will be more purchases made by individual team leaders without the oversight and curation of company-wide IT departments and other gatekeepers.

While this can make it more time-consuming for SaaS providers to form the kind of sticky relationships that are emblematic of the recurring billing model, industry leaders predict that the overall benefit of an increase in potential for purchasing decision points can only signal good news for SaaS revenue.

## Increase enterprise revenues

Industry-wide revenue forecasts for a variety of SaaS and cloud-based providers continue to be positive, and data services company Box remains the poster child for enterprise level activity.
With revenues of around $300 million in 2014, many analysts are predicting that the company will bring in more than $1 billion in revenues by 2019.

It’s been a long road since the start of the SaaS revolution in the mid 2000s, but with increasing purchasing activity across the size spectrum, the future of SaaS looks promising as customers continue to embrace its solutions.

## Want to learn more about increasing revenue?

**span** In our free price optimization guide, you’ll learn how to set up and run experiments that help you get the most from every sale, with specific experiments based on your business stage, and more.
Get it below:

# New Metrics for Subscription Business Valuations

Why are SaaS startups trading at five times their revenue, twice the valuation of ordinary software companies?
A report from Bessemer Venture Partners concluded that the subscription service pricing model featured by SaaS companies offers a more predictable picture of company’s market value than traditional software companies can for a number of reasons:

Subscriptions make future earnings streams much more predictable for at least the next quarter, and often the one after that as well (based on the length of their contracts).
Churn is the biggest enemy of this.

Depending on growth can be risky for traditional sales models, but with a subscription service, businesses can simply continue to expand the reach of their services as their customers grow.

They interact with their customers regularly, usually monthly, for billing but also by email for updates as well.
This makes it easy to present new services and other offerings to a captive audience.
These companies can pursue growth by purchasing other service startups and upselling their current customers.

## Traditional Valuation Methods

Conventional valuation methods estimate that a business should be valued at the net present value of the total future earnings that it can expect.
Often referred to as “the market approach,” this method is favored by investors who value a business based on a multiple of past earnings.
This can be problematic for growth companies that make market share a higher priority than net income or profits, which is a model most identified with Amazon.

Another common investment practice is “the income method,” which projects a valuation based on the present value of expected cash flows.
Conservative investors tend to look on these expectations skeptically, though.
There is a great deal that can go wrong and no business plans on failing.
The other problem is that this also puts an emphasis on bookings, which makes sense for product companies, not recurring service-based companies.
Because subscriptions are open ended, it’s impossible to tell at customer acquisition what their life-time value (LTV) will be.
Bookings don’t tell you anything about upsells and service expansion.

## A Better Metric

A different metric already exists that is better able to capture the actual financial state of the business: monthly recurring revenue ([MRR](/blog/drilling-down-into-mrr)).
This includes both new accounts, increased price levels, reduced churn numbers and upsells in a single snapshot of the company’s current earning potential.
It certainly takes more work, as MRR tends to vary significantly over the fiscal year.
For greater accuracy, rolling in MRR with new accounts purchase orders and estimated churn creates Committed MRR (CMRR), a more realistic basis for the valuation of a subscription based business.

## Want to learn more about how to boost the metrics that matter?

**span** Download our free guide that’ll show you how to boost your customer lifetime value by 43% or more below:

# Webhook events

This topic describes all webhook events.
Use webhooks to notify your systems when certain events occur and to collect event information.
For information on how to configure webhooks, see [Webhooks](/docs/automations/webhooks).

**Note**

- To create advanced automations, see [Events](/docs/automations/event-types).
- To create email notifications, see [Email notifications](/docs/automations/email-notifications)
- To create automated tagging, see [Automated tagging](/docs/automations/automated-tagging).

## Webhook event list

### AML list possibly matched

Executes when a customer's data matches an entry in the AML list.

---

### Application instance disabled

Executes when an application instance is disabled.
Use this event to perform any necessary cleanup or disable related functionality.

---

### Application instance enabled

Executes when an application instance is enabled.
Use this event to initiate any necessary setup or to enable related functionality.

---

### Autodeposit lookup performed

Executes when an autodeposit lookup is performed.

---

### Balance transaction settled

Executes when a balance transaction has been settled.

---

### Coupon application removed

Executes when a coupon is removed from a customer's account.
Use this event to update the customer's billing information.

---

### Coupon applied

Executes when a coupon is applied to a customer's account.

---

### Coupon expiration modified

Executes when the expiration date of a coupon is modified.

---

### Coupon expired

Executes when a coupon has expired.

---

### Coupon issued

Executes when a new coupon is issued.

---

### Coupon modified

Executes when the details of a coupon are modified.

---

### Coupon redeemed

Executes when a coupon is redeemed.

---

### Coupon redemption canceled

Executes when a coupon redemption is canceled.

---

### Credit memo applied

Executes when a credit memo is applied to an invoice.

---

### Credit memo created

Executes when a new credit memo is created.

---

### Credit memo modified

Executes when the details of a credit memo are modified.

---

### Credit memo partially applied

Executes when a credit memo is partially applied to an invoice.

---

### Credit memo voided

Executes when a credit memo is voided.

---

### Customer created

Executes when a new customer is created.

---

### Customer merged

Executes when two customer records are merged.

---

### Customer one time password requested

Executes when a customer attempts to log in with One-Time Password (OTP) active.

---

### Customer redirected offsite

Executes when a customer is redirected offsite.

---

### Customer returned

Executes when a customer returns to the site after being redirected offsite.

---

### Customer tax number validated

Executes when a customer's tax number is validated.

---

### Customer updated

Executes when an existing customer record is updated.

---

### Data export completed

Executes when a data export is completed.

---

### Data export failed

Executes when a data export fails.

---

### Dispute created

Executes when a dispute is created.

---

### Dispute modified

Executes when a dispute is modified.

---

### Experian check performed

Executes when an [Experian identity check](/docs/app-store/experian-integration) is performed.

---

### Gateway account downtime ended

Executes when downtime for a gateway account has ended.
Use this event to resume any paused transactions.

---

### Gateway account downtime started

Executes when downtime for a gateway account begins.
Use this event to pause transactions, or to reroute them to a backup gateway.

---

### Gateway account limit reached

Executes when a gateway account reaches its transaction limit.
Use this event to pause transactions, or to reroute them to a backup gateway.

---

### Gateway account onboarding completed

Executes when a gateway account is successfully onboarded.

---

### Gateway account onboarding failed

Executes when a gateway account onboarding fails.

---

### Gateway account requested

Executes when a gateway account is requested.

---

### Hard usage limit reached

Executes when a hard usage limit threshold for an item with a metered billing plan is reached.
If a hard usage limit is reached, a customer can no longer use a metered billing service.

---

### Invoice abandoned

Executes when an invoice is abandoned.

---

### Invoice created

Executes when a new invoice is created.

---

### Invoice issued

Executes when an invoice is issued.

---

### Invoice modified

Executes when an invoice is modified.

---

### Invoice paid

Executes when an invoice is paid.

---

### Invoice partially paid

Executes when an invoice is partially paid.

---

### Invoice partially refunded

Executes when an invoice is partially refunded.

---

### Invoice past due

Executes when an invoice is past due.

---

### Invoice refunded

Executes when an invoice payment is refunded.

---

### Invoice reissued

Executes when an invoice is reissued.

---

### Invoice tax calculation failed

Executes when an invoice tax calculation fails.

---

### Invoice voided

Executes when an invoice is voided.

---

### KYC document accepted

Executes when a KYC document is accepted.

---

### KYC document archived

Executes when a KYC document is archived.

---

### KYC document created

Executes when a new KYC document is created.

---

### KYC document modified

Executes when a KYC document is modified.

---

### KYC document rejected

Executes when a KYC document is rejected.

---

### KYC document reviewed

Executes when a KYC document is reviewed.

---

### KYC request attempted

Executes when a KYC request is attempted.

---

### KYC request failed

Executes when a KYC request fails.

---

### KYC request fulfilled

Executes when a KYC request is fulfilled.

---

### KYC request partially fulfilled

Executes when a KYC request is partially fulfilled.

---

### Lead source changed

Executes when a lead source is changed.
For more information on lead sources, see [Lead source attribution](/docs/dev-docs/lead-source-attribution).

---

### Offsite payment completed

Executes when an offsite payment is completed.

---

### Order abandoned

Executes when an order is abandoned.

---

### Order change applied

Executes when an order change is applied and the items of the order are replaced.

---

### Order change canceled

Executes when a pending order change is canceled before it is applied.

---

### Order change created

Executes when an order change is created.
If the change applies now, the items of the order are replaced immediately.
If the change applies at the next renewal, the change stays pending until the order renews.

---

### Order completed

Executes when an order is completed.

---

### Order delinquency reached

Executes when the delinquency period of an order is reached.
The delinquency period is the length of time after which an order that contains subscription items is canceled if it is not paid.
For information on how to set the delinquency period, see [Create an order](/docs/data-tables/manage-customer-payments-and-billing#create-an-order).

---

### Organization tax number validated

Executes when a tax number of an organization is validated.

---

### Payment card created

Executes when a payment card is created.

---

### Payment card expiration reminder, 14 days before expiration

Executes when the active default payment card of a customer is 14 days from expiring.
The reminder is sent only when the customer has an order that contains subscription items, and that order has started and is not churned.
The reminder is sent once for that expiration, and remains available until 7 days before the card expires.
For more information, see [Payment card expiration reminders](/docs/dev-docs/payment-instruments#payment-card-expiration-reminders).

---

### Payment card expiration reminder, 7 days before expiration

Executes when the active default payment card of a customer is 7 days from expiring.
The reminder is sent only when the customer has an order that contains subscription items, and that order has started and is not churned.
The reminder is sent once for that expiration, and remains available until 1 day before the card expires.
For more information, see [Payment card expiration reminders](/docs/dev-docs/payment-instruments#payment-card-expiration-reminders).

---

### Payment card expiration reminder, 1 day before expiration

Executes when the active default payment card of a customer is 1 day from expiring.
The reminder is sent only when the customer has an order that contains subscription items, and that order has started and is not churned.
The reminder is sent once for that expiration, and remains available until the card expires.
For more information, see [Payment card expiration reminders](/docs/dev-docs/payment-instruments#payment-card-expiration-reminders).

---

### Payment card expired

Executes when a customer's payment card expires.

---

### Payment instrument modified

Executes when a payment instrument is modified.

---

### Payout request batch created

Executes when a batch of payout requests is created.

---

### Payout request batch deleted

Executes when a batch of payout requests is deleted.
The payout requests in the batch are not deleted.
They are removed from the batch.

---

### Payout request batch modified

Executes when the description or the allocation order of a batch of payout requests changes.

---

### Payout request canceled

Executes when a payout request is canceled.

---

### Payout request changed

Executes when a payout request or one of its [allocations](/docs/dev-docs/payout-requests#allocations) changes.
The event payload includes the type of change, such as an approval, a split, or a completed allocation.

---

### Payout request created

Executes when a new payout request is created.

---

### Payout request modified

Executes when a payout request is modified.

---

### Payout request fulfilled

Executes when a payout request is marked as fulfilled.

---

### Quote accepted

Executes when a quote is accepted by a customer.
Use this event to initiate the billing process or update your records.

---

### Quote canceled

Executes when a quote is canceled.

---

### Quote created

Executes when a new quote is created.

---

### Quote expired

Executes when a quote expires.

---

### Quote issued

Executes when a quote is issued.

---

### Quote recalled

Executes when a quote is recalled.

---

### Quote rejected

Executes when a quote is rejected.

---

### Quote updated

Executes when a quote is updated.

---

### Ready to pay requested

Executes when a customer requests available payment methods for a payment.

---

### Renewal invoice issued

Executes when a renewal invoice is issued.

---

### Renewal invoice payment canceled

Executes when a renewal invoice payment is canceled.

---

### Renewal invoice payment declined

Executes when a renewal invoice payment is declined.
A renewal invoice is a recurring invoice for a plan or product which is charged automatically.

---

### Renewal invoice reminder, 15 days past due

Executes when an unpaid renewal invoice is 15 days past its due date.
The reminder is sent once for that due date, and remains available until 30 days after the due date.
For more information, see [Invoice past due reminders](/docs/dev-docs/invoices#invoice-past-due-reminders).

---

### Renewal invoice reminder, 30 days past due

Executes when an unpaid renewal invoice is 30 days past its due date.
The reminder is sent once for that due date, and remains available until 60 days after the due date.
For more information, see [Invoice past due reminders](/docs/dev-docs/invoices#invoice-past-due-reminders).

---

### Renewal invoice reminder, 60 days past due

Executes when an unpaid renewal invoice is 60 days past its due date.
The reminder is sent once for that due date, and remains available until 90 days after the due date.
For more information, see [Invoice past due reminders](/docs/dev-docs/invoices#invoice-past-due-reminders).

---

### Renewal invoice reminder, 90 days past due

Executes when an unpaid renewal invoice is 90 days past its due date.
The reminder is sent once for that due date, and remains available until 120 days after the due date.
For more information, see [Invoice past due reminders](/docs/dev-docs/invoices#invoice-past-due-reminders).

---

### Risk score changed

Executes when a transaction risk score changes.
Each transaction has a numeric risk score attribute.

---

### Soft usage limit reached

Executes when a soft usage limit threshold for an item with a metered billing plan is reached.
Soft usage limits are used to notify customers that their usage is near the hard limit of their metered billing plan, so that they can upgrade their plan before the [hard limit is reached](#hard-usage-limit-reached).

---

### Order activated

Executes when an order that contains subscription items is activated.

---

### Order canceled

Executes when an order that contains subscription items is canceled.

---

### Order churned

Executes when an order that contains subscription items is churned.

---

### Order created

Executes when a customer signs up to a subscription service.
At this point, the order that contains subscription items has the [pending status](/docs/dev-docs/subscriptions#subscription-status) and is not active.
The order that contains subscription items becomes active when an invoice is paid, or when a payment instrument is verified for free trial.

---

### Order downgraded

Executes when an order that contains subscription items is downgraded.

---

### Subscription items changed

Executes when subscription items on an order that contains subscription items are changed.

---

### Subscription modified

Executes when an order that contains subscription items is modified.

---

### Subscription pause created

Executes when a pause is created for an order that contains subscription items.

---

### Subscription pause modified

Executes when a pause is modified for an order that contains subscription items.

---

### Subscription pause revoked

Executes when a pause is revoked for an order that contains subscription items.

---

### Order paused

Executes when an order that contains subscription items is paused.

---

### Subscription quantity filled limit reached

Executes when the quantity filled limit is reached for a subscription item on an order that contains subscription items.

---

### Order reactivated

Executes when an order that contains subscription items is reactivated.

---

### Order renewed

Executes when an order that contains subscription items is renewed.

---

### Order resumed after a pause

Executes when an order that contains subscription items is resumed.

---

### Order trial converted

Executes when the first invoice is paid and the trial has ended.

---

### Subscription renewal reminder, 30 days before renewal

Executes when an active order that contains subscription items is 30 days from renewal.
The reminder is sent only when the recurring interval of the order is 90 days or more.
The reminder is not sent for a paused order, or for the renewal at the end of a trial.
The reminder is sent once for that renewal, and remains available until 7 days before the order renews.
For more information, see [Subscription renewal reminders](/docs/dev-docs/orders#subscription-renewal-reminders).

---

### Subscription renewal reminder, 7 days before renewal

Executes when an active order that contains subscription items is 7 days from renewal.
The reminder is sent only when the recurring interval of the order is 14 days or more.
The reminder is not sent for a paused order, or for the renewal at the end of a trial.
The reminder is sent once for that renewal, and remains available until 1 day before the order renews.
For more information, see [Subscription renewal reminders](/docs/dev-docs/orders#subscription-renewal-reminders).

---

### Subscription renewal reminder, 1 day before renewal

Executes when an active order that contains subscription items is 1 day from renewal.
The reminder is sent only when the recurring interval of the order is longer than 1 day.
The reminder is not sent for a paused order, or for the renewal at the end of a trial.
The reminder is sent once for that renewal, and remains available until the order renews.
For more information, see [Subscription renewal reminders](/docs/dev-docs/orders#subscription-renewal-reminders).

---

### Subscription trial end reminder

Executes when a reminder is sent about an upcoming subscription trial end.

---

### Order trial ended

Executes when the trial ends for an order that contains subscription items.

---

### Order upgraded

Executes when an order that contains subscription items is upgraded.

---

### Transaction amount discrepancy found

Executes when a transaction amount discrepancy is found on reconciliation.

---

### Transaction declined

Executes when a transaction is declined by the payment gateway.

---

### Transaction discrepancy found

Executes when a paid amount differs from the expected amount.

---

### Transaction partially refunded

Executes when a transaction is partially refunded.

---

### Transaction process requested

Executes at a point just before the transaction process is initialized.
This provides an opportunity to review the transaction and perform an action based on its attributes.

---

### Transaction processed

Executes when a transaction has been successfully processed.

---

### Transaction reconciled

Executes when a transaction is reconciled with the bank statement.

---

### Transaction refunded

Executes when a transaction is refunded.

---

### Transaction timeout resolved

Executes when a transaction timeout is resolved.

---

### Transaction voided

Executes when a transaction is voided.

---

### Trial usage limit reached

Executes when a trial usage limit threshold is reached.

---

### Waiting gateway transaction completed

Executes when a waiting gateway transaction is completed.

# Transaction reconciliation

This topic describes how to manage transaction reconciliation.

Reconciliation ensures the accuracy and validity of financial information by comparing transactions and activity to supporting documentation.
The process may also involve resolving any discrepancies that are discovered.
A good reconciliation process ensures that unauthorized changes have not occurred on transactions during processing.

Amount and result are the two main types of discrepancies.
An amount discrepancy may occur if someone uses another system to partially refund a transaction.

The result discrepancy is the most commonly occurring.
This occurs when an approved transaction is unintentionally marked as declined, canceled, or abandoned.
If there is a result discrepancy, fulfill the customer's order, or in some cases, void the order — for example, if a subsequent duplicate order was placed.

Occasionally, a transaction request may time out or have a connection issue.
When this occurs, the result may be out of sync with the payment processor data.
In addition, transactions may be completed offsite, where they may take upwards of days to complete and will have an updated result.
Adjust gateway account settings to define the length of time in which Rebilly must wait for the completion of a suspended offsite transaction.
The default value is 1 hour (3600 seconds).
If a transaction is not completed within this time frame, Rebilly abandons the transaction.
When reconciling transactions, keep this time frame in mind.
For example, rather than retrieving transactions each minute, you may want to retrieve them up to an hour ago, or more.

Discrepancies should account for under 1% of all transactions.
Almost all discrepancies are false declines, not false approvals.

## Source of truth

The sources of truth are the payment processors.
Rebilly attempts to reconcile to maintain accurate data, so that Rebilly can be used a surrogate source of truth.

Rebilly queries transactions that timeout or encounter connection errors immediately, and again within hours if unsuccessful.

Additionally, each day, Rebilly attempts to download and reconcile transaction data from the previous day to assess it against Rebilly recorded data.
When this process is complete, the `isReconciled` transaction field is set to `true`.
If a discrepancy is found, the `hadDiscrepancy` transaction field is set to `true`.
Both of these fields can be used to support your own unique reconciliation approach.

## Reconciliation approach

This process describes an approach for transaction reconciliation.

Depending on your specific systems, and how you manage data, adapt or adjust this approach to suit your needs.

### 1. Request a data export of a resource

Use the [Download resource data](#download-resource-data) process to request data from the previous hour at 30 minute intervals.

This data is reliable but not reconciled yet.
If your data structure can accommodate it, track reconciliations and discrepancies.
An alternative is to receive webhooks with transaction data for each processed transaction.
This approach is asynchronous and does not delay transactions.

### 2. Retrieve export data from the previous 2 days

After a request, before querying the status of the data export, allow 2 minutes for the data export to complete.
For large files that contain tens of millions of records, you may need to wait up to 5 or 10 minutes.

Use the [Download resource data](#download-resource-data) process to request data from the previous 2 days at 08:00 every day.

By now, most of this data may already be reconciled, this step ensures that there are no outstanding discrepancies.

Requesting data each day from the previous 2 days creates duplicate data.
For example, on Monday you request transaction data from Saturday and Sunday, and on Tuesday you request data from Sunday and Monday.
To manage duplicate data, use the unique transaction ID value to identify and determine if your systems must update or insert a record.

### 3. Retrieve export data from the previous week

Before querying the status of the data export after a request, allow 2 minutes for the data export to complete.
For large files that contain tens of millions of records, you may need to wait up to 5 or 10 minutes.

Use the [Download resource data](#download-resource-data) process to request data from the previous week at 08:00 every day.

The export should contain few discrepancies, and every payment method that is capable of reconciling should already be reconciled, with discrepancies identified.
Use [arguments](/docs/dev-docs/export-configuration#arguments) to limit the export to transaction with discrepancies.

## Download resource data

This process describes how to download resource data.
To use resource data to reconcile discrepancies, see [Reconciliation approach](#reconciliation-approach).

### 1. Request the data export

Execute the [Request the data export of a resource](/catalog/all/data-exports/postdataexport) operation.
To configure parameters, see [Date ranges](/docs/dev-docs/export-configuration#date-ranges), [Fields](/docs/dev-docs/export-configuration#fields), and [Arguments](/docs/dev-docs/export-configuration#arguments).

To obtain API keys, see [Manage API keys](/docs/dev-docs/api-keys#manage-api-keys).

#### Example request

```cURL
curl -XPOST 'https://api-sandbox.rebilly.com/experimental/organizations/your-organization-id/data-exports' \
-H 'Accept-Encoding: gzip, deflate, br' \
-H 'REB-APIKEY: your-private-key' \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json, text/plain, */*' \
-H 'User-Agent: your-console-library' \
--data-binary '{"name":"test-export-2018-01-12","format":"csv","resource":"transactions","dateRange":{"start":"yesterday", "end":"today"}}' --compressed
```

In the response:

- `id`: Use this unique value to identify the data export request.
- `status`: `pending`: Specifies that the request was received but is not being processing yet.
  The sequence of statuses is `pending`, `queued`,`processing`, and then `completed`.

In the response, expand the `_links` object, and locate the download link.

### 2. Retrieve the download link

Using the ID from the request in the previous step, execute the [Retrieve a data export request](https://reports-api-docs.rebilly.com/tag/Data-exports/operation/GetDataExport) operation.

In the response, expand the `_links` object to obtain the `download` URL.

#### Example request

```cURL
curl 'https://api-sandbox.rebilly.com/experimental/organizations/your-organization-id/data-exports/55746043-2850-4ed7-bc1e-b295c7748405' \
-H 'Accept-Encoding: gzip, deflate, br' \
-H 'REB-APIKEY: your-private-key' \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json, text/plain, */*' \
-H 'User-Agent: your-console-library'
```

### 3. Download the file

Using the `download` URL from the previous step, execute the [Download a file](/catalog/all/files/getfiledownload) operation.

#### Example request

```cURL
curl 'https://api-sandbox.rebilly.com/organizations/your-organization-id/files/6ba65349-5839-4934-a443-557a0d5370a0/download' \
-H 'Accept-Encoding: gzip, deflate, br' \
-H 'REB-APIKEY: your-private-key' \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json, text/plain, */*' \
-H 'User-Agent: your-console-library'
```

# API License Agreement

⚠️ Notice

This API License Agreement has been replaced by the Rebilly Subscription Agreement effective January 21, 2026.

For all new customers and renewals, the governing agreement is:

https://www.rebilly.com/legal/subscription-agreement

This legacy agreement continues to apply only to customers who accepted it prior to that date.

IMPORTANT: This API License Agreement ("Agreement") is a legally binding contract between you, as Licensee ("You" or "Licensee"), and Rebilly Inc. and applies to your use of Rebilly’s recurring billing software and Rebilly Resources, as defined herein, available through www.rebilly.com (collectively, the "Service").
The Service includes an Application Programming Interface ("API" or "Program"), which is further discussed and defined below. If you do not agree to be bound by the terms and conditions of this Agreement, please do not proceed with the use of our Service or the API.
In this Agreement, the terms "you" or "your" mean any person or entity using the Service ("Users"). Unless otherwise stated, the terms "Rebilly," "we" or "our" will collectively refer to Rebilly Inc. acting on behalf of itself and its affiliated companies, including Rebilly SRL, the owner of the Rebilly intellectual property.
This Agreement becomes effective as of the date you first access, download or use the API, or click the Acceptance button below ("Effective Date"). This Agreement shall continue until terminated either by us or by you. Even after termination of this Agreement, certain provisions will survive, as discussed herein.
This Agreement incorporates the Data Processing Addendum ("DPA"), to the extent applicable, which governs Rebilly’s processing of Licensee Data in connection with the Service. Rebilly’s Website Terms of Use apply solely to use of Rebilly’s marketing website and do not govern the Rebilly platform, APIs, or Services.

YOU ARE ENTERING A LEGALLY BINDING CONTRACT: BY COPYING, DOWNLOADING, OR OTHERWISE USING THE REBILLY API YOU ARE EXPRESSLY AGREEING TO BE BOUND BY ALL TERMS OF THIS AGREEMENT.
IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, YOU ARE NOT AUTHORIZED TO COPY, DOWNLOAD, INSTALL OR OTHERWISE USE THE REBILLY API.

## AGREEMENT

### Licenses and Restrictions

**1.1.** API License. Subject to the terms and conditions of this Agreement, Rebilly grants to you a non-exclusive, non-transferable, non-sublicense-able, limited license to use the Application Programming Interface ("API License") solely in accordance with the terms of this Agreement. The API License allows you to do only the following:

**1.1.1.** Access the Rebilly Resources ("Resources") and use the API certificate only in the manner provided by Rebilly; Rebilly Resources may include but are not limited to resources for customers, invoices, payment cards, subscriptions, transactions, block lists, disputes, layouts, plans, authorization options, credentials, and tokens;

**1.1.2.** Use the API as necessary to conduct your business;

**1.1.3.** Execute transactions using the Rebilly Service; and

**1.1.4.** Comply with this Agreement and all applicable laws in connection with your use of the API and Service.

**1.2.** Any combination of Sections 1.1.1-1.1.4 above shall be deemed "Permitted Use."
Permitted Use is subject to all terms set forth in this Agreement.
To enable your Permitted Use, Rebilly will provide you with a confidential identification code, Certificate, and User ID that shall permit you to use the API.
The User ID will remain the property of Rebilly and may be revoked or terminated by Rebilly immediately if you fail to keep it confidential (for example by sharing it with any third party, other than a Third Party Service Provider), if compromised in any way, or if you use or access the Program or Rebilly Resources in any manner not expressly permitted under this Agreement.
A "Third Party Service Provider" shall refer to any third party service provider who is reasonably needed to undertake the Permitted Use and who is subject to all restrictions herein, including confidentiality provisions at least as restrictive as those set forth in Section 7 ("Confidential Information").
“Affiliate” means any entity that directly or indirectly controls, is controlled by, or is under common control with Licensee.

**1.3.** General License Conditions and Restrictions. You agree that you will neither use the Resources or the Program in any way not expressly permitted under this Agreement, nor use any alternative means such as robots, spiders, scraping or other technology to access, query, or use www.Rebilly.com, or any other website owned or operated by Rebilly or any of its affiliates (the "Rebilly website"), Resources, or Program to obtain any information, other than as provided by Rebilly to you pursuant to this Agreement.
You may not distribute, facilitate, enable or allow access or linking to the Rebilly Resources from any location or source other than your website. Following expiration or termination of this Agreement, you shall not use (or facilitate use of) any alternative means such as robots, spiders, scraping or other technology to access, query, or use the Rebilly website, Resources, or Program to obtain any information.

**1.4.** Restrictions and Conditions on Use.
You agree that you shall not use the Program or Resources, or permit same to be used in any manner, whether directly or indirectly, that would (i) permit the disclosure of the Program or Resources, to, or the use of the Program or Resources by, anyone other than your employees, Affiliates, and Third Party Service Providers, or (ii) enable the Program to be used in any location other than your website (unless Rebilly otherwise has agreed in writing for your use elsewhere).
Licensee shall remain responsible for compliance with this Agreement by its Affiliates and Authorized Users.

**1.4.1.** Specific Prohibitions: Notwithstanding anything to the contrary in this Agreement, you are specifically prohibited from doing any of the following:

**1.4.1.1.** You shall not sell, transfer, sublicense, or disclose your User ID to any third party (other than Third Party Service Providers); and

**1.4.1.2.** You shall not modify, decompile or otherwise alter the Program or Resources.

### Intellectual Property

**2.1. Resources and IP Ownership.**
Except as otherwise expressly provided in this Agreement, as between Rebilly and You, Rebilly SRL (or its licensors) retains all right, title and interest in and to all intellectual property rights (including, without limitation, all patent, trademark, copyright, trade dress, trade secret, database and other intellectual property rights) embodied in or associated with the Program, the Rebilly Resources, the Rebilly website, and any and all Rebilly services, technology, documentation, and content created or derived therefrom. Rebilly Inc. is authorized by Rebilly SRL to grant the licenses set forth in this Agreement.
This Agreement does not create any implied licenses, and all rights not expressly granted to You are expressly reserved by Rebilly SRL and its licensors. You shall not take any action inconsistent with Rebilly SRL’s ownership of the Program, the Rebilly website, or the Rebilly Resources.

**2.2.** No Sublicensing. Any license rights granted hereunder are granted exclusively to you and may not be sublicensed, transferred or assigned, except as otherwise provided herein.

**2.3.** Trademark Ownership. Rebilly owns all of its trademarks and service marks, including its logo ("Rebilly Marks"). While this Agreement remains in effect you are granted a non-exclusive, non-transferable, non-sublicenseable, non-assignable right to display the Rebilly Marks on your website. Rebilly may from time-to-time update or revise its trade dress and, in such event, you agree to immediately remove any non-current Rebilly Marks from your website. Rebilly may also revoke this limited grant at any time and for any reason.
If you use the Rebilly Marks your use is at your own risk. Although Rebilly has taken reasonable efforts to ensure its Marks do not infringe upon the rights of others, you agree that you will not seek indemnity from Rebilly in the event of a claim from a third party arising out of your use of the Rebilly Marks. Rebilly makes no representation nor does Rebilly warrant or agree to defend or hold you harmless from any such claim. To the contrary, Rebilly shall not be liable for any costs or damages (including attorneys' fees) associated with claims made against you related to the Rebilly Marks. Because intellectual property law is inherently unpredictable, you expressly agree that your use of the Rebilly Marks is conditioned upon these terms. If you do not agree, do not use the Rebilly Marks.

**2.4.** Uptime; Rate Limiting. Rebilly does not guarantee uninterrupted availability of the Rebilly website or Rebilly Resources.
Availability commitments, maintenance windows, response times, and service credits (if any) are governed exclusively by the applicable Subscription Agreement or service level agreement between the parties.
Rebilly reserves the right to limit the rate and usage of its Resources as it deems appropriate and will use commercially reasonable efforts to provide advance notice of material rate-limit changes where practicable.

### Term and Termination

**3.1.** Termination.
Either party may terminate this Agreement for convenience upon reasonable written notice.
Either party may terminate this Agreement immediately for material breach that remains uncured after written notice, or immediately where required by law, security risk, or regulatory obligation.

**3.2.** Survival. Notwithstanding termination of this Agreement, the following Sections will survive and remain binding: Section 1.3 ("General License Conditions and Restrictions"), Section 1.4 ("Restrictions and Conditions of Use"), Section 2 ("Intellectual Property"), Section 3.2 ("Survival"), Section 6 ("Representations and Warranties"), Section 7 ("Confidential Information"), Section 8.4 ("Limitation of Liability"), Section 9 ("Indemnification"), and Section 10 ("General").

**3.3.** Effects of Termination. Upon termination of this Agreement, your User ID will be revoked and all licenses granted pursuant to this Agreement will immediately terminate unless such licenses are expressly stated as surviving.

### Security and Stability

**4.1.** Rebilly reserves the right to change the method of access to the Program and/or Resources at any time to ensure the safety and security of its environment. In the event of degradation or instability of Rebilly’s systems or in an emergency, Rebilly may, to the extent reasonably necessary, temporarily suspend Licensee’s access in order to protect the operational stability and security of the Rebilly system. Rebilly will use commercially reasonable efforts to notify Licensee of any such suspension where practicable.

### API -- Third Party Products

**5.1** The Service may provide you with access to, be integrated with, or contain links or references to, products, services, data, information, websites or other materials which are provided or operated by third parties (collectively,
"**Third Party Products**"). In such cases, Rebilly only provides API services for connecting these Third Party Products to the Service provided by Rebilly not the Third Party Product itself.
“Rebilly Website” means Rebilly’s public marketing website located at www.rebilly.com and excludes the API, Hosted Payment Pages, Admin UI, and operational platform components.

**5.2** Any exchange of data between you and any third-party provider of a Third Party Product, is solely between you and the applicable third-party provider. By integrating with a Third Party Product, you acknowledge and agree that:
(i) Licensee Data may be shared with the third party provider; and (ii) Rebilly shall not be held liable to and shall not accept any liability, obligation or responsibility whatsoever for any loss or damage in connection with the data we provide to such third parties.
Rebilly only exchanges Licensee Data with third-party providers that are expressly configured or authorized by Licensee (including payment gateways).
Rebilly does not disclose or sell Licensee transaction data to unrelated third parties for transaction processing purposes.

### Disclaimer of Warranties

**5.3** YOU ACKNOWLEDGE AND AGREE THAT YOUR ACCESS TO THE RESOURCES AND YOUR USE OF THE API IS PROVIDED HEREUNDER ON AN "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND. EXCEPT AS EXPRESSLY PROVIDED IN THIS AGREEMENT, REBILLY DISCLAIMS ALL WARRANTIES AND CONDITIONS, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OR TERMS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. REBILLY DOES NOT REPRESENT OR WARRANT THAT THE REBILLY WEBSITE SHALL OPERATE SECURELY OR WITHOUT INTERRUPTION. You acknowledge that you have not entered into this Agreement in reliance upon any warranty or representation.

Your Representations and Warranties
**6.1** You represent and warrant that you will comply with all laws and regulations applicable to your products and/or services, including the promotion and marketing thereof, in every jurisdiction in which your products and/or services are delivered or offered.

### Confidential Information

**7.1.** Confidential Information Defined. Rebilly may from time-to-time disclose to you information that is marked "Confidential" that contains proprietary information for your sole use in relation to this Agreement. If disclosed orally, Rebilly may identify certain information as "Confidential." All such information shall be considered "Confidential Information." In addition, the terms of this Agreement, Rebilly Resources, the Program, and your User ID shall be deemed Confidential Information regardless of whether marked or designated "Confidential."

**7.2.** Your Obligations. You agree to keep and hold Rebilly's Confidential Information in confidence and not disclose such Confidential Information to third parties nor use Rebilly's Confidential Information for any purpose other than as required to perform under this Agreement. In the event you receive a subpoena or are otherwise asked to disclose Confidential Information pursuant to a court order or pursuant to other legal authority (including governments and regulatory agencies and bodies) you agree to immediately notify Rebilly of such request or order upon learning of the existence or likely existence of such requirement.
In such instances, you agree to use reasonable efforts to avoid disclosure of Confidential Information and, if necessary, use reasonable efforts to obtain confidential treatment or protection by order of any disclosed Confidential Information (e.g. via protective order). Notwithstanding any contrary provision in Section 10.6 ("Notice"), notification to Rebilly under this Section 7.2 must be provided by personal delivery on a same day or overnight basis, overnight courier, confirmed facsimile, or confirmed email. Your obligations under this Section shall survive the termination of this Agreement for a period of five (5) years.

**7.3.** Rebilly Obligations.
Rebilly shall protect Licensee’s Confidential Information with at least the same degree of care it uses to protect its own confidential information, and in no event less than reasonable care, and shall notify Licensee without undue delay of any unauthorized access or disclosure of such Confidential Information.

### Data Protection

**8.1** Privacy: Please read our [Privacy Notice](/privacy-notice), for more information about how we collect and use personal information about you when you use and interact with the Rebilly Service.

**8.2** Protection of Licensee Data: The terms of the [data processing addendum](/content-assets/Rebilly-Customer-DPA-GDPR-49fc1a6f48deaec6.pdf) ("DPA") are hereby incorporated by reference and shall apply to the extent Rebilly processes Licensee Data (as defined in the DPA) in
connection with the provision of the Service.

**8.3** Rebilly Data: Notwithstanding anything to the contrary in the Agreement (including the DPA), Licensee acknowledges that Rebilly shall have a right to use data relating to and/or obtained in connection with the operation, support and/or use of the Service for its legitimate internal business purposes, such as billing, account management, technical support, product development and sales and marketing. Rebilly shall collect and process such data in compliance with applicable data protection laws and the Rebilly [Privacy Notice](/privacy-notice).

**8.4 Limitation of Liability.**

REBILLY SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS (HOWEVER ARISING, INCLUDING NEGLIGENCE, BREACH OF CONTRACT, BREACH OF WARRANTY, OR ANY OTHER FORM OF ACTION) ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT, EVEN IF REBILLY IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

### Indemnification

**9.1** You agree to indemnify Rebilly against any and all claims, losses, liabilities, costs and expenses, including reasonable attorneys' fees (collectively, "Claims") which Rebilly may incur as a result of any third party actions (court, arbitration, or otherwise) arising from or relating to: (1) Your or Third Party Service Provider's use of the Program, the Rebilly Resources, Services or Technology in excess of the rights granted hereunder or (2) Resources, Technology, or Services provided by You or others on your behalf.
Your agreement to indemnify Rebilly hereunder includes the obligation to provide full legal defense to Rebilly upon tender by Rebilly, regardless of outcome of any action or proceeding.
Rebilly shall indemnify Licensee against third-party claims alleging that the Rebilly API or Rebilly Resources infringe a third-party intellectual property right, subject to the limitations and procedures set forth in the applicable Subscription Agreement.

### General

**10.1** Governing Law; Venue. This Agreement shall be construed in accordance with and governed exclusively by the laws of the State of Texas applicable to agreements made among Texas residents and to be performed wholly within such jurisdiction, regardless of such parties' actual domiciles. Any cause of action arising under this Agreement shall be brought exclusively in a court in Travis County, Texas.

**10.2.** Publicity. You agree not to make any public statement regarding the terms of this Agreement, any aspect thereof, or the Program without Rebilly's prior written approval, which may be withheld at its sole discretion.

**10.3.** Independent Contractors. This Agreement does not create, and nothing contained in this Agreement shall be deemed to establish, a joint venture between the parties, or the relationship of employer-employee, partners, principal-agent or the like.

**10.4.** No Assignment. You may not assign your rights nor delegate your duties under this Agreement without Rebilly's prior written consent, which may be withheld in its sole discretion.

**10.5.** Severability. If any provision of this Agreement is ever held to be invalid or unenforceable for any reason, the remaining provisions shall continue in full force and effect without being impaired or invalidated in any way.

**10.6.** Notice. Any notice under this Agreement shall be in writing and delivered by personal delivery, overnight courier, confirmed email, or certified or registered mail, return receipt requested, and shall be deemed given upon personal delivery, one (1) day after deposit with an overnight courier, five (5) days after deposit in the mail, or upon confirmation of receipt of email. Notices to Rebilly must be sent to help@rebilly.com (or such other address Rebilly designates in writing).

**10.7.** Entire Agreement; Waiver.
This Agreement incorporates the Data Processing Addendum (“DPA”), to the extent applicable, which governs Rebilly’s Processing of Licensee Data in connection with the Service.
Rebilly’s Website Terms of Use apply only to use of Rebilly’s marketing website and do not govern the Rebilly platform, APIs, or Services.

**10.8. Order of precedence.**
If Licensee has entered into a written subscription agreement, services agreement, master services agreement, order form, or similar commercial agreement with Rebilly governing the Services (“Subscription Agreement”), then in the event of any conflict between such Subscription Agreement and this Agreement, the Subscription Agreement shall control.
This Agreement shall continue to apply to the extent not inconsistent with the Subscription Agreement.

# Risk scoring

Use risk scoring to automatically manage the level of risk that is associated with each transaction, and to automate specific actions based on that level of risk.
A common use case for risk scoring is to add a customer to a blocklist and to stop the transaction.

All transactions start the risk scoring process with a score of `0`.
If a risk factor is confirmed, the risk score increases by the corresponding weight.
For example, if the `Has mismatched bank country` risk score adjustment weight is `5`, and the risk factor is confirmed, the transaction risk score increases by `5`.

For specific risk factors, it may be useful to decrease the risk score.
For example, you may want to decrease the risk score for a customer with a high lifetime value.
To do this, set the weight to a negative value.

Example: If the value of the `Customer lifetime value` risk factor is between $`5000` and $`50,000`, and its risk score adjustment weight is `-5`, the risk score is decreased by `5` when the risk factor is confirmed.
For more information, see [Risk factors](#risk-factors).

To view transaction risk scores, see [View payment transaction details](/docs/data-tables/manage-payments#view-payment-transaction-details).

## Configure risk scoring

Use this process to configure the score by which a transaction passes or fails the risk scoring process.
Adjust risk score weights based on the checks that you determine are important.
If a transaction exceeds the configured risk score threshold, new blocklist records are created.
To view blocklist records, see [View active blocklists](/docs/automations/blocklists#view-active-blocklists).

1. In the left navigation bar, press **Automations**.
2. In the **Risk** section, press **Risk score**.
3. Press **Update risk score**.
4. In the **Blocklist entry** section, to define the overall transaction risk score threshold and attributes to add to a block list, select from the following:

  **To permanently block a transaction that exceeds a risk score threshold**

    1. In the **Permanently block above** section, in the **Threshold** field, enter the risk score threshold value.
    2. In the **Block attribute** dropdown, select one or more attributes to add to a blocklist.
      For more information, see [Blocklist types](/docs/automations/blocklists#blocklist-types).
  **To temporarily block a transaction that exceeds a risk score threshold**

    1. In the **Temporary block above** section, in the **Threshold** field, enter the risk score threshold value.
    2. In the **Temporary block duration** field, enter the duration of the temporary block in minutes.
    3. In the **Block attribute** dropdown, select one or more attributes to add to a blocklist.
      For more information, see [Blocklist types](/docs/automations/blocklists#blocklist-types).
5. In the **Risk score** section, to define the risk score adjustment for each risk factor, press **Add new risk factor**.
6. Select a risk factor and define the conditions.
  You can add multiple risk factors.
  For more information, see [Risk factors](#risk-factors).
7. To confirm the risk score, press **Update**.

## Risk factors

The following table describes all risk factors.
Use this table to understand how each check works and to help determine which risk score adjustments you want to use in transaction risk scoring.

| **Name** | **Description** |
| --- | --- |
| **Ad block enabled** | Specifies whether the customer's browser has an ad blocker enabled.It may be useful to decrease the risk score for customers who have an ad blocker enabled. To do this, set the weight to a negative value. |
| **Billing address velocity** | Number of transactions for this billing address in the last 24 hours. |
| **Customer lifetime value** | Specifies the total amount of revenue from the customer.It may be useful to decrease the risk score for customers who have a high lifetime value. To do this, set the weight to a negative value. |
| **Declined payment instrument velocity** | Number of declined transactions for this [payment instrument fingerprint](/docs/glossary#payment-instrument-fingerprint) in the last 24 hours. |
| **Device velocity** | Number of transactions for this device, based on fingerprint, in the last 24 hours. A device fingerprint is a unique token that is used to identify the user. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more. |
| **Email velocity** | Number of transactions for this email address in the last 24 hours. |
| **Has fake name** | Specifies whether the holder name seems fake. |
| **Has mismatched bank country** | Specifies whether the customer's bank country and the customer's billing address country are not the same. |
| **Has mismatched billing address country** | Specifies whether the customer's billing address country and geo-IP address are not the same. |
| **Has mismatched holder name** | Specifies whether the customer's billing address name and primary address name are not the same. |
| **Has mismatched time zone** | Specifies whether the customer's browser time zone and the time zone associated with the IP address are not the same. |
| **Payment instrument approved transaction count** | Total number of approved transactions for this [payment instrument fingerprint](/docs/glossary#payment-instrument-fingerprint).It may be useful to decrease the risk score for payment instruments that have a high number of approved transactions. To do this, set the weight to a negative value. |
| **Payment instrument velocity** | Number of transactions for this payment instrument, based on [payment instrument fingerprint](/docs/glossary#payment-instrument-fingerprint), in the last 24 hours. |
| **IP velocity** | Number of transactions for this IP address in the last 24 hours. |
| **Is rebill** | Specifies whether the transaction is a recurring payment. For more information, see [Rebill](/docs/glossary#rebill).It may be useful to decrease the risk score for transactions that are recurring payments. To do this, set the weight to a negative value. |
| **Is retry** | Specifies whether the transaction is being retried from a previous failure.It may be useful to decrease the risk score for transactions that are being retried from a previous failure. To do this, set the weight to a negative value. |
| **Is high risk country** | Specifies whether the geo-IP country, or the customer's billing country, is considered a high risk country. High risk countries are: North Korea, Iran, Afghanistan, Iraq, Syria, and Sudan. |
| **Is hosting** | Specifies whether the customer's IP address is related to hosting. |
| **Is proxy** | Specifies whether the customer's IP address is related to a proxy. |
| **Is Tor** | Specifies whether the customer's IP address is related to TOR. |
| **Is VPN** | Specifies whether the customer's IP address is related to a VPN. |
| **Customer velocity** | Number of transactions for this customer ID in the last 24 hours. |

### Consistency checks

Use the risk metadata `mismatched` items to filter for inconsistent information.
Merchants commonly check for consistent:

- Bank country
- Billing country
- Time zone
- Cardholder name and name in primary address

### VPN, proxy, and TOR usage check

Use the transaction risk metadata to search for VPN, proxy, or TOR usage.

### Distance check

If you sell a physical product, use the risk metadata to check the distance between the shipping address and the billing address.

### Velocity checks

[Velocity](/docs/tutorials/create-a-velocity-limit) refers to the number of transactions in the last 24 hours.
Use the risk metadata to perform the following velocity checks:

- **Velocity:** Number of transactions made by a customer for a single merchant.
- **Payment instrument velocity:** Number of transactions made with the same payment instrument, such as PAN fingerprint for payment cards or bank account fingerprint for bank transfers, for a single merchant.
- **Declined payment instrument velocity:** Number of declined transactions made with the same payment instrument, such as PAN fingerprint for payment cards or bank account fingerprint for bank transfers, for a single merchant.
- **Device velocity:** Number of transactions made from the same device, using device fingerprint, for a single merchant.
- Billing address velocity: Number of transactions made with the same billing address for a single merchant.
- **Email velocity:** Number of transactions made with the same email address for a single merchant.
- **IP velocity:** Number of transactions made with the same IP address for a single merchant.
- **Customer velocity:** Number of transactions made with the same customer ID for a single merchant.

Use the conditions to filter transactions with a velocity greater than X.
For example, to filter for velocity greater than 5.

# Rebilly news, features, and updates for October 2023

Hello, and welcome to the October edition of the Rebilly news, features, and updates blog.

## New features

This month we added the following new features.

### Start and stop AML checks

We added the ability to start and stop an AML review check.
Once a reviewer starts a review, the match is reserved and cannot be reviewed by another reviewer.
The hold will be released when the review is completed or paused.
For more information, see [Pause or start an AML check review](/docs/data-tables/manage-aml#pause-or-start-an-aml-check-review).

### New coupon restrictions

We added the following new coupon restrictions:

- **Restrict to exclusive application:** Restricts a coupon so that it cannot be used in combination with other coupons.
  If more than one coupon is active, a coupon with this restriction is only applied if it provides a larger discount than the other coupons combined.
- **Restrict to customer tags:** Restricts a coupon so that it can only be redeemed by customers with specific tags.
  Depending on the configuration of this restriction, customers must have one or all of the specified tags to redeem a coupon.

## Docs

We migrated the [Rebilly website](https://www.rebilly.com) to use the Redocly product named Revel.
Rebilly is in the very fortunate position of having a close working relationship with Redocly, this granted us early access to Revel.
We can't give much away about it yet, but it is awesome! 🚀

The following are some changes that you will notice as a user of the Rebilly website.

### Dark mode

Because reading from a screen can be hard on the eyes, especially in low-light environments — we've added dark mode 🕶️.

To turn on dark mode:

1. Go to any docs page.
2. In the top right of the page, on the left of the search box, press ![Dark mode icon](/content-assets/dark-mode-703d3a54d67b9c09.svg).
  To go back to light mode, press ![Light mode icon](/content-assets/light-mode-d40a84077ed2ea90.svg).

### Feedback

In Rebilly, we strive to create the best possible experience for our users.
A huge part of that experience is our documentation.
It's really important to us that our docs are easy to read, comprehensive, and easy to use.
If you find something that you think we can improve, find something difficult to understand, or just want to send some kudos, we'd love to hear from you.

To give feedback:

1. Go to any docs page.
2. Scroll to the bottom of the page, in the **Was this helpful?** section, press ![Feedback icon](/content-assets/unhappy-face-80dbb9c143da623e.svg), ![Feedback icon](/content-assets/neutral-face-e367abe6c5c39594.svg), or ![Feedback icon](/content-assets/happy-face-fd59396b79dcaf60.svg).
3. In the feedback box, enter your feedback, then press **Submit**.

## New payment gateway integrations

- Added support for the [EasyPayDirect payment gateway](/gateways/easypaydirect).
- Added support for the [PayRedeem payment gateway](/gateways/payredeem).
- Added support for the [ACH payment method](/payment-methods/ach) for the [Buckaroo payment gateway](/gateways/buckaroo).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.

If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# KYC & AML

Use these docs to configure and manage KYC and AML.

This section of the docs, and the Rebilly product, is mainly used by Customer Support Agents and Software Developers.

**Select a topic:**

**KYC**

Configure and manage KYC document settings.

**AML**

Configure and manage AML settings.

# Retain subscribers who want to cancel

No matter how integral customer retention efforts are to your company’s policy, even the most successful companies will still experience churn rates of 20 percent or more.
While it’s not possible to change every customer’s mind, the huge cost disparity between retention and acquisition makes it important for a business with a recurring model to craft a cost-effective strategy that’s ready to go when a customer wants to cancel immediately.

## Adjust the Sales Philosophy

When it comes to a customer who is so dissatisfied that they are calling or writing to cancel immediately, the worst thing a business can do is re-pitch its “new customer” sales routine.
After all, the promises and promotions made there are already known to the customer, and they’ve clearly found them lacking.
When a dissatisfied customer feels that they’re being treated like somebody who hasn’t even subscribed yet, they’re likely to feel personally insulted and will only double down on their desire to cancel.

Instead, it’s time to pivot the sales philosophy into one that accurately targets the customer’s profile, provides guarantees for future service, and leaves the door open for full retention even if they remain uncertain.

## Make it Personal

In order to sell the customer on retaining their subscription, a company needs to be able to accurately identify the trigger points that will persuade them to stay.
To this end, a business should already have data available that allows them to place a customer into one of several broad categories, with associated language and strategies pre-planned for customer reps and customer communications.

For example, conservative, cost-conscious customers are more likely to respond to words like, “discount,” “small fee,” and “free.” Service-oriented customers, on the other hand, want to hear words like “personal,” “guaranteed,” and “customized.”

## Provide Guarantees

Once a customer has been personally categorized, a business needs to provide guarantees that it will do better at meeting those personalized needs.
The goal here should be to make each customer feel that they’ve been lifted out of the general pool of consumers and are now receiving individualized service.
The most effective way to do so is to assign a single customer representative to work with the subscriber, as they’ll then become the personal face of the company.
This allows them to build a real company-to-client relationship that’s harder for the customer to ascribe negative feelings to.

## Keep the Door Open

In many cases, a subscriber will remain determined to cancel even after steps are taken, and in that case a company should never hesitate to take action that leaves the door open for retention in the future.
This will likely require offering a deeply discounted product, and may even require a period of free service.
Since the costs of acquiring a new customer are so much higher than retaining current subscribers, even that free offering remains the best choice for the bottom line.

Once the subscriber agrees to delay their cancellation, the business should then use that open door to reinforce its personalized commitments and rebuild the relationship to complete the retention process.

## Want to learn more about how to boost the metrics that matter?

**span** Download our free guide that’ll show you how to boost your customer lifetime value by 43% or more below:

# Pricing formulas

Pricing formulas determine how the price is calculated and displayed on an invoice or receipt.

Rebilly supports five types of pricing: fixed-fee per time period, flat rate per unit, stair-step, tiered, and volume.
For information on how to apply a pricing formula, see [Create a product and pricing plan](/docs/settings/products-and-pricing).

## Fixed-fee per period

Use this formula for subscriptions that involve the same price, number of units, and reoccur over a fixed period of time, such as every: day, week, month, year, or number of years.

For example, a streaming company charges customers $13.99 each month for subscription period that is 6 months in duration.
The quantity of movies that a customer streams each month does not impact the price.

**Formula:** unit quantity of 1 `x` price per fixed time period `x` number of time periods `=` final price.

## Flat rate per unit

Use this formula to charge a flat fee per unit.
For example, $0.10 per transaction or $4 per unit.

**Formula:** unit quantity `x` price per unit `=` final price.

## Stair-step

Use this formula to charge for units that are sold in specific quantities.

For example, a company sells units in two specific quantities — in quantities of 12, and 6 units.
In this scenario, a customer can only buy units in quantities of 12, or 6 units.

**Formula:** price per specific quantity `=` final price.

## Tiered

Use this formula to charge for units that are sold within defined quantity ranges, or tiers.

For example, a software company charges $15 per user, for a basic plan which provides 0 to 3 user licenses.
If a customer adds one more user, the fee for this user is $20, because this new user exceeds the range of the basic plan.
Additionally, if the customer adds a total of 6 or more users, the fee for the sixth user, and each user after that point, is $25.

| **Price per user** | **Tiers** |
| --- | --- |
| $15 | 0 to 3 |
| $20 | 4 to 5 |
| $25 | 6 or more |

If a customer buys 6 user licenses on the tiered pricing plan, the pricing is as follows:

- User #1: $15
- User #2: $15
- User #3: $15
- User #4: $20
- User #5: $20
- User #6: $25

Total cost: $110.

**Formula:** (price for the tier `x` quantity within the tier) `+` (price for next tier `x` quantity in next tier) `+` `...` `=` final price.

## Volume

Use this formula to charge for units that are sold in bulk, or volume ranges.
In general, this formula means that a customer pays less per unit when they buy a large volume of units.

For example, based on the table below, if a customer buys 6 units, they pay $3 per unit.
If a customer buys 1 unit, they pay $5.

| **Price per unit** | **Quantity range** |
| --- | --- |
| $5 | 0 to 1 |
| $4 | 2 to 5 |
| $3 | 6 or more |

- Unit #1: $3
- Unit #2: $3
- Unit #3: $3
- Unit #4: $3
- Unit #5: $3
- Unit #6: $3

Total cost: $18.

**Formula:** price per quantity range `x` number of units `=` final price.

# KYC & AML

Use these docs to learn about and configure Know Your Customer (KYC) and Anti-Money Laundering (AML) features in Rebilly.
Use KYC and AML feature to help comply with regulations by:

- Gathering and analyzing identity documents and proof-of-address documents.
- Comparing against government sanctions, [PEP lists](/docs/glossary#politically-exposed-person-pep), and proprietary compiled PEP lists.
- Reviewing results.
- Maintaining an audit trail and compliance records.

This section of the docs, and the Rebilly product, is mainly used by Customer Support Agents, Compliance Officers, and Risk Managers.

KYC and AML features are available as add-ons to your Rebilly account.
To activate, [contact Rebilly](/support/).
The KYC and AML features may be used together or separately.

**KYC**

Configure KYC and learn how to use the KYC document gatherer.

**AML**

Configure AML and learn how to review AML checks.

# Rebilly Data Processing Addendum

This Data Processing Addendum and its Annexes ("DPA") forms part of the Rebilly Subscription Agreement or other written or electronic agreement between Rebilly and Customer for the purchase or use of the Rebilly Services ("Agreement") and reflects the parties' agreement regarding the Processing of Personal Data.

Capitalized terms not defined in this DPA have the meanings given in the Agreement.

Customer enters into this DPA on behalf of itself and, to the extent required under applicable Data Protection Laws, in the name and on behalf of its Controller Affiliates (defined below).
For purposes of this DPA only, and except where indicated otherwise, "Customer" includes Customer and Controller Affiliates.

If Customer (or an Affiliate) has executed an Order Form, clicked to accept the Agreement, or otherwise uses the Services, this DPA is incorporated by reference and becomes legally binding without further signature.

## 1. Definitions

**"Affiliate"** means any entity that directly or indirectly controls, is controlled by, or is under common control with a party, where "control" means ownership of more than fifty percent (50%) of the voting securities (or equivalent) of such entity.

**"Controller"** means an entity that determines the purposes and means of Processing Personal Data.

**"Controller Affiliate"** means any of Customer's Affiliates that (a) are permitted to use the Services under the Agreement, and (b) are Controllers of Personal Data Processed by Rebilly under the Agreement.

**"Customer Data"** means any Personal Data that Rebilly Processes as a Processor on behalf of Customer in the course of providing the Services.

**"Data Protection Laws"** means all data protection and privacy laws and regulations applicable to the Processing of Customer Data under the Agreement, including where applicable the GDPR, the UK GDPR, and the Swiss FADP, and (as applicable) U.S. state privacy laws.

**"GDPR"** means EU Regulation 2016/679 of the European Parliament and of the Council on the protection of natural persons with regard to the processing of Personal Data and on the free movement of such data (General Data Protection Regulation).

**"Personal Data"** means any information relating to an identified or identifiable natural person that is protected as "personal data," "personal information," or similar term under applicable Data Protection Laws.

**"Processing"** has the meaning given in applicable Data Protection Laws, and "process," "processes," and "processed" are construed accordingly.

**"Processor"** means an entity that Processes Personal Data on behalf of a Controller.

**"Security Incident"** means any unauthorized or unlawful breach of security leading to the accidental or unlawful destruction, loss, alteration, unauthorized disclosure of, or access to Customer Data transmitted, stored, or otherwise Processed by Rebilly or its Sub-processors in connection with the provision of the Services.

**"Services"** means the Rebilly Services as defined in the Agreement.

**"Sub-processor"** means any Processor engaged by Rebilly (or its Affiliates) to assist in fulfilling its obligations with respect to providing the Services under the Agreement or this DPA, excluding Rebilly employees and individual contractors.

**"UK GDPR"** means the UK General Data Protection Regulation as it forms part of the law of England and Wales, Scotland, and Northern Ireland by virtue of section 3 of the European Union (Withdrawal) Act 2018.

**"Swiss FADP"** means the Swiss Federal Act on Data Protection, as may be amended from time to time.

## 2. Scope and roles

### 2.1 Scope

This DPA applies where and only to the extent Rebilly Processes Customer Data as a Processor on behalf of Customer in the course of providing the Services and such Customer Data is subject to Data Protection Laws.

### 2.2 Roles of the parties

As between Rebilly and Customer, Customer is the Controller of Customer Data and Rebilly is the Processor.
Each party will comply with its respective obligations under Data Protection Laws.

Nothing in the Agreement or this DPA prevents Rebilly from using or sharing any data that Rebilly would otherwise collect and process independently of Customer's use of the Services.

### 2.3 Customer obligations

Customer represents and warrants that:

- It has provided all required notices and obtained all necessary consents and rights for Rebilly to Process Customer Data to provide the Services;
- It shall comply with its obligations as a Controller under Data Protection Laws in respect of its Processing of Customer Data and any Processing instructions it issues to Rebilly; and
- It has the authority to enter into this DPA on behalf of its Controller Affiliates.

Rebilly is not responsible for compliance with any Data Protection Laws applicable to Customer or Customer's industry that are not generally applicable to Rebilly as a service provider.

### 2.4 Rebilly processing instructions

Rebilly will Process Customer Data only:

- to provide the Services in accordance with the Agreement;
- to perform steps necessary for performance of the Agreement;
- as initiated by authorized Users in their use of the Services; and
- to comply with other documented, lawful instructions from Customer that are consistent with the Agreement.

The Agreement (including this DPA) constitutes Customer's complete and final instructions to Rebilly regarding Processing of Customer Data.
Processing outside the scope of these instructions requires prior written agreement between Customer and Rebilly.

### 2.5 Processing details

The subject matter, nature, purpose, categories of Personal Data, and categories of data subjects are described in Annex A.

### 2.6 U.S. state privacy laws

To the extent applicable U.S. state privacy laws apply, Rebilly will Process Customer Data as a service provider/processor, will not "sell" or "share" Customer Data (as those terms are defined under such laws), and will Process Customer Data only to provide the Services and as otherwise permitted by the Agreement.

## 3. Sub-processing

### 3.1 Authorized Sub-processors

Customer authorizes Rebilly to engage Sub-processors to Process Customer Data.
Rebilly's current Sub-processors are listed at: [https://www.rebilly.com/legal/sub-processors](https://www.rebilly.com/legal/sub-processors).

### 3.2 Sub-processor obligations

Rebilly will:

- enter into a written agreement with each Sub-processor imposing data protection obligations no less protective than those in this DPA (as applicable); and
- remain responsible for its compliance with this DPA and for acts or omissions of Sub-processors that cause Rebilly to breach this DPA.

### 3.3 Changes and objection

Rebilly will provide at least thirty (30) days' advance notice before authorizing a new Sub-processor to Process Customer Data on behalf of customers, except where such notice is not practicable (for example, in cases of emergency security updates or where required by law).
Rebilly will notify customers by email to the primary contact email address on file or by posting an update to the Sub-processor page.

If Customer reasonably objects to a new Sub-processor on data protection grounds, Customer must notify Rebilly in writing at legal@rebilly.com within thirty (30) days of receiving notice of the new Sub-processor.
Rebilly will work with Customer in good faith to address the objection, which may include:

- providing additional information about the Sub-processor's data protection practices;
- implementing additional safeguards; or
- finding an alternative solution.

If Rebilly cannot address Customer's reasonable concerns and Customer continues to object, Customer may terminate the affected Services by providing written notice to Rebilly as Customer's sole and exclusive remedy under this Section 3.3.
Rebilly will provide a pro-rated refund of any prepaid fees for the terminated Services.

The objection and termination rights described above apply only to new Sub-processors added after the effective date of Customer's Subscription Agreement.
Existing Sub-processors listed on the Sub-processor page are authorized under Customer's current agreement.

## 4. Security

### 4.1 Security measures

Rebilly will implement and maintain appropriate technical and organizational measures to protect Customer Data against Security Incidents and to preserve the security and confidentiality of Customer Data.
These measures are described in Annex B.

Rebilly will ensure persons authorized to Process Customer Data are subject to appropriate confidentiality obligations.

### 4.2 Security Incident response

Upon becoming aware of a Security Incident, Rebilly will notify Customer without undue delay and provide timely information as it becomes known or as reasonably requested by Customer.
Rebilly will use commercially reasonable efforts to provide an initial notification within seventy-two (72) hours of becoming aware of a Security Incident, and sooner where practicable, subject to law enforcement delays or measures required to prevent further compromise.

Rebilly will take reasonable steps to contain, investigate, and remediate the Security Incident and provide updates as material information becomes available.
Rebilly's obligations in this Section apply only to the extent the Security Incident is not caused by Customer's systems, credentials, or Authorized Users.

### 4.3 Audits and security reports

Rebilly maintains an information security program and undergoes an annual SOC 2 audit.
Upon written request and subject to reasonable confidentiality obligations, Rebilly will provide Customer with a copy of its then-current SOC 2 report (or a summary/extract where needed) and will respond to reasonable security questionnaires.

Customer will treat any audit report or security documentation provided under this Section as Rebilly Confidential Information.

To the extent Rebilly Processes payment card data, Rebilly will maintain compliance with the applicable version of the Payment Card Industry Data Security Standard (PCI DSS).

## 5. Assistance and cooperation

### 5.1 Data subject requests

Taking into account the nature of Processing, Rebilly will provide reasonable assistance to enable Customer to respond to requests from data subjects to exercise their rights under Data Protection Laws, to the extent Customer cannot access the relevant Customer Data through the Services.

If Rebilly receives a request directly from a data subject relating to Customer Data, Rebilly will (where permitted) notify Customer and will not respond except as required by law.

### 5.2 DPIAs and prior consultation

Rebilly will provide reasonable information and assistance (at Customer's expense, if applicable) to support Customer's data protection impact assessments and, where required, prior consultations with supervisory authorities.

### 5.3 Legal requests and compelled disclosure

If Rebilly receives a legally binding request to disclose Customer Data, Rebilly will, to the extent legally permitted, provide Customer with prompt written notice and reasonably cooperate with Customer's efforts to seek protective treatment or limit disclosure.
Rebilly will disclose only the portion of Customer Data that it is legally required to disclose.

## 6. Return and deletion

Upon termination or expiration of the Agreement, Rebilly will delete or return Customer Data in accordance with the Agreement and Annex A, except to the extent Rebilly is required by law to retain some or all Customer Data, or retains it in backups in a securely isolated manner until deletion in the ordinary course.
Rebilly will certify deletion upon Customer's written request, except where prohibited by law.

## 7. International transfers

### 7.1 Processing locations

Customer acknowledges that Rebilly may Process Customer Data in the United States and other locations where Rebilly, its Affiliates, or its Sub-processors maintain operations, subject to appropriate safeguards as described in this Section 7.

### 7.2 EEA transfers: EU SCCs

To the extent Customer Data subject to the GDPR is transferred to a country not recognized by the European Commission as providing an adequate level of protection, the parties agree that the EU Standard Contractual Clauses (Commission Implementing Decision (EU) 2021/914, Module Two: Controller to Processor) ("EU SCCs") are incorporated by reference and apply to such transfers.

The EU SCCs are completed as follows:

- **Clause 7 (Docking clause):** Not applicable.
- **Clause 9 (Use of sub-processors):** Option 2 (General authorization) applies.
  The time period for prior notice of sub-processor changes is thirty (30) days.
- **Clause 11 (Redress):** The optional language does not apply.
- **Clause 17 (Governing law):** Option 1 applies.
  The governing law is the law of Ireland.
- **Clause 18 (Choice of forum and jurisdiction):** The courts of Ireland.

For purposes of the EU SCCs:

- **Data exporter:** Customer (or its Controller Affiliate, as applicable).
- **Data importer:** Rebilly Inc.
- **Annex I (A):** The data exporter is identified in the Agreement.
- **Annex I (B):** The data importer is Rebilly Inc., 3801 N Capital of Texas Hwy, E240 #72, Austin, TX 78746, United States.
- **Annex I (C):** The supervisory authority is the data protection authority of the EU member state in which the data exporter is established.
- **Annex II:** The technical and organizational measures are described in Annex B of this DPA.
- **Annex III:** The list of Sub-processors is available at https://www.rebilly.com/legal/sub-processors.

### 7.3 UK transfers: UK addendum

To the extent UK GDPR applies, the EU SCCs are supplemented by the UK International Data Transfer Addendum to the EU Commission Standard Contractual Clauses (version B1.0, in force 21 March 2022) ("UK Addendum"), incorporated by reference.

For purposes of the UK Addendum:

- **Table 1:** The parties' details are as set forth in the Agreement and Section 7.2 above.
- **Table 2:** The selected EU SCCs, modules, and clauses are as set forth in Section 7.2 above.
- **Table 3:** The Appendix information is as set forth in Section 7.2 above.
- **Table 4:** The UK Addendum applies to transfers to the United States and other countries not recognized by the UK as providing an adequate level of protection.

### 7.4 Switzerland

To the extent Swiss FADP applies, the EU SCCs apply with modifications required under Swiss law, including recognition of the Federal Data Protection and Information Commissioner (FDPIC) as the competent supervisory authority where applicable.

### 7.5 Alternative transfer mechanism

If Rebilly adopts an alternative lawful transfer mechanism recognized under Data Protection Laws (such as certification schemes or codes of conduct), that mechanism will apply instead to the extent applicable, and Rebilly will notify Customer of such change.

## 8. Controller Affiliates

Customer enters into this DPA on behalf of its Controller Affiliates, creating a separate DPA between Rebilly and each Controller Affiliate where required by Data Protection Laws.
Customer remains responsible for coordinating communications with Rebilly under this DPA.

## 9. Limitation of liability

Each party's liability arising out of or related to this DPA (including the EU SCCs and UK Addendum) is subject to the limitations and exclusions of liability in the Agreement, to the extent permitted by applicable law.
Nothing in this Section limits either party's liability for breaches of its data protection obligations under this DPA to the extent such limitation is prohibited by applicable Data Protection Laws.

## 10. Miscellaneous

### 10.1 Order of precedence

If there is any conflict between this DPA and the Agreement, this DPA will control with respect to the parties' data protection obligations.
Except as modified by this DPA, the Agreement remains in full force and effect.

### 10.2 Updates

Rebilly may update this DPA from time to time to reflect changes in Data Protection Laws or Rebilly's practices.
Any update that materially reduces Rebilly's obligations or Customer's rights will not apply during Customer's then-current Subscription Term unless required by applicable law.
Updated versions will be published at https://www.rebilly.com/legal/dpa (or a successor URL).

### 10.3 Survival

The obligations in this DPA will survive termination or expiration of the Agreement to the extent necessary to comply with Data Protection Laws or as otherwise set forth in this DPA.

---

_Last updated: 2026-01-21_

## Annex A: Description of Processing

**Subject matter:** Provision of the Services under the Agreement.

**Duration:** For the Subscription Term and any retention period described in the Agreement and this DPA.

**Nature and purpose:** Hosting, provision, maintenance, support, and secure operation of the Services; incident response; security monitoring; and other Processing necessary to provide the Services as instructed by Customer.

**Categories of data subjects:** Customer's Users; Customer's end customers and payers; beneficial owners and KYC subjects; other individuals whose Personal Data Customer submits to the Services.

**Categories of Personal Data:** Identification and contact data; account and subscription data; transaction and payment-related data; order information; device and usage data (e.g., IP address, logs); and other Personal Data submitted by or on behalf of Customer through the Services.

**Special categories of Personal Data:** Not intentionally Processed unless Customer chooses to submit such data and it is required for Customer's use case.

**Retention/return/deletion:** As described in Section 6 and the Agreement.

## Annex B: Security Measures

Rebilly maintains a security program designed to protect Customer Data, including measures such as:

- **Access controls and least privilege:** Role-based access controls, multi-factor authentication, and principle of least privilege for personnel access to Customer Data.
- **Encryption:** Encryption in transit (TLS 1.2 or higher) and encryption at rest for Customer Data where applicable.
- **Logging, monitoring, and alerting:** Comprehensive logging and monitoring of systems Processing Customer Data, with alerting for security events.
- **Vulnerability management and patching:** Regular security assessments, vulnerability scanning, and timely patching of security vulnerabilities.
- **Secure SDLC practices:** Security reviews, code scanning, and secure development practices throughout the software development lifecycle.
- **Incident response procedures:** Documented incident response procedures and regular testing of such procedures.
- **Regular independent audit:** Annual SOC 2 audit by an independent third party.
- **PCI DSS controls:** To the extent payment card data is Processed, compliance with the applicable version of the Payment Card Industry Data Security Standard (PCI DSS).
- **Physical security:** Physical security controls for facilities where Customer Data is Processed, including via cloud provider physical controls.
- **Business continuity and disaster recovery:** Business continuity and disaster recovery plans designed to maintain availability of the Services.

# Rebilly news, features, and updates for July 2024

Hello, and welcome to the July edition of the Rebilly news, features, and updates blog.

## New docs

### Welcome to Rebilly

We added a new section to the docs called [Welcome to Rebilly](/docs/tutorials/welcome).
This section introduces you to payments related terms, processes, and Rebilly features.

Read these docs if you are new to payments and want to learn the main concepts, and about what Rebilly can do for you.

### Display payment methods by location

We added a guide on how to configure which payment methods are displayed to the customer at payment, based on their geographic location.
For more information, see [Display payment methods by location](/docs/settings/display-payment-methods-by-location).

### Filter data table content by custom fields

We added a guide on how to filter data table content based on custom fields.
For more information, see [Filter data table content by custom fields](/docs/settings/custom-fields#filter-data-table-content-by-custom-fields).

### Customize invoice appearance

We added information on how to customize invoice and quote appearance, such as changing the logo, or to update the company information that is displayed.
For more information, see [Customize invoice appearance](/docs/data-tables/manage-invoices#customize-invoice-appearance).

## New payment gateway integrations

- Added support for the [Poli payment method](/payment-methods/poli/) for the [Worldpay payment gateway](/gateways/worldpay).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.
If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Manage orders

This topic describes how to manage orders using the Rebilly UI.

An order is a customer's request to purchase a product or service.
Orders contain one-time sales items, subscription items, or both.
Orders generate invoices that the customer must pay to receive the product or service.

A one-time sale is a single, non-recurring, charge for a product or service.
Example: A one-time purchase of an internet modem.

Orders that contain subscription items renew and generate an invoice for each service period.
These periods are referred to as service periods.
A renewal date is the date when an invoiced payment is due on an order that contains subscription items.
By default, this is one hour after issue date and time.
Example: A monthly prepaid order that contains subscription items for an internet service provider.

## Abandon pending orders

Use this configuration to abandon an order that contains subscription items and void related invoices if a customer does not activate the order within a specific time frame.

A pending order is an order that was created by a customer, but not yet activated.
The order is pending until the customer activates it by paying the first invoice.
For more information, see [Subscription status](/docs/dev-docs/subscriptions#subscription-status).

Select from the following options:

- Automatically abandon pending orders based on a global Time To Live (TTL) setting, called **Automatically abandon pending orders**, in organization details.
  For more information, see [Edit organizations](/docs/settings/organizations-and-websites#edit-an-organization).
- Define the TTL of a pending order when you place an order on behalf of a customer.
  To set it, configure a specific abandon date.
  For more information, see [Create an order](/docs/data-tables/manage-customer-payments-and-billing#create-an-order).

## Add metered billing usage records

Use this process to manually add metered billing usage records to an upcoming invoice.
This process applies to an order that is billed based on a metered billing plan.
For more information, see [Metered billing](/docs/settings/products-and-pricing#metered-billing).

To view metered billing usage records for trial-only orders, see [View metered billing usage records for trial-only subscriptions](#view-metered-billing-usage-records-for-trial-only-subscriptions).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. **Optionally, filter orders by a specific pricing plan**

    1. In the top right of the table, press **Filter**.
    2. In the **Filter** dropdown, select **Plan ID**.
    3. In the **Operation** dropdown, select **Is in**.
    4. In the **Value** field, enter the ID of the pricing plan that uses metered billing.
    5. Press **Apply filter**.
5. In the **ID** column, press an order that has a metered billing plan.
6. On the upcoming invoice, in the **Quantity** column, press **Usage**.
7. In the top right of the page, press **Add usage**.
8. In the **Quantity** field, enter the quantity of usage to add to the upcoming invoice.
9. In the **Usage time** field, enter the date and time when the usage occurred.
10. Press **Add**.

### View metered billing usage records for trial-only subscriptions

Use this process to view metered billing usage records for a trial-only order.
Trial-only orders are not billed, and manual entry of usage records is not supported.
Reporting usage through the API is still available.
The reported usage is tracked only to enforce the trial limit.
To add metered billing usage records to all other orders, see [Add metered billing usage records](#add-metered-billing-usage-records).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. **Optionally, filter orders by trial-only**

    1. In the top right of the table, press **Filter**.
    2. In the **Filter** dropdown, select **Is trial only**.
    3. In the **Operation** dropdown, select **is true**.
    4. Press **Apply filter**.
5. In the **ID** column, press an order that is a trial-only order.
6. In the right of the page, in the **Usage report** section, press **Usage**.

## Activate or deactivate autopay

Autopay is the process of automatically collecting payment from a customer on the renewal date of an order that contains subscription items.
If autopay is activated, the payment is retrieved from the customer on the renewal date using the default payment instrument set on the order.
If a default payment instrument is not set on the order, or if it is inactive, the customer's default payment instrument is used to collect payment.

The autopay schedule sets multiple retries for orders that fail to bill successfully, and specifies whether to cancel the order after the last attempt.

To activate or deactivate autopay, see [Activate or deactivate autopay](/docs/data-tables/manage-autopay#activate-autopay).
To configure the autopay schedule, see [Configure autopay](/docs/data-tables/manage-autopay#create-an-autopay-schedule).

## Activate or deactivate delinquency period

A delinquency period is the length of time after which an order that contains subscription items is canceled if an invoice is not paid.
Delinquency periods can be applied to an order or to an invoice.

To add or edit delinquency periods, see [Manage delinquency periods](/docs/data-tables/manage-delinquency-periods).

## Add a default payment instrument to an order

Use this process to add a default payment instrument to an order that contains subscription items.
If autopay is active, this payment instrument is used to automatically pay renewals for the order.
For more information, see [Activate autopay](/docs/data-tables/manage-autopay#activate-autopay).

With this feature, customers keep multiple payment methods on file and use them for autopay on separate orders.
For example, a customer may use a Mastercard for a large annual order that contains subscription items, and Visa for a smaller monthly order that contains subscription items.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. In the top right of the page, in the **Order details** section, press **Edit**.
6. In the **Default payment instrument** dropdown, select a payment instrument.
7. Press **Save**.

## Add notes, attachments, or tags to an order

Use this process to add information to an order, tag a colleague, or tag Rebilly Support to get their input or help.

The **Timeline** section provides a detailed record of all billing related activities between you and your customer.
To interact with an activity, view more information or take further action, press the event item or key.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press any segment, such as: **Active orders**, **Canceled orders**, **Paid invoices**, **Refunded invoices**, or **Unpaid invoices**.
4. In the **Timeline** section, select from the following:

  **Tag an email address or Rebilly Support**

    1. In the text input field, press **Tag user**.
    2. In the dropdown, select a user or Rebilly Support, then press **Return** or **Enter** on your keyboard.
  **Add an attachment**

    1. In the text input field, press **Attach a file**, select a file, then press **Open** or **Attach**.
    2. Enter a message, and press **Return** or **Enter** on your keyboard.
  **Link a customer or transaction**

    1. In the text input field, press **Link to a customer or transaction**, in the dropdown, select **Customers** or **Transactions**.
    2. Select a transaction or customer, then press **Return** or **Enter** on your keyboard.
  **Add a note**

    1. In the text input field, enter a message.
    2. Press **Return** or **Enter** on your keyboard.

## Apply a coupon to an order

Use this process to apply coupons to an active order that contains subscription items.
For information on how to create, edit, and redeem coupons, see [Coupons](/docs/settings/coupons-and-discounts).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. In the right of the page, in the **Order details** section, press **Redeem coupons**.
6. In the dropdown, select one or more coupons.
7. Optionally, to notify the customer by email that coupons were redeemed, select the **Send email to customer** checkbox.
8. Press **Redeem**.

## Cancel a scheduled change to an order

Use this process to cancel an order item change that is scheduled to apply at the next renewal.
The scheduled change can be canceled only before the next renewal invoice is issued.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order with a scheduled change.
5. In the right of the page, in the **Order details** section, press **Cancel scheduled change**.
6. In the confirmation dialog, press **Cancel scheduled change**.

## Cancel a subscription

Use this process to cancel an order that contains subscription items.
When an order that contains subscription items is canceled, the status of the order that contains subscription items is set to `canceled`.
For more information, see [Subscription status](/docs/dev-docs/subscriptions#subscription-status).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**, **Paid invoices**, or **Unpaid invoices**.
4. In the **ID** or **Invoice number** column, press an order.
5. In the right of the page, in the **Order details** section, press **Cancel order**.
6. In the **Effective date** section, select one of the following:

  **Cancel at the next renewal date**

  Select **Cancel at the next renewal**.
  The date of the next renewal is displayed in brackets.

  **Cancel immediately**

  Select **Cancel now**.
  Optionally, to provide the customer with credit for the remaining amount left on the order that contains subscription items, select **Add pro rate credit**.
7. In the **cancellation information** section:

    1. Under **Canceled by**, to specify who canceled the order that contains subscription items, select **Customer** or **Merchant**.
    2. In the **cancellation reason** dropdown, select a reason for the cancellation.
    3. In the **Description** field, enter a description for the cancellation.
8. Optionally, to notify the customer by email that their subscription is canceled, select the **Send email to customer** checkbox.
9. Press **Cancel order**.

## Change a billing or delivery address

Use this process to change the billing or delivery address of an order that contains subscription items.
To change the address on an issued invoice, see [Change invoice details](/docs/data-tables/manage-invoices#change-invoice-details).

If a billing or delivery address is not defined, the customer's default address is used.
This may be problematic if the customer updates their default address.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. Select from the following:
    - Update the billing address: On the right of **Billed to**, press **Edit**.
    - Update the delivery address: On the right of **Delivered to**, press **Edit**.
6. Update the address, then press **Save**.

## Change cancellation reason

Use this process to change the cancellation reason on a canceled order that contains subscription items.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Canceled orders**.
4. In the **ID** column, press an order.
5. In the top right of the page, press **Edit**.
6. In the **cancellation reason** dropdown, select a reason for the cancellation.
7. Optionally, to specify a description for the cancellation, in the **Description** field, enter a description.
8. Press **Save**.

## Change subscription cancellation time

Use this process to change the cancellation time of an order that contains subscription items.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Canceled orders**.
4. In the **ID** column, press an order.
5. In the top right of the page, in the **Order details** section, press **Update cancellation time**.
6. Select a new cancellation time.
7. Optionally, to refund the customer for the remaining amount left on the order, select **Add pro rate credit**.
8. Press **Save**.

## Change order details

Use this process to change the details of an order, that contains subscription items, such as the shipping address, PO number, or billing address.
Billing and delivery address changes apply to the upcoming invoice and to invoices created after the change.
Issued invoices keep their addresses, unless the order is pending.
To change the address on an issued invoice, see [Change invoice details](/docs/data-tables/manage-invoices#change-invoice-details).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. On the right of an invoice field, such as: **Billed to**, **Delivered to**, or **PO number**, press **Edit s**.
6. Edit or add information, then press **Save**.

## Change subscription renewal date

Use this process to change the renewal date of an active order that contains subscription items.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. In the right of the page, in the **Order details** section, press **Update renewal**.
6. Select from the following:
    - Set the renewal date to now: Select **Now**.
    - Set the renewal date to a specific date: Select **Specific date**, then select a date.
7. Press **Update**.

## Change subscription shipping costs

Use this process to manually edit the shipping costs for an order that contains subscription items.
Shipping changes apply to the upcoming invoice and to invoices created after the change.
Issued invoices keep their shipping costs, unless the order is pending.
For more information, see [Shipping](/docs/settings/shipping).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. On the right of **Shipping**, press **Edit s**.
6. Select **Manual**, enter an amount, then press **Save**.
  By default, shipping costs are calculated automatically in Rebilly.

## Create a subscription with a free trial period

This process describes how to create an order that contains subscription items and begins with a week-long free trial.
When the trial ends, the order that contains subscription items automatically transitions to recurring billing each month.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. **Configure the payment gateway to accept zero amount payments**

  This step is required to begin the order that contains subscription items with a free trial.

    1. In the left navigation bar, press **Settings**.
    2. In the **Configuration** section, press **Gateway accounts**.
    3. In the **ID** column, press a gateway account.
      If you have not added a gateway account, or do not want to use `TestProcessor`, see [Set up a payment gateway](/docs/settings/set-up-a-gateway).
    4. In the right of the page, press **Edit gateway account**.
    5. In the **Setup instruction** section, select one of the following:
          - **Authorize and void**: Verify that the payment instrument is valid by charging a small amount to the payment instrument.
            The amount is immediately voided.
          - **Authorize**: Verify that the payment instrument is valid by placing a hold on the cardholder's account for the authorized amount.
            An authorization response code is later used to capture the authorized funds.
            For more information on setup instructions, see [Setup instructions](/docs/settings/set-up-a-gateway#optionally,-define-the-setup-instructions-for-new-payment-instruments).
    6. Press **Save gateway account**.
3. **Create a product**

    1. In the left navigation bar, press **Settings**.
    2. In the **Pricing** section, press **Product & pricing plans**.
    3. Press **Add product**.
    4. In the **Name** field, enter a name for the product.
    5. Press **Create product**.
  For more information on creating products, see [Create a product](/docs/settings/products-and-pricing#create-a-product).
4. **Create a pricing plan**

  This step creates a recurring pricing plan that begins with a free trial period.
  When the trial period ends, the plan converts to monthly recurring billing automatically.

    1. In the left navigation bar, press **Settings**.
    2. In the **Pricing** section, press **Product & pricing plans**.
    3. Select the product you created in the previous step.
    4. In the **Name** field, enter a name for the pricing plan.
    5. In the **Type** section, select **Recurring**.
    6. Press **Billing period**.
    7. To specify the length of the billing period, select **Monthly**.
    8. In the **Frequency** section, select **Recurs until canceled**.
    9. In the **Trial** section, select the **Activate trial** checkbox.
    10. To configure a 1 week free trial: In the **Select period** dropdown, select **Weeks**.
      In the **Trial period** field, enter `1`.
    11. In the **Trial price** field, enter `0` to make the trial free.
      For a paid trial, enter the trial price.
    12. In the **Pricing** section, in the **Price** field, enter the recurring price.
    13. Press **Create pricing plan**.
  For more information on creating pricing plans, see [Create a pricing plan](/docs/settings/products-and-pricing#create-a-pricing-plan).
5. **Optionally, create a customer**

  This step describes how to create a customer.
  In a real-world scenario, the customer is created when they place an order by visiting your website or app and purchasing the product.
  If you already have a customer, skip this step.

    1. In the left navigation bar, press **Data tables**, then press **Billing**.
    2. Press **Customers**.
    3. Press **Add customer**.
    4. Enter the customer's details.
    5. Press **Save customer**.
  For more information on creating customers, see [Create a customer](/docs/data-tables/manage-customer-information#add-a-customer).
6. **Create an order**

  This step describes how to create an order for a customer.
  In a real-world scenario, the customer creates the order by visiting your website or app and purchasing the product.

    1. In the left navigation bar, press **Data tables**, then press **Billing**.
    2. Press **Customers**.
    3. In the **Name** column, press a customer's name.
    4. In the right of the screen, press **Manage customer**, then press **Create order**.
    5. In the **Website** field, select a website to associate with the order.
    6. In the **Products and plans** section, in the **Products** dropdown, select the product you created in the previous step.
    7. Select the pricing plan you created in the previous step.
    8. At the bottom of the page, press **Create order**.
      The order is created with an unpaid invoice.
    9. At the bottom of the invoice, press **Pay invoice**.
      The invoice is paid and the trial period is activated.
  For more information on creating orders, see [Create an order](/docs/data-tables/manage-customer-payments-and-billing#create-an-order).

## Create a trial-only subscription

This process describes how to create a trial-only order that contains subscription items.
When the trial period ends, the customer can choose to convert the order to recurring billing or to stop using the product.
For more information, see [Trial-only subscription](/docs/dev-docs/subscriptions#trial-only-subscription).
To change the end date of the trial period, see [Extend a trial period](/docs/data-tables/manage-subscriptions#extend-a-trial-period).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. **Optionally, set up a payment gateway**

  If you have not already done so, [set up a payment gateway](/docs/settings/set-up-a-gateway).
  Alternatively, use the pre-configured `TestProcessor` payment gateway in the sandbox environment, or create a free trial-only pricing plan.
  Free trial-only pricing plans do not require payment processing.
3. **Create a product**

    1. In the left navigation bar, press **Settings**.
    2. In the **Pricing** section, press **Product & pricing plans**.
    3. Press **Add product**.
    4. In the **Name** field, enter a name for the product.
    5. Press **Create product**.
  For more information on creating products, see [Create a product](/docs/settings/products-and-pricing#create-a-product).
4. **Create a pricing plan**

  This step creates a trial-only pricing plan that ends after a trial period.

    1. In the left navigation bar, press **Settings**.
    2. In the **Pricing** section, press **Product & pricing plans**.
    3. Select the product you created in the previous step.
    4. In the **Name** field, enter a name for the pricing plan.
    5. In the **Type** section, select **Trial only**.
    6. Press **Billing period**.
    7. To specify the length of the trial period, select **Days**, **Weeks**, or **Months**.
      In the **Trial period** field, enter the number of days, weeks, or months.
    8. In the **Trial price** field, enter the price of the trial.
      For a free trial, enter `0`.
    9. Press **Create pricing plan**.
  For more information on creating pricing plans, see [Create a pricing plan](/docs/settings/products-and-pricing#create-a-pricing-plan).
5. **Optionally, create a customer**

  This step describes how to create a customer.
  In a real-world scenario, the customer is created when they place an order by visiting your website or app and purchasing the product.
  If you already have a customer, skip this step.

    1. In the left navigation bar, press **Data tables**, then press **Billing**.
    2. Press **Customers**.
    3. Press **Add customer**.
    4. Enter the customer's details.
    5. Press **Save customer**.
  For more information on creating customers, see [Create a customer](/docs/data-tables/manage-customer-information#add-a-customer).
6. **Create an order**

  This step describes how to create an order for a customer.
  In a real-world scenario, the customer creates the order by visiting your website or app and purchasing the product.

    1. In the left navigation bar, press **Data tables**, then press **Billing**.
    2. Press **Customers**.
    3. In the **Name** column, press a customer's name.
    4. In the right of the screen, press **Manage customer**, then press **Create order**.
    5. In the **Website** field, select a website to associate with the order.
    6. In the **Products and plans** section, in the **Products** dropdown, select the product you created in the previous step.
    7. Select the pricing plan you created in the previous step.
    8. At the bottom of the page, press **Create order**.
      The order is created with an unpaid invoice.
    9. At the bottom of the invoice, press **Pay invoice**.
      The invoice is paid and the trial period begins.
  For more information on creating orders, see [Create an order](/docs/data-tables/manage-customer-payments-and-billing#create-an-order).

## Convert a trial-only subscription to subscription with trial and recurring billing

Use this process to convert a [trial-only order](/docs/dev-docs/subscriptions#trial-only-subscription) to an order with a trial and recurring billing.
This process applies to trial-only orders that include subscription items with a recurring interval.
The trial continues, and billing starts when the trial ends.

To use this process, the trial-only order must include subscription items with a recurring billing interval.

To create a trial-only order that includes subscription items with recurring billing, select the **Trial only** option when creating the order.
The order must include subscription items with a recurring billing interval.
For more information, see [Create an order](/docs/data-tables/manage-customer-payments-and-billing#create-an-order).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. **Optionally, filter orders by trial-only**

    1. In the top right of the table, press **Filter**.
    2. In the **Filter** dropdown, select **Is trial only**.
    3. In the **Operation** dropdown, select **is true**.
    4. Press **Apply filter**.
5. In the **ID** column, press a trial-only order.
6. In the **Order details** section, press **Subscribe**.

## Convert an ended trial-only subscription to recurring

Use this process to convert a [trial-only subscription](/docs/dev-docs/subscriptions#trial-only-subscription) that has ended into a recurring subscription without restarting the trial.
This process creates a quote for the conversion.
When the quote is accepted, the order that contains the subscription item is `active` and recurring billing begins.
The subscription renewal time is reset to a newly calculated time.
For more information, see [Quotes](/docs/data-tables/manage-quotes).

To complete this process, you must have permission to create quotes.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**, then in the top of the table, press **Filter**.
4. In the **Status** filter, in the **Value** field, clear the value and select **Trial-ended**.
5. In the **ID** column, press the subscription number.
6. In the right of the page, in the **Order details** section, press **Subscribe without trial**.
7. On each order item, in the **Plan** section, select a recurring pricing plan without a trial.
  This conversion does not support trial-only plans, recurring plans that include a trial, or one-time plans.
8. Press **Create quote**.
9. In the right of the page, in the **Quote details** section, press **Issue quote**, then **Accept quote**.
  For information on editing a quote before issuing it, see [Edit a quote](/docs/data-tables/manage-quotes#edit-a-quote).

## Extend a trial period

Use this process to extend a trial period for an order that contains subscription items.
The order that contains subscription items must be in trial to extend the trial period.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**, then locate the trial.
4. In the **ID** column, press the order that contains subscription items.
5. In the right of the page, in the **Order details** section, press **Change trial end date**.
6. In the **Trial end** dropdown, specify the new trial end date.
7. Press **Change**.

For more information on how to configure trial periods, see [Products and pricing plans](/docs/settings/products-and-pricing).

## Filter orders

Use this process to filter orders that contain subscription items in a data table segment based on specific criteria.
For example, filter orders that contain subscription items by customer ID, start time, status, billing address country, and more.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders** or **Canceled orders**.
4. At the top of the table, press **Filter**.
5. Select a filter, then press **Apply**.
6. To add more filters, press **Add filter**.

## Modify subscription items or settings

Use this process to modify an active order that contains subscription items.
You can add or remove items, change pricing or billing periods, and change trial, setup, or billing settings.

When you add or remove items from an invoice for an order that contains subscription items, select when to apply the changes.
The options are at the next service period, immediately, or on a specific date.
At the next service period, the current items stay until the renewal, and the new items are billed on the next renewal invoice.
Another option is to issue the customer a quote for the changes.
Quotations provide customers with a detailed breakdown of the changes to their subscription.
If the customer accepts the quotation, the changes may be applied to the order.
Application of the changes depends on which quote acceptance conditions are defined and fulfilled.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. Under the subscription items, press **Edit items** **Edit s**.
6. Select from the following:

  **Add items**

    1. Under the subscription items that are included in the order, press **Plus** **Add order items**.
    2. In the **Product** dropdown, select a product.
    3. In the **Plan** dropdown, select a pricing plan.
  **Remove an item**

  On the item, press **Delete**.

  **Change a product**

  On the product, in the **Product** dropdown, select another product.

  **Select a different pricing plan**

  In the **Plan** section, press **Select a different plan**, then select a plan.

  **Change quantity of an item**

  In the plan or product, in the **Quantity** field, enter a new quantity.

  **Change pricing**

    1. On an order item, in the **Plan** section, press **Edit plan**.
    2. Press **Pricing**.
    3. In the **Pricing formula** dropdown, select a custom pricing formula.
      For more information, see [Pricing formulas](/docs/settings/pricing-formulas).
    4. In the **Price** field, enter the price.
    5. Optionally, specify maximum and minimum quantities.
    6. Press **Save**.
  **Change product option values**

  Use this option to replace the product option values from the pricing plan for this order item only.
  The product option values on the pricing plan do not change.

  This option is available only when product options are defined on the product.
  For more information, see [Product options](/docs/glossary#product-options).

    1. On an order item, in the **Plan** section, press **Edit plan**.
    2. Press **Product options**.
    3. Update the current values:
          - To add or replace a value: In the field for the product option, enter a value.
          - To remove a value: Clear the field for the product option.
    4. Press **Save**.
  **Change plan information**

    1. On an order item, in the **Plan** section, press **Edit plan**.
    2. Press **Edit plan**.
    3. In the **Name** field, enter a name to display on receipts and invoices.
    4. In the **Currency** dropdown, select the currency to use for this order.
    5. Under **Type**, select one of the following:

      The following options are available depending on the plan type.
      For example, trial-only and recurring options are only available for recurring plans.

          - Change the plan to a trial-only plan: Select **Trial only**.
          - Change the plan to a recurring plan: Select **Recurring**.
          - Change the plan to a non-recurring order: Select **One-time**.
    6. Press **Save**.
  **Change billing period settings**

  Use this option to configure a custom billing period for this order.
  This option is only available for recurring plans.

    1. On an order item, in the **Plan** section, press **Edit plan**.
    2. Press **Edit plan**.
    3. Press **Billing period**.
    4. To specify the length of the billing period, select one of the following:

          - **Monthly:** Bill the customer every month.
          - **Yearly:** Bill the customer every year.
          - **Custom:** Bill the customer at a custom interval.
            To define a custom billing period length: In the **Select period** dropdown, select **Days**, **Weeks**, **Months**, or **Years**.
            In the **Number** field, enter the corresponding number of days, weeks, months, or years.
    5. In the **Frequency** section, to specify how often the billing period recurs, select one of the following:

          - **Recurs until canceled:** Billing recurs until the order that contains subscription items is canceled.
          - **Limited to:** Billing recurs for a specified number of occurrences.
    6. Press **Save**.
  **Change metered billing**

  Use this option to configure custom metered billing based on usage for this order.

  This option is only available for metered billing plans that are billed in arrears (postpaid).
  To activate metered billing, enable postpaid settings: Press **Billing timing**, then select **Postpaid**.

    1. On an order item, in the **Plan** section, press **Edit plan**.
    2. Press **Metered billing**.
    3. Press **Activate metered billing**.
    4. In the **Metered billing strategy** dropdown, select one of the following:

          - Accumulate the usage and report the total: Select **Sum of reported usage**.
          - Report every usage: Select **Last reported usage**.
    5. In the **Quantity** section, in the **Min** field, enter the minimum quantity to charge at the end of a service period regardless of reported usage.
    6. In the **Max** field, enter the maximum quantity to charge at the end of a service period regardless of reported usage.
    7. Optionally, to bill the last reported quantity instead of zero when no usage is reported during a service period: Select the **Use last reported quantity when no usage is reported** checkbox.
      This setting is only available when using the **Last reported usage** billing strategy.
      For more information, see [Last reported quantity when no usage is reported](/docs/settings/products-and-pricing#last-reported-quantity-when-no-usage-is-reported).
    8. Press **Save**.
  **Change billing timing**

  Use this option to configure custom billing timing for this order.

    1. On an order item, in the **Plan** section, press **Edit plan**.
    2. Press **Billing timing**.
    3. Select one of the following:

          - Specify that payments must be paid in advance: Select **Prepaid**.
          - Specify that payments must be paid at the end of the billing cycle: Select **Postpaid**.
    4. In the **Service period anchor** section, to set the date when the service period renews, select **Activate service period anchor** and specify a date.
      The start date and service period anchor date determine when the service period starts and ends.
    5. Press **Save**.
  **Change trial and setup settings**

  Use this option to edit the trial and setup settings for this order.

    1. On an order item, in the **Plan** section, press **Edit plan**.
    2. Press **Trial and setup**.
    3. In the **Trial** section, to configure a custom trial period, select **Activate trial**, then specify the trial period length and total price.
      For a free trial, in the **Trial price** field, enter `0`.
    4. Optionally, to include a setup fee: In the **Setup fee** section, enter an amount.
    5. Press **Save**.
7. Optionally, to configure the renewal time: In the **Renewal policy** section, select from the following:

  The renewal time is the end of the current service period and determines when the order that contains subscription items renews.

  **Retain the current renewal time**

  Use this option to retain the current renewal time and service period.

    - If this order contains a trial period, this option ends the trial and starts recurring billing when the changes are applied.
    - If this order contains a trial-only plan, this option converts the trial-only plan to recurring billing when the changes are applied.
  To retain the current renewal time: Select **Retain**.

  **Reset the renewal time**

  Use this option to reset the renewal time.
  The new time is based on the date you choose in the **Effective date** section.
  It is also based on the billing period settings of the updated order items.

    - If this order contains a trial period, this option ends the trial and starts recurring billing when the changes are applied.
    - If this order contains a trial-only plan, this option converts the trial-only plan to recurring billing when the changes are applied.
  To reset the renewal time: Select **Reset**.

  **Retain the current renewal time, keep the trial, and then start recurring billing**

  This option is only available when the order contains subscription items with a trial period.

  Use this option to apply changes to an order that contains a trial period.
  The trial does not end when the changes are applied.
  When the trial ends, recurring billing starts based on the order item plan settings.

  To continue the trial period after the changes are applied: Select **Retain trial, then convert to recurring**.

  **Retain the current renewal time and retain trial only**

  This option is only available when the order contains a trial-only plan.

  Use this option to apply changes to an order that contains a trial-only plan.
  Current service periods are retained, the current trial is retained, and the item remains trial-only.

  To keep the order as trial-only after the changes are applied: Select **Retain trial only**.

  The **Effective date** section is not available for trial-only orders.
  If you select **Retain trial only**, changes use the existing renewal time.
8. Optionally, to set a date when the changes become effective: In the **Effective date** section, select one of the following:

    - Schedule the changes to apply at the next renewal: Select **At the next service period**.
      The current items stay until the renewal, and the new items are billed on the next renewal invoice.
      The renewal policy and proration settings do not apply.
    - Apply the changes immediately: Select **Now**.
      To charge the customer for the difference in cost between now and the period change, select the **Add proration** checkbox.
    - Apply the changes on a date and time you choose: Select **Specific date**, then specify the date and time.
      The date and time must not be in the past.
      To charge the customer for the difference in cost between now and the period change, select the **Add proration** checkbox.
9. After you edit the order that contains subscription items, at the bottom right of the page, press **Change items**.
10. Select from the following:

  **Schedule the changes to apply at the next renewal**

  To schedule the changes to apply at the next renewal: In the **Schedule change** dialog, press **Schedule change**.
  In the right of the page, the **Order details** section displays the scheduled change and the renewal date.
  To cancel a scheduled change, see [Cancel a scheduled change to an order](#cancel-a-scheduled-change-to-an-order).

  **Issue an interim invoice**

  To apply the changes now or on the specific date, and issue an interim invoice: Press **Save**.

  **Issue a quote for the changes**

  Quotations provide customers with a detailed breakdown of the changes to their subscription.
  If the customer accepts the quotation, the changes are applied to the order that contains subscription items.
  For more information, see [Manage quotes](/docs/data-tables/manage-quotes).

  To issue the customer a quotation for the changes:

    1. Press **Create a quote**.
    2. Configure the quote:

          1. In the quote, in the **Quote details** section, press **Edit**.

            To locate a quote, in the left navigation bar, press **Data tables**, press **Billing**, then press **Quotes**.
          2. In the **Website** field, select a website to associate with the quote.
          3. In the **Quote details** section, enter the following:

                  - The expiration date of the quote.
                  - A URL to redirect the customer to when a quote is accepted or rejected.
                  - Apply any coupons to the quote.
          4. In the **Shipping** section, select from the following:

                  - **Rebilly**: Dynamically calculate shipping costs based on your configured [shipping rate settings](/docs/settings/shipping).
                  - **Manual**: Manually specify the shipping cost.
          5. Optionally, to make payment attempts for the order that contains subscription items automatic: In the **Autopay** section, turn on the **Override autopay** toggle, and select the **Enable autopay** checkbox.
            This setting supersedes the autopay setting that is currently configured on the order that contains subscription items.
            For more information, see [Manage autopay](/docs/data-tables/manage-autopay).
          6. In the **Acceptance** section, specify the condition that must be fulfilled for the quote to be accepted.
            Select from the following:

                  - Accept the quote when the customer pays the full amount: Select **Payment**.
                  - Accept the quote when the customer accepts the quote: Select **Customer**.
          7. To display payment terms to the customer: In the **Payment terms & signature** section, enter terms.
          8. Optionally, to display a signature line on the printed quote: Select the **Include a signature line** checkbox, then enter a signatory name to print on the signature line.
          9. Press **Save quote**.
    3. To issue the quote to the customer, press **Issue quote**.

## Edit product option values on an upcoming invoice

Use this process to edit product option values for an order item on an active order.
The updated values apply to the order item and are displayed on the upcoming invoice.
The product options on the product and the values on the pricing plan do not change.

Changes to product options or pricing-plan values do not update existing order items.
Removed option values remain on existing order items until the order items are edited and saved.

The edit option is available only when product options are defined on the product and you have permission to update order items.
For more information, see [Product options](/docs/glossary#product-options).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. On the upcoming invoice, under the item description, press **Edit s**.
6. Update the current values:
    - To add or replace a value: In the field for the product option, enter a value.
    - To remove a value: Clear the field for the product option.
7. Press **Save changes**.

## Pay an invoice early

Use this process to pay an invoice early for an order that contains subscription items.
This process describes how to issue the upcoming invoice now, so that it may be paid before it is due.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. At the bottom of the upcoming invoice, press **Early pay**.
6. To specify the due time after paying early, select from the following:
    - Retain the original due date: Select **Keep original due time**.
    - Change the due time to now: Select **Change due time to now**.
    - Change the due date to a specific date: Select **Change due time to**, then specify the date.
7. Press **Issue**.

## Restart a trial

Use this process to restart a trial period for an order that contains subscription items.
The order that contains subscription items must have a completed trial to restart the trial period.

If the trial is in progress, and you want to extend the trial period, see [Extend a trial period](#extend-a-trial-period).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**, then in the top of the table, press **Filter**.
4. In the **Status** filter, in the **Value** field, clear the value and select **Trial-ended**.
5. In the **ID** column, press the order that contains subscription items.
6. In the right of the page, in the **Order details** section, press **Restart trial**.
7. In the **Trial end** dropdown, specify the new trial end date.
8. Press **Restart**.

For more information on how to configure trial periods, see [Products and pricing plans](/docs/settings/products-and-pricing).

## Reactivate a subscription

Use this process to reactivate a canceled order that contains subscription items.
This process creates a quote for the proposed reactivation, and issues it to the customer.
If the customer accepts the quote, the order may be reactivated.
Reactivation depends on which quote acceptance conditions are defined and fulfilled.
For more information, see [Manage quotes](/docs/data-tables/manage-quotes#manage-quotes).

If the order already has a draft or issued quote that has not expired, **Create reactivation quote** does not display.
Open the existing quote from the order details instead.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Canceled orders**.
4. In the **ID** column, press an order.
5. In the top right of the page, in the **Order details** section, press **Create reactivation quote**.
6. In the right of the page, in the **Quote details** section, press **Edit quote**.
7. To configure the quote, select from the following:

  **Modify subscription items or settings**

    1. Under the subscription items, press **Edit items** **Edit s**.
    2. Select from the following:

      **Add items**

          1. Under the subscription items that are included in the order, press **Plus** **Add order items**.
          2. In the **Product** dropdown, select a product.
          3. In the **Plan** dropdown, select a pricing plan.
      **Remove an item**

      On the item, press **Delete**.

      **Change a product**

      On the product, in the **Product** dropdown, select another product.

      **Select a different pricing plan**

      In the **Plan** section, press **Select a different plan**, then select a plan.

      **Change quantity of an item**

      In the plan or product, in the **Quantity** field, enter a new quantity.

      **Edit pricing**

          1. On an order item, in the **Plan** section, press **Edit plan**.
          2. Press **Pricing**.
          3. In the **Pricing formula** dropdown, select a custom pricing formula.
            For more information, see [Pricing formulas](/docs/settings/pricing-formulas).
          4. In the **Price** field, enter the price.
          5. Optionally, specify maximum and minimum quantities.
          6. Press **Save**.
      **Edit plan information**

          1. On an order item, in the **Plan** section, press **Edit plan**.
          2. Press **Edit plan**.
          3. In the **Name** field, enter a name to display on receipts and invoices.
          4. In the **Currency** dropdown, select the currency to use for this order.
          5. Under **Type**, select one of the following:

            The following options are available depending on the plan type.
            For example, trial-only and recurring options are only available for recurring plans.

                  - Change the plan to a trial-only plan: Select **Trial only**.
                  - Change the plan to a recurring plan: Select **Recurring**.
                  - Change the plan to a non-recurring order: Select **One-time**.
          6. Press **Save**.
      **Edit billing period settings**

      Use this option to configure a custom billing period for this order.
      This option is only available for recurring plans.

          1. On an order item, in the **Plan** section, press **Edit plan**.
          2. Press **Edit plan**.
          3. In the **Type** section, press **Recurring**.
          4. Press **Billing period**.
          5. To specify the length of the billing period, select one of the following:

                  - **Monthly:** Bill the customer every month.
                  - **Yearly:** Bill the customer every year.
                  - **Custom:** Bill the customer at a custom interval.
                    To define a custom billing period length: In the **Select period** dropdown, select **Days**, **Weeks**, **Months**, or **Years**.
                    In the **Number** field, enter the corresponding number of days, weeks, months, or years.
          6. In the **Frequency** section, to specify how often the billing period recurs, select one of the following:

                  - **Recurs until canceled:** Billing recurs until the order that contains subscription items is canceled.
                  - **Limited to:** Billing recurs for a specified number of occurrences.
          7. Press **Save**.
      **Edit metered billing**

      Use this option to configure custom metered billing based on usage for this order.

      This option is only available for metered billing plans that are billed in arrears (postpaid).
      To activate metered billing, enable postpaid settings: Press **Billing timing**, then select **Postpaid**.

          1. On an order item, in the **Plan** section, press **Edit plan**.
          2. Press **Metered billing**.
          3. Press **Activate metered billing**.
          4. In the **Metered billing strategy** dropdown, select one of the following:

                  - Accumulate the usage and report the total: Select **Sum of reported usage**.
                  - Report every usage: Select **Last reported usage**.
          5. In the **Quantity** section, in the **Min** field, enter the minimum quantity to charge at the end of a service period regardless of reported usage.
          6. In the **Max** field, enter the maximum quantity to charge at the end of a service period regardless of reported usage.
          7. Optionally, to bill the last reported quantity instead of zero when no usage is reported during a service period: Select the **Use last reported quantity when no usage is reported** checkbox.
            This setting is only available when using the **Last reported usage** billing strategy.
            For more information, see [Last reported quantity when no usage is reported](/docs/settings/products-and-pricing#last-reported-quantity-when-no-usage-is-reported).
          8. Press **Save**.
      **Edit billing timing**

      Use this option to configure custom billing timing for this order.

          1. On an order item, in the **Plan** section, press **Edit plan**.
          2. Press **Billing timing**.
          3. Select one of the following:

                  - Specify that payments must be paid in advance: Select **Prepaid**.
                  - Specify that payments must be paid at the end of the billing cycle: Select **Postpaid**.
          4. In the **Service period anchor** section, to set the date when the service period renews, select **Activate service period anchor** and specify a date.
            The start date and service period anchor date determine when the service period starts and ends.
          5. Press **Save**.
      **Edit trial and setup settings**

      Use this option to edit the trial and setup settings for this order.

          1. On an order item, in the **Plan** section, press **Edit plan**.
          2. Press **Trial and setup**.
          3. In the **Trial** section, to configure a custom trial period, select **Activate trial**, then specify the trial period length and total price.
            For a free trial, in the **Trial price** field, enter `0`.
          4. Optionally, to include a setup fee: In the **Setup fee** section, enter an amount.
          5. Press **Save**.
  **Set expiration date, redirect URL, associated coupons, and written signature**

  In the **Quote details** section, enter the following:

    - The expiration date of the quote.
    - A URL to redirect the customer to when a quote is accepted or rejected.
    - Apply any coupons to the quote.
  **Specify how shipping rates are calculated**

  This option is only displayed if one or more items in the quote is shippable.

  In the **Shipping** section, select from the following:

    - **Rebilly**: Dynamically calculate shipping costs based on your configured [shipping rate settings](/docs/settings/shipping).
    - **Manual**: Manually specify the shipping cost.
  **Configure autopay for the associated order**

  Use this process to configure if payment attempts for the related order must occur automatically.
  This setting supersedes the autopay setting that is currently configured on the order.
  For more information, see [Manage autopay](/docs/data-tables/manage-autopay).

  In the **Autopay** section, turn on the **Override autopay** toggle, and then select the **Enable autopay** checkbox.

  **Specify the quote acceptance conditions**

  In the **Acceptance** section, specify the condition that must be fulfilled for the quote to be accepted.
  Select from the following:

    - **Payment:** To accept the quote, the customer must pay the full amount of the quote.
    - **Pay later**: The customer accepts the quote and pays later.
  **Specify payment terms & signature**

    1. To display payment terms to the customer: In the **Payment terms & signature** section, enter terms.
    2. Optionally, to display a signature line on the printed quote: Select the **Include a signature line** checkbox, then enter a signatory name to print on the signature line.
8. After you edit the quote for reactivating the order that contains subscription items, at the bottom right of the page, press **Save quote**.
9. To issue the quote to the customer, press **Issue quote**.
  For information on how to manage active quotes, see [Manage quotes](/docs/data-tables/manage-quotes).

## Redeem coupons on an order

To redeem coupons on an order that contains subscription items, see [Redeem coupons on an order](/docs/settings/coupons-and-discounts#redeem-coupons-on-an-order).

## Pause orders

A pause is a period of time when an order that contains subscription items is inactive.
During a pause, the order that contains subscription items is not billed, and the customer does not receive the product or service.
When the pause ends, the order that contains subscription items resumes billing.

### Pause an order

Use this process to pause an order that contains subscription items.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders** or **Unpaid invoices**.
4. In the **ID** or **Invoice number** column, press an order.
5. In the right of the page, in the **Order details** section, press **Pause order**.
6. In the **Effective time** section, select one of the following:
    - Pause the order that contains subscription items immediately: Select **Now**.
    - Pause the order that contains subscription items on a specific date: Select **On specific date**, then select a date.
7. In the **End time** section, select one of the following:
    - Pause the order that contains subscription items indefinitely: Select **Indefinite**.
    - Pause the order that contains subscription items until a specific date: Select **Specific date**, then select the date when the pause ends.
8. In the **Pause information** section, specify who paused the order that contains subscription items.
9. In the **Description** field, enter a description for the pause.
10. Press **Pause**.

### Resume a paused order

Use this process to resume a paused order that contains subscription items.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. In the right of the page, in the **Order details** section, press **Resume order**.

### Edit a paused order

Use this process to edit the details of a paused order that contains subscription items.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order.
5. In the right of the page, in the **Order details** section, press **Edit pause**.
6. In the **Effective time** section, select one of the following:
    - Pause the order that contains subscription items immediately: Select **Now**.
    - Pause the order that contains subscription items on a specific date: Select **On specific date**, then select a date.
7. In the **End time** section, select one of the following:
    - Pause the order that contains subscription items indefinitely: Select **Indefinite**.
    - Pause the order that contains subscription items until a specific date: Select **Specific date**, then specify the end date.
8. In the **Pause information** section, specify who paused the order that contains subscription items, and provide a description for the pause.
9. Press **Edit pause**.

### Cancel a scheduled pause

Use this process to cancel a pause that is scheduled to start on a future date.

This option is only available for pauses that are scheduled to start on a future date.
To resume a paused order, see [Resume a paused order](/docs/data-tables/manage-subscriptions#resume-a-paused-order).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press the order with a scheduled pause.
5. In the right of the page, in the **Order details** section, press **Cancel pause**.

## View billing activity

Use this process to view a customer's billing activity.
The timeline displays activity by date and time.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Payments**.
3. Select one of the following segments: **Credits**, **Disputes**, **Sales**, or **Voids and refunds**.
4. In the **Timeline** section, on a billing activity, press **Caret right**.

## View metered billing usage

Use this process to view the usage of a metered billing plan.
For more information, see [Metered billing](/docs/settings/products-and-pricing#metered-billing).

Trial-only subscriptions do not have an upcoming invoice.
To view metered billing usage records for trial-only orders, see [View metered billing usage records for trial-only subscriptions](#view-metered-billing-usage-records-for-trial-only-subscriptions).

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. **Optionally, filter orders by a specific metered billing pricing plan**

  Complete this step to view orders that are billed based on a specific pricing plan that uses metered billing.

    1. In the top right of the table, press **Filter**.
    2. In the **Filter** dropdown, select **Plan ID**.
    3. In the **Operation** dropdown, select **Is in**.
    4. In the **Value** field, enter the ID of the pricing plan that uses metered billing.
    5. Press **Apply filter**.
5. In the **ID** column, press an order that is billed based on a metered billing plan.
6. On the upcoming invoice, in the **Quantity** column, view the usage of the metered billing plan.

## View monthly recurring revenue (MRR) of an order

Use this process to view the MRR of an order that contains subscription items.
MRR is the predicted recurring revenue of an order that contains subscription items each month.

- To configure whether discounts are applied to the MRR of an order that contains subscription items, see [Edit organization settings](/docs/settings/organizations-and-websites#edit-organization-settings).
  This applies to one-time discounts, and to recurring discounts with a specified end date or usage limit.
- Recurring discounts with no specified end date and usage limit are automatically subtracted from the MRR of an order that contains subscription items.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**, then in the **ID** column, press an order.
4. In the right of the page, in the **Order details** section, under the **MRR** label, view the MRR for the order.

## View order details

View the details of an order, such as the total amount invoiced, the total amount collected, and the number of invoices sent.
Other details include the renewal date, the autopay status, and the payment instrument used to pay the last invoice.
Invoice time shift details are also displayed.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**, **Canceled orders**, **Paid invoices**, or **Unpaid invoices**.
4. In the **ID** or **Invoice number** column, press a number.
5. In the right of the page, in the **Order details** section, view the following order details:
    - **Amount invoiced:** Total amount of money that has been invoiced to the customer for this order.
    - **Amount collected:** Total amount of money that has been collected from the customer for this order.
    - **# of invoices sent:** Total number of invoices that have been sent to the customer for this order.
    - **Renewal date:** Date and time when the order is renewed, and the next invoice for this order is due for payment.
    - **Autopay**: Status of the autopay feature on this order.
      If autopay is active, payments are collected automatically on the renewal date.
      The payment instrument that is associated with the order is used.
      For more information, see [Activate autopay](/docs/data-tables/manage-autopay#activate-autopay).
    - **Paid by:** Payment instrument that was used to pay the last invoice for this order.
    - **Invoice time shift:** Details of invoice issue and due date adjustments, if applicable.
      For more information, see [Invoice time and due time shift](/docs/settings/products-and-pricing#invoice-time-and-due-time-shift).

## View order risk analysis

Use this process to view the risk analysis information of an order.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Select one of the following segments: **Active orders**, **Canceled orders**, **Paid invoices**, or **Refunded invoices**.
4. In the **ID** or **Invoice number** column, press a number.
5. In the right of the page, in the **Risk analysis** section, view the risk information.

## View scheduled order item changes

Use this process to view order item changes that are scheduled to apply at the next renewal.

1. [Log in](https://app-sandbox.rebilly.com/login) to Rebilly.
2. In the left navigation bar, press **Data tables**, then press **Billing**.
3. Press **Active orders**.
4. In the **ID** column, press an order with a scheduled change.
5. In the right of the page, in the **Order details** section, view the scheduled order item changes and the renewal date.

# Make Me an Offer

Today’s marketplace is switching away from the prohibitively high upfront costs of software and services of the past.
These price tags did little to discourage counterfeiting and instead encouraged competitors to seek cheaper, more accessible products, even if the quality wasn’t always comparable.
Instead, subscription-based services are becoming popular, giving consumers an affordable price and the ability to make changes as needed.

This has created an explosion of growth within the affected industries.
However, the new obstacle facing subscription providers, whether it be for software or services, is how to maintain a base of customers who are always seeking the better deal.
The secret is to provide them with something extra in order to create interest in the product.

## Bonus Features

By far, one of the greatest draws of subscription-based services are the low monthly access fees as compared to the price of a large single purchase.
However, over the long-term, consumers may begin to question whether the value of these monthly fees is still worth their compounding cost.

In response to this concern, many companies are leveraging their subscription fee against a selection of add-on features and bonus content available only to subscribers.
For instance, Adobe offers cloud hosting and discounted stock photography to their Photoshop subscribers in order to encourage them to continue using the product, as well as to raise its perceived value.

## Contests & Prizes

In addition, the trend of monthly ‘boxes’ has provided a new template for web-based commerce.
Boxes usually consist of a monthly selection of products that generally fall under a particular theme and are delivered to a subscriber’s door.
Many of these start-ups host monthly contests to a select number of subscribers per month, enticing them with free offers and more products.
The renewed interest helps maintain volume while encouraging new customers through targeted advertisements featuring the prize packages.
These types of tactics are proving to be a reliable source of short-term growth for young companies.

## Discounts & Customizable Plans

Over the long-term, many retailers are leaning toward tiered subscription platforms and deep discounts for multi-month subscriptions.
While this isn’t a new concept in its entirety, it is beginning to be applied in new markets.
Virtually every monthly service allows its customers to save money by committing to a longer term of service, providing security for the business and a sense of value for consumers.

In a similar vein, in addition to or in lieu of discounts for long-term contracts, many businesses are now turning towards customizable plans that offer consumers the ability to tailor their services to their current needs.
This goes a long way toward preventing cancellation when a package of lesser content will often do, and gives consumers the option to upgrade when they feel underwhelmed by their current options.

Regardless of how you approach the subscription platform, the key to attracting, maintaining and satisfying customers is to give them a sense of value that grows and changes as they do.
A subscription service is a ‘buy it and forget it’ business model that suffers from threat of stagnation in the mind of the customer.

With a never-ending influx of competitors who can provide similar products at better prices, it’s most important to treat customers like individuals, rather than large groups.
Customizable offers and the ability to access bonus content not available elsewhere can be the difference between a long-term subscriber and a cancellation notice.

**Speaking of strategies to build a successful subscription business, our Retry Strategy guide walks you through another one.****span**  Download it today to get simple steps you can take to increase your LTV:

# Task 1. Set up your training environment

This topic describes how to log into Rebilly and set up your training environment.

1. [Log in to the Rebilly sandbox](https://app-sandbox.rebilly.com/login).
2. Use an organization that does not contain data.
  To create a new organization, see [create a new organization](/docs/settings/organizations-and-websites#create-additional-organizations).

# Are You Tracking the Wrong Metrics?

We’ve all fallen into that trap of watching our follower count rise and congratulating ourselves on the gains.
But here’s the thing: until those followers become customers, they’re meaningless as far as your bottom line is concerned.

**Followers are one example of “vanity metrics.”** They might make you feel cool, but they’re not necessarily going to create a more profitable business at the end of the day.

**Which metrics are nothing but flash and which will serve up useful facts to help your business grow?** Here’s a rundown of the contenders:

## You’re tracking: Followers

### Track this instead: Engagement

While a long list of followers is satisfying, the metric your business should really be concerned about is engagement.
When you concentrate on engagement, you’ll learn more about why one post generates excitement among your followers and another post is barely glanced at.
From there, you can learn a lot about who your customers are and what they want.

How many followers are commenting on, liking, and sharing each post?
Which newsletters or emails are being passed from one customer to another and how often is that happening?

Looking at engagement tells you which marketing efforts spark the most interest and have the potential to increase your leads and conversions.

A Net Promoter Score (NPS) goes one step further by measuring the likelihood that an engaged follower will recommend you to someone else.
To learn more about calculating your NPS and how to do so, [head here](https://blog.hubspot.com/service/how-to-calculate-nps).

## You’re tracking: Awareness

### Track this instead: Preference

When you’re starting to break into an overcrowded field, it can be tempting to keep track of your brand awareness and get excited about any gains in it.
After all, people can’t buy your product if they don’t know about it, right?

However, even if someone is aware of your product, they may still prefer your competitors.
[Brand preference](https://themasb.org/wp-content/uploads/2018/05/MWP_ApplyingBIVModel_MeierFindleyStewart2018.pdf) measures your success against your competitors, assuming that all other variables (price, for example) are equal.
In that case, what percentage of all potential customers are choosing you versus your competitor?

The preference metric guides you in making decisions like lowering your prices, increasing your marketing spend, or changing your distribution to become more competitive.

## You’re tracking: Visitors

### Track this instead: Bounce Rate

A large number of visitors to your website indicates that you have readable, interesting content with high SEO.
But are those visitors staying around or “bouncing” off to another, perhaps competitive website?

Your “bounce rate” is the percentage of visitors that click away after viewing one page on your website (as compared to visitors who land on a page, then click through to another page afterwards).
You want to keep that bounce rate as low as possible — [depending on industry and primary traffic sources](https://admixglobal.com/whats-the-average-bounce-rate-in-google-analytics/), average bounce rates are anywhere from 26-70%.
For example, bounce rates from “cold” traffic sources, like search engines, tend to be higher, as they’re less engaged visitors than “warm” traffic coming from emails, social media, etc.

At any rate, it’s much easier to convert visitors to customers if they stay longer, digest your content, and at least consider your call to action before moving on, so focus on keeping your bounce rate low.

## You’re tracking: Leads

### Track this instead: Conversions

When visitors sign up for a trial subscription or leave contact information, you have cause to celebrate.
You’ve just added another lead to your sales funnel and that is a good metric to follow.

But did that lead actually become a subscriber or regular user of your product?
Conversion rate from a lead to a customer is one of the most important metrics you can track.
In addition to that, make sure you’re looking at other factors like:

- Length of time before converting visitors to actual customers
- How many conversions turn into one time customers vs. repeat customers
- Where the visitors who do convert from lead to customer are coming from (we talk more about this in [this post](/blog/data-based-marketing-can-increase-ltv/), and [offer features to help you do it](/docs/automations/automation-reports)

This one is a bit different from some of the other metrics, because you definitely need to be tracking both of these.
But at the same time, don’t make leads the be-all-end-all goal.
After all, converting visitors to leads doesn’t do much good if you can’t convert those leads to customers.

## You’re tracking: Cost of Marketing

### Track this instead: Cost of Customers

Marketing campaigns consume resources—time, money, people.
And your resources may be limited.

However, the telling metric to watch is not the overall cost of marketing, but the cost per customer, also known as the customer acquisition cost.
Consider the following:

- The cost of acquiring each customer
- How long each customer is staying with your product
- How much revenue each customer is generating over a month, year, or lifetime of being a customer

Paying attention to all of these data points can also indicate where you should be devoting your resources and where opportunities exist for upselling, and [help you create a data-based marketing plan](/blog/data-based-marketing-can-increase-ltv/).
That’s much more useful than a bottom-line marketing cost!

## Make the most of your metrics

Metrics can be empowering and useful.
They exist to give you facts about your customers, redirect your marketing efforts, and make the most efficient use of your resources.
Of course, that only applies when you’re following metrics that matter, versus [ones you think matter (but don’t really)](/blog/transaction-success-rate-definition-why-it-rarely-matters/), or [less-talked-about metrics](/blog/tracking-reducing-involuntary-churn/).

They also interact with each other, so make sure you’re calculating what you think you are calculating.
For example, if you are measuring engagement, then you may consider any mention of your brand to be advantageous; but if you are measuring preference, you want to calculate _only_ positive mentions that result in customers choosing your brand over the competition’s.

When used well, metrics give you true insight into your return on investment.
When you measure whether customers are actively engaged, show a preference for your brand over your competition’s, stay on your website, are converted to customers, and then stick with your product over time, you’re ditching flashy metrics to focus on the metrics that matter.

## Want to learn more about how to boost the metrics that matter?

Download our free guide that’ll show you how to boost your customer lifetime value by 43% or more below:

# Task 3. Collect payments

Task: Collect the following payments using hosted payment forms.

Docs: [Collect or register a payment](/docs/data-tables/manage-customer-payments-and-billing#collect-or-register-a-payment).

When you complete the transaction using the hosted payment form, you will be redirected to the URL you have set as your website URL in your [Organization and Websites settings](https://www.rebilly.com/docs/concepts-and-features/organizations-and-websites).
You may be redirected to a page that does not exist, that is OK.
Close the browser tab after you have been redirected and continue with your next payment.

---

- Customer ID: Test1
- Customer name: Sherry Emery
- Amount: 5
- Currency: USD
- Test card: `4111 1111 1111 1111`
- Expiration date: Any date in the future.
- CVV: Any 3 digit number
- Result: Approved

---

- Customer ID: Test2
- Customer name: Arlene Steele
- Amount: 10
- Currency: USD
- Test card: `5555 5555 5555 4444`
- Expiration date: Any date in the future.
- CVV: Any 3 digit number
- Result: Approved

---

- Customer ID: Test3
- Customer name: Jarvis Wooten
- Amount: 15
- Currency: USD
- Test card: `6011 1111 1111 1117`
- Expiration date: Any date in the future.
- CVV: Any 3 digit number
- Result: Approved

# Rebilly news, features, and updates for September 2023

Hello, and welcome to the September edition of the Rebilly news, features, and updates blog.

We recently went on our company meetup, to Tuscany, Italy!
[Check out the highlights in this blog](/blog/tuscanny-2023).

## New features

This month we added the following new features.

### Refined intelligent retry functionality

We refined how intelligent retry works, it's now even smarter.

Intelligent retry is a feature that automatically retries failed payments at times when there is a higher chance of approval.
This feature uses historical BIN approval rates to determine the best time to retry the payment within a specified period of time.
For more information, see [Schedule invoice retry](/docs/automations/action-types#schedule-invoice-retry).

### Allowlists

We added the ability to exclude specific customer attribute data from risk score checks.
Use this feature to prevent specific customer data from being added to a blocklist.
For more information, see [Allowlists](/docs/automations/allowlists).

### Custom fields on gateway accounts

We added option to configure custom fields on gateway accounts.
Custom fields extend a resource schema to include custom data that is not provided as a common field.
For more information see, [Set up a gateway](/docs/settings/set-up-a-gateway).

### Approval URL redirects in hosted payment forms

We added the option to specify how approval URL redirects are managed in hosted payment forms.
For more information, see [Edit a hosted payment form](/docs/settings/hosted-payment-forms#edit-a-hosted-payment-form).

## New payment gateway integrations

- Added support for the [EasyPayDirect payment gateway](/gateways/easypaydirect).
- Added support for the [PayRedeem payment gateway](/gateways/payredeem).
- Added support for the [ACH payment method](/payment-methods/ach) for the [Buckaroo payment gateway](/gateways/buckaroo).

### Integration requests

Rebilly supports 214 payment gateways and 184 payment methods including ACH, PayPal, and Bitcoin.
If you would like to add a payment integration that’s not in [our list](/gateways), complete the [request a new payment gateway integration](/docs/settings/integration-requests) process.

If you have any questions, please [contact us](https://www.rebilly.com/support/).
We are happy to help!

For more release information, see [Release notes](/docs/release-notes).

---

**Not a Rebilly user?
[Sign up for a free trial](https://app-sandbox.rebilly.com/) and see what you're missing.**

# Payment methods supported by the Rebilly Instruments library

| Payment method | Type | Payment gateways | Notes |
| --- | --- | --- | --- |
| [ACH](/docs/dev-docs/setup-rebilly-instruments-ach) | Bank transfer | Adyen, AuthorizeNet, BlueSnap, Buckaroo, Directa24, EasyPayDirect, NMI, NuaPay, SeamlessChex, Stripe, WesternUnion |  |
| AdvCash | Credit card |  |  |
| Aircash | Wallet | Aircash |  |
| Airpay | Wallet | Airpay |  |
| Alfa-click | Credit card | Piastrix |  |
| Alipay | Wallet | Adyen, CheckoutCom |  |
| AmazonPay | Wallet | AmazonPay |  |
| ApplePay | Wallet |  | **Should be used only with the payment card method.** |
| AstroPay Card | Credit card | AstroPayCard |  |
| AstroPay Go | Bank transfer | AstroPayCard |  |
| Baloto | Wallet | PaymentsOS |  |
| Bancontact | Credit card | ApcoPay, Buckaroo, CheckoutCom, HiPay |  |
| Bancontact-mobile | Wallet | Adyen, HiPay |  |
| BankReferenced |  | PaymentsOS |  |
| BankSEND | Bank transfer | BankSEND |  |
| Bank Transfer | Bank transfer |  |  |
| Beeline | Wallet + Card | Piastrix |  |
| Belfius Direct Net | Bank transfer | HiPay |  |
| Bitcoin | Cryptocurrency | BVNK, BitPay, CoinPayments, Monolo, Orbital, Pagsmile, Paymero, Piastrix, Skrill, UPayCard |  |
| Bizum | Bank transfer | Redsys |  |
| Blik | Wallet | Adyen, PPRO, Safecharge |  |
| Boleto | Voucher | Adyen, BlueSnap, Directa24, INOVAPAY, Pagsmile, PaymentsOS |  |
| Cash Deposit |  | Directa24, dLocal, ePay, LPG, PayRetailers |  |
| CASHlib | Voucher | CASHLib |  |
| CashToCode | Voucher | CashToCode |  |
| CCAvenue |  | CCAvenue |  |
| Conekta OXXO | Voucher | Conekta |  |
| Conekta SPEI | Bank transfer | Conekta |  |
| Cryptocurrency | Cryptocurrency | BVNK, BitPay, CoinGate, CoinPayments, CoinBase, Finrax, Monolo, NOWPayments, Orbital |  |
| Cupon de Pagos | Voucher |  |  |
| CyberSource | Credit card | CyberSource |  |
| Dimoco pay smart |  | Dimoco |  |
| Directa24Card |  | Directa24 |  |
| ecoPayz | Wallet + Card | ecoPayz |  |
| ecoVoucher | Voucher | ecoPayz |  |
| Efecty | Voucher | PaymentsOS |  |
| ePay.bg | Wallet | ePay, Skrill |  |
| EPS | Wallet | Adyen, CheckoutCom, ICEPAY, Safecharge, Skrill, Worldpay |  |
| Ethereum | Cryptocurrency | BVNK, Monolo, Orbital, Paymero, Piastrix |  |
| eZeeWallet | Wallet | eZeeWallet |  |
| ezyEFT | Bank transfer | ezyEFT |  |
| FasterPay | Wallet | FasterPay |  |
| Flexepin | Wallet | ApcoPay, Flexepin |  |
| Giropay | Bank transfer | Adyen, CheckoutCom, PPRO, Safecharge, Skrill, Worldpay |  |
| Gpaysafe | Credit card |  |  |
| GooglePay | Wallet |  | **Should be used only with the payment card method.** |
| iDEAL | Bank transfer | Adyen, ApcoPay, BlueSnap, Buckaroo, CheckoutCom, Safecharge, Trustly, Worldpay |  |
| iDebit | Wallet | iDebit |  |
| ING Homepay | Bank transfer | HiPay |  |
| INOVAPAY Pin |  | INOVAPAY |  |
| INOVAPAY Wallet | Wallet | INOVAPAY |  |
| InstaDebit |  | InstaDebit |  |
| Instant Payments | Bank transfer | Citadel |  |
| Interac | Credit card | Gigadat, ParamountInterac, Payper |  |
| Interac eTransfer | Bank transfer | Gigadat, ParamountInterac, Payper |  |
| Interac Express Connect |  | Gigadat |  |
| Interac Online | Wallet | Gigadat, Payper |  |
| Invoice | Invoice | Directa24 |  |
| Jeton | Wallet | Jeton |  |
| JetonCash | Wallet | Jeton |  |
| Jpay |  | ApcoPay |  |
| LPG Online |  | LPG |  |
| LPG Payment Card | Credit card | LPG |  |
| Litecoin | Cryptocurrency | CoinPayments, Orbital, Paymero |  |
| loonie |  | loonie |  |
| Matrix |  | PaymentOS |  |
| MaxiCash |  | MaxiCash |  |
| Megafon |  | Piastrix |  |
| MercadoPago |  | Directa24 |  |
| MiFinity-eWallet |  | MiFinity |  |
| MobilePay |  | MobilePay |  |
| MTS | Wallet | Piastrix |  |
| MuchBetter |  | MuchBetter |  |
| Multibanco |  | CheckoutCom |  |
| MyFatoorah |  | MyFatoorah |  |
| Neosurf | Voucher | Neosurf |  |
| Netbanking | Bank transfer | AstroPayCard, Directa24, Netbanking, Paymero |  |
| Neteller | Wallet | Neteller |  |
| Nordea Solo |  |  |  |
| NordikCoin | Wallet | NordikCoin |  |
| OchaPay |  | OchaPay |  |
| Online Bank Transfer | Bank transfer | AstroPayCard, Awepay, Directa24, Dragonphoenix, Ezeebill, ICEPAY, INOVAPAY, Ilixium, Limepay, Skrill |  |
| OnlineUeberweisen | Bank transfer | ApcoPay, ICEPAY, Onlineueberweisen |  |
| Oriental Wallet |  | ApcoPay |  |
| OXXO | Voucher | Adyen, Conekta, Safecharge |  |
| P24 | Bank transfer | CheckoutCom, Safecharge, Skrill |  |
| Pagadito |  | Pagadito |  |
| PagoEffectivo |  | Directa24, PaymentsOS, Paysafecard, Skrill |  |
| Pagsmile Deposit Express |  | Pagsmile |  |
| Pagsmile Lottery |  | Pagsmile |  |
| Pay4Fun | Wallet | Pay4Fun |  |
| PayCash |  | PayCash |  |
| Payeer | Wallet | Piastrix |  |
| Payment card | Card | A1Gateway, ACI, Adyen, Airwallex, AmexVPC, AuthorizeNet, Bambora, BlueSnap, BraintreePayments, CCAvenue, Cashflows, CauriPayment, Cayan, Chase, CheckoutCom, Circle, Credorax, CyberSource, DataCash, Dengi, Directa24, Dragonphoenix, Dropayment, EBANX, EMS, EPG, EPro, EasyPayDirect, EcorePay, Elavon, FinTecSystems, Forte, FundSend, GET, GlobalOnePay, Gooney, Gpaysafe, Greenbox, HiPay, INOVAPAY, Ilixium, Ingenico, Inovio, Intuit, JPMOrbital, JetPay, Konnektive, LPG, LaCore, MercadoPago, Moneris, MtaPay, MyFatoorah, NGenius, NMI, NinjaWallet, NuaPay, OchaPay, OmniMatrix, PSiGate, Panamerican, ParamountEft, ParamountInterac, PayCom, PayRedeem, PayRetailers, PayTabs, PayU, PayULatam, Payeezy, Payflow, PaymenTechnologies, PaymentsOS, Payr, Paysafe, PharosPayments, Piastrix, Plugnpay, Prosa, RPN, Rapyd, Realex, Realtime, Redsys, Rotessa, Safecharge, Sagepay, SaltarPay, SeamlessChex, SecureTrading, SecurionPay, Skrill, SmartInvoice, Sofort, Stripe, Tabby, Telr, Truevo, TrustsPay, USAePay, VantivLitle, Walpay, WorldlineAtosFrankfurt, Worldpay, Zotapay, dLocal, eMerchantPay, ecoPayz, iCanPay, iCheque, vegaaH |  |
| PaymentAsia-crypto |  | PaymentAsia |  |
| Paymero | Bank transfer | Paymero |  |
| Paymero-QR |  | Paymero |  |
| [Paypal](/docs/dev-docs/setup-rebilly-instruments-paypal) | Wallet | PayPal |  |
| Paysafecard | Voucher | Adyen, Paysafecard, Skrill |  |
| PayTabs | Wallet | PayTabs |  |
| PayU |  | PPRO, Safecharge |  |
| PayU Latam |  | PayULatam |  |
| Perfect Money |  | AstroPayCard, Piastrix |  |
| Phone |  | Directa24, Limepay |  |
| PhonePe |  | AstroPayCard |  |
| Piastrix | Wallet | Piastrix |  |
| PinPay |  | Ilixium |  |
| PIX | Bank transfer | Adyen, AstroPayCard, Directa24, INOVAPAY, MuchBetterGateway, Pagsmile, Pin4Pay, Skrill |  |
| POLi |  | CheckoutCom, Safecharge, Skrill, Worldpay |  |
| QIWI |  | Piastrix |  |
| QPay |  | CheckoutCom |  |
| QQPay |  |  |  |
| Rapyd Checkout |  | Rapyd, Skrill |  |
| Resurs |  |  |  |
| SafetyPay |  | Paysafecard |  |
| SEPA | Bank transfer | Safecharge |  |
| Siirto |  | Euteller |  |
| Skrill |  | Skrill |  |
| Skrill Rapid Transfer | Wallet | Skrill |  |
| SMSVoucher | Mobile voucher | SMSVoucher |  |
| Sofort | Bank transfer | Adyen, CheckoutCom, Safecharge, Worldpay |  |
| SparkPay |  | SparkPay |  |
| SPEI | Bank transfer | Safecharge, Unlimit |  |
| SWIFT Debit |  |  |  |
| Tele2 |  | Piastrix |  |
| Telr |  | Telr |  |
| Terminaly RF |  | Piastrix |  |
| Tether | Cryptocurrency | BVNK, CoinPayments, Monolo, Orbital, Paymero, Piastrix |  |
| ToditoCash Card |  | ToditoCash |  |
| Trustly | Bank transfer | Adyen, Ilixium, Trustly |  |
| Tupay |  | Directa24 |  |
| TWINT | Wallet | Adyen, TWINT |  |
| UniCrypt |  |  |  |
| UPayCard |  | UPayCard |  |
| UPI |  | Adyen, AstroPayCard, Directa24, Limepay, Netbanking, Paymero, gate2way |  |
| USD Coin | Cryptocurrency | CoinPayments, Orbital |  |
| VCreditos |  | VCreditos |  |
| VegaWallet |  | VegaWallet |  |
| Venus Point |  | ApcoPay, Directa24 |  |
| Voucher | Voucher | Directa24 |  |
| Wallet88 | Wallet |  |  |
| Webmoney |  | Piastrix |  |
| Webpay |  | EBANX |  |
| Webpay Card |  | Directa24 |  |
| WeChat Pay | Wallet |  |  |
| XPay-P2P |  | XPay |  |
| XPay-QR |  | XPay |  |
| Yandex Money |  | Piastrix |  |
| Zimpler |  | ApcoPay, Zimpler |  |
| Zotapay | Credit card | Zotapay |  |

# Shipping rates

This topic describes how to create and update shipping rates, and also how to apply them to an invoice.

## Create a shipping rate

Use this process to create shipping rates.
When multiple shipping rates apply, the user can select their preferred shipping rate during checkout.
If no products in the transaction require shipping, shipping rates are not used.

To create more than one shipping rate, repeat this process.

1. In the left navigation bar, press **Settings**.
2. In the **Pricing** section, press **Shipping rates**.
3. Press **Create shipping rate**.
4. In the **Name** field, enter a descriptive name for the shipping rate.
  The **ID** field is dynamically populated based on the **Name** field.
5. Optionally, in the **Description** field, enter additional information about the shipping rate.
6. In the **Price** field, enter the price of the shipping rate.
7. In the **Currency** field, enter the currency of the shipping rate.
  This has to match the currency of the invoice.
8. Optionally, to specify conditions that determine when this shipping rate is applicable to an invoice:
    1. Clear the **No conditions** checkbox.
    2. Define conditions by adding one or more filters.
9. Press **Save shipping rate**.

## Manage shipping rates

Use this process to view, activate or deactivate, edit, or delete shipping rates.

1. In the left navigation bar, press **Settings**.
2. In the **Pricing** section, press **Shipping rates**.
  The shipping rates page displays all rates.
  The **Status** toggle indicates which shipping rates are active.
3. Select from the following:
    - Activate or deactivate a shipping rate: On the left of a shipping rate, turn on the **Status** toggle.
    - Edit a shipping rate: On the right of a shipping rate, press **Edit**.
      Edit the shipping rate information, then press **Save shipping rate**.
    - Delete a shipping rate: On the right of a shipping rate, press **Delete**.

## Apply shipping rates to an invoice

Use this process to apply shipping rates to an invoice.

### 1. Create a product

To create a product, see [Create a product](/docs/settings/products-and-pricing#create-a-product).

To apply shipping rates to an invoice, the related product must have the **Shippable** checkbox selected.

### 2. Create a pricing plan

To create a pricing plan, see [Create a pricing plan](/docs/settings/products-and-pricing#create-a-pricing-plan).

### 3. Create a shipping rate

To create a shipping rate, see [Create a shipping rate](#create-a-shipping-rate).

### 4. Create an order and apply a shipping rate

1. In the left navigation bar, press **Data tables**.
2. Press **Customers**, and then select a customer.
3. In the right of the page, press **Manage customer**, then press **Create order**.
4. In the **Products and plans** section, select a product, then select a pricing plan.
5. Enter your payment and timing preferences.
6. If your product has the **Shippable** checkbox selected, shipping details are displayed.
  Select from the following:
    - Dynamically calculate shipping costs based on your configured shipping rate settings: In the **Shipping** section, select **Rebilly**.
    - Manually enter shipping costs: In the **Shipping** section, select **Manual**.
7. Press **Create order**.

## Manually update shipping rate on an invoice

Use this process to manually update the shipping rate on an invoice.

1. In the left navigation bar, press **Data tables**.
2. Press **Customers**, and then select a customer.
3. Locate the invoice in the **Timeline** or **Pending orders** section.
4. At the bottom of the invoice, beside **Shipping**, press **Edit s**.
5. Select **Manual** and enter the amount, then press **Save**.

# Add a PayPal account

This process describes how to add a PayPal account to the Rebilly sandbox and live environments.

1. Select from the following:

  **Add PayPal to the Rebilly sandbox environment**

    - By default, reference transactions are active in the Rebilly sandbox environment.
    - To connect a PayPal gateway account in the Rebilly sandbox environment, you must have PayPal sandbox credentials.

    1. Locate your sandbox log in credentials in PayPal.
      For more information, see [How do I find my Sandbox API credentials](https://www.paypal.com/us/cshelp/article/how-do-i-find-my-sandbox-api-credentials-ts1500).
      Take note of the **Email ID**, and **System generated password** values.
    2. [Log in to your Rebilly sandbox environment](https://app-sandbox.rebilly.com/).
  **Add PayPal to the Rebilly live environment**

  **Important**

  To use PayPal in the Rebilly live environment, reference transactions must be active in PayPal.
  If this is not already active, contact your PayPal account manager to activate it.

    1. [Log in to your Rebilly live environment](https://app.rebilly.com/).
2. In the left navigation bar, press **Settings**.
3. In the **Configuration** section, press **Gateway accounts**.
4. Press **Add gateway account**, and then select **PayPal**.
5. In the **Gateway account ID** field, enter a unique alphanumeric value.
  Use a value that is easy to recognize in your reports.
  This ID is used in other configuration pages, and is how this account is referenced within the API.
6. In the **Select currencies** field, enter the currencies that your PayPal account supports.
7. Optionally, [configure advanced gateway settings](/docs/settings/set-up-a-gateway).
8. Press **Save gateway account**.
9. You are redirected to a PayPal log in page.
  To connect your PayPal account, enter your business PayPal account credentials.
10. Complete [test transactions](/docs/tutorials/test-transactions).

[Truncated: this site's markdown exceeds the llms-full.txt size limit. See /llms.txt for the full page index.]
