# All 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 This topic describes the different forms of authentication that are available in the Rebilly API, and how to use them. 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 Rebilly enforces rate limits on the API to ensure that no single organization consumes too many resources. Rate limits are applied to the organization, and not to the API key. In sandbox environment, rate limits are enforced for non-GET endpoints and are set at 3000 requests per 10 minutes. You can find the exact number of consumed requests in the `X-RateLimit-Limit` and `X-RateLimit-Remaining` headers in the response. If the rate limit is exceeded, the API returns a `429 Too Many Requests` response and a `X-RateLimit-Retry-After` header that includes a UTC timestamp of when the rate limit resets. Version: latest License: Rebilly ## 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 `. 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](https://www.rebilly.com/catalog/all/application-owners/getapplicationinstancebyorganization/). Usage format: `Bearer `. 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 [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin). Usage format: `Bearer `. Type: http Scheme: bearer Bearer Format: JWT ## Download OpenAPI description [All APIs](https://www.rebilly.com/_spec/static/_spec/catalog/all-3.0.yaml) ## 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. ### Retrieve allowlist collection - [GET /allowlists](https://www.rebilly.com/static/_spec/catalog/all-3.0/allowlists/getallowlistcollection.md): Retrieves allowlist collection. ### Create allowlist record - [POST /allowlists](https://www.rebilly.com/static/_spec/catalog/all-3.0/allowlists/postallowlist.md): Creates allowlist record. ### Retrieve allowlist record - [GET /allowlists/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/allowlists/getallowlist.md): Retrieves allowlist record. ### Delete allowlist record - [DELETE /allowlists/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/allowlists/deleteallowlist.md): Deletes allowlist record with a specified ID. ## 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. ### Retrieve AML checks - [GET /aml-checks](https://www.rebilly.com/static/_spec/catalog/all-3.0/aml/getamlcheckcollection.md): Retrieves a list of AML checks. These checks are records of customer data and potentially matching data in AML lists. ### Retrieve an AML check - [GET /aml-checks/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/aml/getamlcheck.md): Retrieves the results of a customer's AML check. Customer metadata and an array of matching AML hits is returned. ### Start review of an AML check - [POST /aml-checks/{id}/start-review](https://www.rebilly.com/static/_spec/catalog/all-3.0/aml/postamlcheckstartreview.md): Starts the manual review process for an AML check with a specified ID. This operation also sets the AML check to the current date-time, and updates the review information. ### Stop review of an AML check - [POST /aml-checks/{id}/stop-review](https://www.rebilly.com/static/_spec/catalog/all-3.0/aml/postamlcheckstopreview.md): Stops the manual review process for an AML check with a specified ID. This operation also sets the AML check 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. ### Review an AML check - [POST /aml-checks/{id}/review](https://www.rebilly.com/static/_spec/catalog/all-3.0/aml/postamlcheckreview.md): Reviews an AML check. The AML check can be either confirmed or marked as a false positive. ### Retrieve AML settings - [GET /aml-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/aml/getamlsettings.md): Retrieves AML settings. ### Update AML settings - [PUT /aml-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/aml/putamlsettings.md): Updates AML settings. ### AML list possibly matched - [POST aml-list-possibly-matched](https://www.rebilly.com/static/_spec/catalog/all-3.0/aml/aml-list-possibly-matched.md) ## API keys Use API keys to identify and authenticate applications and users. Always keep your API keys private. When creating API keys, you can restrict them to a given set of permissions. For information on how to create and manage API keys, see [API keys](https://www.rebilly.com/docs/dev-docs/api-keys/). ### Retrieve API keys - [GET /api-keys](https://www.rebilly.com/static/_spec/catalog/all-3.0/api-keys/getapikeycollection.md): Retrieve a list of API keys. ### Create an API key - [POST /api-keys](https://www.rebilly.com/static/_spec/catalog/all-3.0/api-keys/postapikey.md): Create an API key. ### Retrieve API key - [GET /api-keys/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/api-keys/getapikey.md): Retrieve API key with a specified ID. ### Upsert an API key - [PUT /api-keys/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/api-keys/putapikey.md): Create or update (upsert) API key with a specified ID. ### Delete API key - [DELETE /api-keys/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/api-keys/deleteapikey.md): Deletes an API key with a specified ID. ## Application owners Use these operations to register applications to the Rebilly Apps Store and manage application instances. An application owner is a person or organization that has submitted an app to the Rebilly App Store. For more information, see [Submit an app](https://www.rebilly.com/docs/dev-docs/submit-a-rebilly-app/). ### Register an application - [POST /applications](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-owners/postapplication.md): Registers an application and displays it publicly in the App Store. Before you submit an application, read the App Store documentation. ### Retrieve application instances - [GET /applications/{id}/instances](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-owners/getapplicationinstancecollection.md): Retrieves application instances with specified IDs. ### Retrieve an application instance - [GET /applications/{id}/instances/{organizationId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-owners/getapplicationinstancebyorganization.md): Retrieves an application instance with specified application and organization IDs. ### Application instance was disabled - [POST application-instance-disabled](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-owners/application-instance-disabled.md) ### Application instance was enabled - [POST application-instance-enabled](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-owners/application-instance-enabled.md) ## Application users Use these operations to install or uninstall apps from the Rebilly App Store to your Rebilly account, and to manage application instances. An application user is a person or organization that uses an app that is installed from the Rebilly App Store. For more information, see [Install or uninstall an app](https://www.rebilly.com/docs/dev-docs/install-an-app/). ### Retrieve an application instance - [GET /application-instances/{applicationId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-users/getapplicationinstance.md): Retrieves a list of application instances. You may sort applications by: , , , , and . ### Upsert an application instance - [PUT /application-instances/{applicationId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-users/putapplicationinstance.md): Creates or updates (upserts) an application instance. ### Delete application instance - [DELETE /application-instances/{applicationId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-users/deleteapplicationinstance.md): Deletes an application instance with a specific ID. ### Retrieve an application instance configuration - [GET /application-instances/{applicationId}/configuration](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-users/getapplicationinstanceconfiguration.md): Retrieves the configuration of an installed application with a specified ID. ### Upsert an application instance configuration - [PUT /application-instances/{applicationId}/configuration](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-users/putapplicationinstanceconfiguration.md): Creates or updates (upserts) an application instance configuration. ### Retrieve applications - [GET /applications](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-users/getapplicationcollection.md): Retrieves a list of all applications. You may sort applications by: , , , , and . ### Retrieve application - [GET /applications/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/application-users/getapplication.md): Retrieves an application with a specified ID. ## Balance transactions Use these operations to view and manage balance transactions. > **Important:** These operations are experimental and may change. ### Retrieve balance transactions - [GET /balance-transactions](https://www.rebilly.com/static/_spec/catalog/all-3.0/balance-transactions/getbalancetransactioncollection.md): Retrieves a list of balance transactions. > This operation is experimental and may change. ### Retrieve a balance transaction - [GET /balance-transactions/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/balance-transactions/getbalancetransaction.md): Retrieves a balance transaction with a specified identifier. > This operation is experimental and may change. ### Balance transaction settled - [POST balance-transaction-settled](https://www.rebilly.com/static/_spec/catalog/all-3.0/balance-transactions/balance-transaction-settled.md) ## Billing portals Use these operations to create and manage billing portals. Rebilly hosted billing portals provide secure, Rebilly hosted pages, where customers can: view invoices, cancel subscriptions, update payment instruments, and update their address. ### Retrieve billing portals - [GET /billing-portals](https://www.rebilly.com/static/_spec/catalog/all-3.0/billing-portals/getbillingportalcollection.md): Retrieves a list of billing portals. ### Create a billing portal - [POST /billing-portals](https://www.rebilly.com/static/_spec/catalog/all-3.0/billing-portals/postbillingportal.md): Creates a billing portal. ### Retrieve a billing portal - [GET /billing-portals/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/billing-portals/getbillingportal.md): Retrieves a billing portal with a specified ID. ### Upsert a billing portal - [PUT /billing-portals/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/billing-portals/putbillingportal.md): Creates or updates (upserts) a billing portal with a specified ID. ### Delete a billing portal - [DELETE /billing-portals/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/billing-portals/deletebillingportal.md): Deletes a billing portal with a specified ID. ## 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. ### Retrieve blocklists - [GET /blocklists](https://www.rebilly.com/static/_spec/catalog/all-3.0/blocklists/getblocklistcollection.md): Retrieves a list of all blocklists. ### Create a blocklist - [POST /blocklists](https://www.rebilly.com/static/_spec/catalog/all-3.0/blocklists/postblocklist.md): Creates a blocklist. ### Retrieve a blocklist - [GET /blocklists/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/blocklists/getblocklist.md): Retrieves a blocklist with a specified ID. ### Create a blocklist with specified ID - [PUT /blocklists/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/blocklists/putblocklist.md): Creates a blocklist with a specified ID. ### Delete a blocklist - [DELETE /blocklists/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/blocklists/deleteblocklist.md): Deletes a blocklist with a specified ID. ## Broadcast messages Use broadcast messages to notify customers and leads about upcoming promotions, service updates, and events. Broadcast messages are emails that are sent to a specific group of customers, or all customers. For more information, see [Create a broadcast message](https://www.rebilly.com/docs/automations/email-notifications/#create-broadcast-messages). ### Retrieve broadcast messages - [GET /broadcast-messages](https://www.rebilly.com/static/_spec/catalog/all-3.0/broadcast-messages/getbroadcastmessagecollection.md): Retrieves a list of broadcast messages. ### Create a broadcast message - [POST /broadcast-messages](https://www.rebilly.com/static/_spec/catalog/all-3.0/broadcast-messages/postbroadcastmessage.md): Creates a broadcast message. ### Retrieve a broadcast message - [GET /broadcast-messages/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/broadcast-messages/getbroadcastmessage.md): Retrieves a broadcast message. ### Delete a broadcast message - [DELETE /broadcast-messages/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/broadcast-messages/deletebroadcastmessage.md): Deletes a broadcast message with a specified ID. ### Update a broadcast message - [PATCH /broadcast-messages/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/broadcast-messages/patchbroadcastmessage.md): Updates a broadcast message with a specified ID. ## Cashiers Use these operations to create and manage cashiers. > **Important:** These operations are experimental and may change. ### Create a cashier - [POST /cashiers](https://www.rebilly.com/static/_spec/catalog/all-3.0/cashiers/postcashier.md) ### Retrieve a cashier - [GET /cashiers/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/cashiers/getcashier.md): Retrieves a cashier with a specified ID. ## Checkout forms Use these operations to create and manage checkout forms. Rebilly hosted checkout forms provide secure and compliant checkouts. Checkout forms are customizable, and use fully responsive design, built-in error messaging, validation, and expedited checkout for returning customers. ### Retrieve checkout forms (deprecated) - [GET /checkout-forms](https://www.rebilly.com/static/_spec/catalog/all-3.0/checkout-forms/getcheckoutformcollection.md): Retrieves a list of checkout forms. ### Create a checkout form (deprecated) - [POST /checkout-forms](https://www.rebilly.com/static/_spec/catalog/all-3.0/checkout-forms/postcheckoutform.md): Creates a checkout form. ### Retrieve a checkout form (deprecated) - [GET /checkout-forms/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/checkout-forms/getcheckoutform.md): Retrieves a checkout form with a specified ID. ### Upsert a checkout form (deprecated) - [PUT /checkout-forms/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/checkout-forms/putcheckoutform.md): Creates or updates (upserts) a checkout form with a specified ID. ### Delete a checkout form (deprecated) - [DELETE /checkout-forms/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/checkout-forms/deletecheckoutform.md): Deletes a checkout form with a specified ID. ## 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 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. ### Retrieve coupon redemptions - [GET /coupons-redemptions](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/getcouponredemptioncollection.md): Retrieves a list of coupon redemptions. ### Redeem a coupon - [POST /coupons-redemptions](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/postcouponredemption.md): Redeems a coupon. ### Retrieve a coupon redemption - [GET /coupons-redemptions/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/getcouponredemption.md): Retrieves a coupon redemption with a specified ID. ### Cancel a coupon redemption - [POST /coupons-redemptions/{id}/cancel](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/postcouponredemptioncancellation.md): Cancels a coupon redemption with a specified ID. ### Retrieve coupons - [GET /coupons](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/getcouponcollection.md): Retrieves a list of coupons. ### Create a coupon - [POST /coupons](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/postcoupon.md): Creates a coupon. ### Retrieve a coupon - [GET /coupons/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/getcoupon.md): Retrieves a coupon with a specified ID. ### Upsert a coupon - [PUT /coupons/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/putcoupon.md): Creates or updates (upserts) a coupon with a specified coupon ID. ### Specify a coupon expiration time - [POST /coupons/{id}/expiration](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/postcouponexpiration.md): Specifies the expiration time of a coupon with a specified ID. The of a coupon must be greater than its . > This operation cannot be performed on expired coupons. ### Coupon application removed - [POST coupon-application-removed](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/coupon-application-removed.md) ### Coupon applied - [POST coupon-applied](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/coupon-applied.md) ### Coupon expiration modified - [POST coupon-expiration-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/coupon-expiration-modified.md) ### Coupon expired - [POST coupon-expired](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/coupon-expired.md) ### Coupon issued - [POST coupon-issued](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/coupon-issued.md) ### Coupon modified - [POST coupon-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/coupon-modified.md) ### Coupon redeemed - [POST coupon-redeemed](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/coupon-redeemed.md) ### Coupon redemption canceled - [POST coupon-redemption-canceled](https://www.rebilly.com/static/_spec/catalog/all-3.0/coupons/coupon-redemption-canceled.md) ## 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). ### Retrieve credit memos - [GET /credit-memos](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/getcreditmemocollection.md): Retrieves a list of credit memos. ### Create a credit memo - [POST /credit-memos](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/postcreditmemo.md): Creates a credit memo. ### Retrieve a credit memo - [GET /credit-memos/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/getcreditmemo.md): Retrieves a credit memo with a specified ID. ### Upsert a credit memo - [PUT /credit-memos/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/putcreditmemo.md): Creates or updates (upserts) a credit memo with a specified ID. ### Partially update a credit memo - [PATCH /credit-memos/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/patchcreditmemo.md): Partially updates a credit memo with a specified ID. ### Void a credit memo - [POST /credit-memos/{id}/void](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/postcreditmemovoid.md): Voids a credit memo with a specified ID. ### Credit memo applied - [POST credit-memo-applied](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/credit-memo-applied.md) ### Credit memo created - [POST credit-memo-created](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/credit-memo-created.md) ### Credit memo modified - [POST credit-memo-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/credit-memo-modified.md) ### Credit memo partially applied - [POST credit-memo-partially-applied](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos/credit-memo-partially-applied.md) ### Credit memo voided - [POST credit-memo-voided](https://www.rebilly.com/static/_spec/catalog/all-3.0/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. ### Retrieve credit memo timeline messages - [GET /credit-memos/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos-timeline/getcreditmemotimelinecollection.md): Retrieves a list of credit memo timeline messages. ### Create a credit memo timeline message - [POST /credit-memos/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos-timeline/postcreditmemotimeline.md): Creates a credit memo timeline message. ### Retrieve a credit memo timeline message - [GET /credit-memos/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos-timeline/getcreditmemotimeline.md): Retrieves a credit memo timeline message with a specified ID. ### Delete a credit memo timeline message - [DELETE /credit-memos/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/credit-memos-timeline/deletecreditmemotimeline.md): Deletes a credit memo timeline message with a specified ID. ## Custom domains Use custom domains to configure and use your own domain for forms and billing portals, instead of the default Rebilly domain: `portal.secure-payments.app`. For more information, see [Configure a custom domain](https://www.rebilly.com/docs/settings/organizations-and-websites#configure-a-custom-domain). ### Retrieve custom domains - [GET /custom-domains](https://www.rebilly.com/static/_spec/catalog/all-3.0/custom-domains/getcustomdomaincollection.md): Retrieve a list of custom domains. ### Create a custom domain - [POST /custom-domains](https://www.rebilly.com/static/_spec/catalog/all-3.0/custom-domains/postcustomdomain.md): Create a custom domain. ### Retrieve a custom domain - [GET /custom-domains/{domain}](https://www.rebilly.com/static/_spec/catalog/all-3.0/custom-domains/getcustomdomain.md): Retrieve a custom domain with a specified ID. ### Delete a custom domain - [DELETE /custom-domains/{domain}](https://www.rebilly.com/static/_spec/catalog/all-3.0/custom-domains/deletecustomdomain.md): Delete a custom domain with a specified ID. ## 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). ### Retrieve custom fields - [GET /custom-fields/{resource}](https://www.rebilly.com/static/_spec/catalog/all-3.0/custom-fields/getcustomfieldcollection.md): Retrieves the custom fields schema for a specified resource. ### Retrieve a custom field - [GET /custom-fields/{resource}/{name}](https://www.rebilly.com/static/_spec/catalog/all-3.0/custom-fields/getcustomfield.md): Retrieves a specified custom field schema for a specified resource. ### Create or alter a custom field - [PUT /custom-fields/{resource}/{name}](https://www.rebilly.com/static/_spec/catalog/all-3.0/custom-fields/putcustomfield.md): Creates or alters a specified custom field schema for a specified resource. ## Customer authentication Use these operations to validate the identity of users and manage authentication credentials. ### Retrieve authentication options - [GET /authentication-options](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/getauthenticationoption.md): Retrieves customer authentication options. ### Change authentication options - [PUT /authentication-options](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/putauthenticationoption.md): Changes customer authentication options. ### Retrieve authentication tokens - [GET /authentication-tokens](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/getauthenticationtokencollection.md): Retrieves a list of customer authentication tokens. ### Login a customer - [POST /authentication-tokens](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/postauthenticationtoken.md): Logs in a customer. ### Verify an authentication token - [GET /authentication-tokens/{token}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/getauthenticationtokenverification.md): Verifies a customer's authentication token. ### Logout a customer - [DELETE /authentication-tokens/{token}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/deleteauthenticationtoken.md): Logs out a customer. ### Exchange an authentication token - [POST /authentication-tokens/{token}/exchange](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/postauthenticationtokenexchange.md): Exchanges an authentication token for a JWT. By default, this operation invalidates the exchanged authentication token. ### Retrieve credentials - [GET /credentials](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/getcredentialcollection.md): Retrieves a list of authentication credentials. ### Create a credential - [POST /credentials](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/postcredential.md): Creates an authentication credential. ### Retrieve a credential - [GET /credentials/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/getcredential.md): Retrieves a credential with a specified ID. ### Upsert a credential - [PUT /credentials/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/putcredential.md): Creates or updates (upserts) an authentication credential with a specified ID. ### Delete a credential - [DELETE /credentials/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/deletecredential.md): Deletes an authentication credential with a specified ID. ### Retrieve tokens - [GET /password-tokens](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/getpasswordtokencollection.md): Retrieves a list of reset password tokens. ### Create a reset password token - [POST /password-tokens](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/postpasswordtoken.md): Creates a reset password token. ### Retrieve a reset password token - [GET /password-tokens/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/getpasswordtoken.md): Retrieves a reset password token with a specified ID. ### Delete a reset password token - [DELETE /password-tokens/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customer-authentication/deletepasswordtoken.md): Deletes a reset password token with a specified ID. ## 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). ### Retrieve customers - [GET /customers](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/getcustomercollection.md): Retrieves a list of customers. ### Create a customer - [POST /customers](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 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. ### Retrieve a customer - [GET /customers/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/getcustomer.md): Retrieves a customer with a specified ID. ### Upsert a customer - [PUT /customers/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 prevent duplicate customers. For more information, see Prevent duplicate customers. ### Merge and delete a customer - [DELETE /customers/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/deletecustomer.md): Merges one duplicate customer to another target customer and deletes the former. ### Retrieve a customer's lead source - [GET /customers/{id}/lead-source](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 attribution. ### Create a customer's lead source - [PUT /customers/{id}/lead-source](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 attribution. ### Delete a customer's lead source - [DELETE /customers/{id}/lead-source](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/deletecustomerleadsource.md): Deletes lead source data for a customer with a specified ID. ### Retrieve a customer's lifetime summary metrics - [GET /experimental/customers/{customerId}/summary-metrics](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/getcustomersummarymetricreport.md): Retrieves lifetime summary metrics for a customer with a specified ID. ### Retrieve a customer's EDD score - [GET /customers/{id}/edd-score](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/getcustomereddscore.md): Retrieves an EDD score for a customer with a specified ID. ### Retrieve customer EDD search results - [GET /customers/{id}/edd-search-results](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/getcustomereddsearchresultcollection.md): Retrieve EDD search results for a customer with a specified ID. ### Retrieve a customer's EDD search result - [GET /customers/{id}/edd-search-results/{searchResultId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/getcustomereddsearchresult.md): Retrieves an EDD search result for a customer with a specified ID. ### Customer created - [POST customer-created](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/customer-created.md) ### Customer merged - [POST customer-merged](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/customer-merged.md) ### Customer one-time-password requested - [POST customer-one-time-password-requested](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/customer-one-time-password-requested.md) ### Customer updated - [POST customer-updated](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/customer-updated.md) ### Experian check performed - [POST experian-check-performed](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers/experian-check-performed.md) ## Customers timeline Use customer timelines to maintain an audit trail of changes and activity for each customer. ### Retrieve customer timeline custom event types - [GET /customer-timeline-custom-events](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers-timeline/getcustomertimelinecustomeventtypecollection.md): Retrieves a list of customer timeline custom event types. ### Create customer timeline custom event type - [POST /customer-timeline-custom-events](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers-timeline/postcustomertimelinecustomeventtype.md): Creates a customer timeline custom event type. ### Retrieve customer timeline custom event type - [GET /customer-timeline-custom-events/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers-timeline/getcustomertimelinecustomeventtype.md): Retrieves a customer timeline custom event type with a specified ID. ### Retrieve customer timeline messages - [GET /customers/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers-timeline/getcustomertimelinecollection.md): Retrieves customer timeline messages. ### Create a customer timeline comment - [POST /customers/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers-timeline/postcustomertimeline.md): Creates a customer timeline comment or custom defined event. ### Retrieve a customer timeline message - [GET /customers/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers-timeline/getcustomertimeline.md): Retrieves a customer message with a specified ID. ### Delete a customer timeline message - [DELETE /customers/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers-timeline/deletecustomertimeline.md): Deletes a customer timeline message with a specified ID. ### Retrieve EDD timeline messages - [GET /customers/{id}/edd-timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers-timeline/getcustomereddtimelinecollection.md): Retrieves a list of EDD timeline messages. ### Retrieve an EDD timeline message - [GET /customers/{id}/edd-timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/customers-timeline/getcustomereddtimeline.md): Retrieves an EDD message with a specified ID. ## Data exports Use data export operations to manage the export of resource data, such as: transactions, customers, subscriptions, invoices, invoice item data, or revenue audit. Common data export use cases are: accounting, data analysis, reporting, or importing into other databases. For detailed information on Rebilly resources, see [Resources](https://www.rebilly.com/docs/dev-docs/concepts/#resources). For information on how manage reconciliation, see [Transaction reconciliation](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation). ### Request the data export of a resource - [POST /experimental/data-exports](https://www.rebilly.com/static/_spec/catalog/all-3.0/data-exports/postdataexport.md): Requests the export of a specific data resource. ### Retrieve data export requests - [GET /experimental/data-exports](https://www.rebilly.com/static/_spec/catalog/all-3.0/data-exports/getdataexportcollection.md): Retrieves a list of data export requests. ### Retrieve a data export request - [GET /experimental/data-exports/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/data-exports/getdataexport.md): Retrieves a data export request. ### Modify a data export - [PUT /experimental/data-exports/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/data-exports/putdataexport.md): Modifies a pending data export. ### Delete a data export - [DELETE /experimental/data-exports/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/data-exports/deletedataexport.md): Deletes a data export. ### Data export completed - [POST data-export-completed](https://www.rebilly.com/static/_spec/catalog/all-3.0/data-exports/data-export-completed.md) ## Deposits Create and manage deposit requests and manage strategies that determine the deposit amounts to display on the page. Rebilly hosted deposit form provides a secure and compliant way to deposit funds. Deposit forms are customizable, and use fully responsive design, built-in error messaging and validation. > **Important:** These operations are experimental and may change. ### Create a deposit request - [POST /deposit-requests](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/postdepositrequest.md): Creates a deposit request. To complete the deposit, the customer is redirected to the deposit link. After the deposit, the customer is redirected to the . Corresponding transaction webhooks are sent to webhooks subscribers. ### Retrieve deposit requests - [GET /deposit-requests](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/getdepositrequestcollection.md): Retrieves a list of deposit requests. ### Retrieve a deposit request - [GET /deposit-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/getdepositrequest.md): Retrieves a deposit request with a specified ID. ### Create a deposit amount strategy - [POST /deposit-strategies](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/postdepositstrategy.md): Creates a deposit amount strategy. Use deposit amount strategies to determine the amounts presented to customers in deposit forms, based on currency, customer segmentation (tags), or prior deposit behavior. Selection of deposit amount strategy: - If more than one deposit amount strategy applies to a deposit request, the deposit amount strategy with the greater value is applied. - If the property is specified when a deposit request is created, the specified deposit amount strategy is applied. All other deposit amount strategies are ignored. Default behavior: - If the property is not specified when a deposit request is created, amount restrictions are determined from the chosen deposit amount strategy. - If the property is not specified when a deposit request is created, amounts are determined from the chosen deposit amount strategy. ### Retrieve deposit amount strategies - [GET /deposit-strategies](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/getdepositstrategycollection.md): Retrieves a list of deposit amount strategies. ### Retrieve a deposit amount strategy - [GET /deposit-strategies/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/getdepositstrategy.md): Retrieves a deposit amount strategy with a specified ID. ### Upsert a deposit amount strategy - [PUT /deposit-strategies/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/putdepositstrategy.md): Creates or updates (upserts) a deposit amount strategy with a specified ID. Use deposit amount strategies to determine the amounts presented to customers in deposit forms, based on currency, customer segmentation (tags), or prior deposit behavior. When more than one deposit amount strategy applies to a deposit request, the deposit amount strategy with the greater value is applied. ### Delete a deposit amount strategy - [DELETE /deposit-strategies/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/deletedepositstrategy.md): Deletes a deposit amount strategy with a specified ID. ### Create a custom deposit property set - [POST /deposit-custom-property-sets](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/postdepositcustompropertyset.md): Creates a custom deposit property set. A custom property set is a JSON-schema to extend the request form with extra form fields. The collected information is stored at the deposit request. ### Retrieve custom deposit properties sets - [GET /deposit-custom-property-sets](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/getdepositcustompropertysetcollection.md): Retrieves a list of custom deposit property sets. ### Retrieve a custom deposit property set - [GET /deposit-custom-property-sets/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/getdepositcustompropertyset.md): Retrieves a custom deposit property set with a specified ID. ### Upsert a custom deposit property set - [PUT /deposit-custom-property-sets/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/putdepositcustompropertyset.md): Creates or updates (upserts) a custom deposit property set with a specified ID. ### Delete a custom deposit property set - [DELETE /deposit-custom-property-sets/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/deposits/deletedepositcustompropertyset.md): Deletes a custom deposit property set with a specified ID. ## 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. ### Retrieve disputes - [GET /disputes](https://www.rebilly.com/static/_spec/catalog/all-3.0/disputes/getdisputecollection.md): Retrieves a list of all disputes. ### Create a dispute - [POST /disputes](https://www.rebilly.com/static/_spec/catalog/all-3.0/disputes/postdispute.md): Creates a new dispute. ### Retrieve a dispute - [GET /disputes/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/disputes/getdispute.md): Retrieves a dispute with a specified ID. ### Upsert a dispute - [PUT /disputes/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/disputes/putdispute.md): Creates or updates (upserts) a dispute with a specified ID. ### Dispute created - [POST dispute-created](https://www.rebilly.com/static/_spec/catalog/all-3.0/disputes/dispute-created.md) ### Dispute modified - [POST dispute-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/disputes/dispute-modified.md) ## Email delivery settings Use email delivery settings to configure from which email address notifications and broadcast message are sent. In Rebilly, this email address is referred to as a "From address". Supported email service providers are: SMTP, Mailgun, SendGrid, AWS SES, Postmark, and Rebilly. ### Verify an email delivery setting - [PUT /email-delivery-setting-verifications/{token}](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-delivery-settings/putemaildeliverysettingsverification.md): Verifies an email delivery setting. ### Retrieve email delivery settings - [GET /email-delivery-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-delivery-settings/getemaildeliverysettingcollection.md): Retrieves email delivery settings. ### Create an email delivery setting - [POST /email-delivery-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-delivery-settings/postemaildeliverysetting.md): Creates an email delivery setting. Email delivery settings are used together with email messages, or templates, to send emails. ### Retrieve an email delivery setting - [GET /email-delivery-settings/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-delivery-settings/getemaildeliverysetting.md): Retrieves an email delivery setting with a specified ID. ### Delete an email delivery setting - [DELETE /email-delivery-settings/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-delivery-settings/deleteemaildeliverysetting.md): Deletes an email delivery setting with a specified ID. ### Update an email delivery setting - [PATCH /email-delivery-settings/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-delivery-settings/patchemaildeliverysetting.md): Updates an email delivery setting with a specified ID. ### Resend email delivery setting verification email - [POST /email-delivery-settings/{id}/resend-email-verification](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-delivery-settings/postresendemaildeliverysettingverification.md): Resends a verification email for an email delivery setting with a specified ID. ## Email messages Use email messages to email customers directly. ### Retrieve email messages - [GET /email-messages](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-messages/getemailmessagecollection.md): Retrieves a list of email messages. ### Create an email message - [POST /email-messages](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-messages/postemailmessage.md): Creates an email message. ### Retrieve an email message - [GET /email-messages/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-messages/getemailmessage.md): Retrieves an email message with a specified ID. ### Delete an email message - [DELETE /email-messages/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-messages/deleteemailmessage.md): Deletes an email message with a specified ID. ### Send an email message - [PATCH /email-messages/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-messages/patchemailmessage.md): Sends an email message. ## Email notifications Use email notifications to keep customers informed on events, and to inform them of events that may require action on their end. Email notifications are targeted email messages that can be plain text or HTML. Email notifications can also be used to notify teammates about new customers, blocklist matches, risk score changes, and more. For more information, see [Email notifications](https://www.rebilly.com/docs/automations/email-notifications/). ### Retrieve email notification events - [GET /email-notifications](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-notifications/getemailnotificationcollection.md): Retrieves a list email notification events. ### Retrieve email notification attributions - [GET /send-through-attribution/{eventType}](https://www.rebilly.com/static/_spec/catalog/all-3.0/email-notifications/getsendthroughattributioncollection.md): Retrieves a list of email notifications, that have been sent through attribution, for a specified event type. ## External identifiers Use external identifier operations to associate entities such as customers, invoices, transactions, journal accounts, journal entries, and more with external services. To use external identifiers, you must use an active service credential. ### Retrieve external identifiers - [GET /external-identifiers](https://www.rebilly.com/static/_spec/catalog/all-3.0/external-identifiers/getexternalidentifiercollection.md): Retrieves a list of external identifiers. ### Retrieve an external identifier - [GET /{resource}/{resourceId}/external-identifiers/{service}](https://www.rebilly.com/static/_spec/catalog/all-3.0/external-identifiers/getexternalidentifier.md): Retrieves an external identifier with a specified resource, resource ID and, service name. ### Sync an external identifier - [POST /{resource}/{resourceId}/external-identifiers/{service}](https://www.rebilly.com/static/_spec/catalog/all-3.0/external-identifiers/postexternalidentifier.md): Synchronizes an external identifier with a specified resource, resource ID, and service name. ### Upsert an external identifier - [PUT /{resource}/{resourceId}/external-identifiers/{service}](https://www.rebilly.com/static/_spec/catalog/all-3.0/external-identifiers/putexternalidentifier.md): Creates or updates an external identifier with a specified resource, resource ID, and service name. ### Delete an external identifier - [DELETE /{resource}/{resourceId}/external-identifiers/{service}](https://www.rebilly.com/static/_spec/catalog/all-3.0/external-identifiers/deleteexternalidentifier.md): Deletes an external identifier with a specified resource, resource ID, and service name. ### Retrieve external service settings - [GET /external-services-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/external-identifiers/getexternalservicesettings.md): Retrieves external service settings. ### Update external service settings - [PUT /external-services-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/external-identifiers/putexternalservicesettings.md): Updates the external service settings. ## Fees Use fees to reconcile transactions with applicable fees and discount rates. Fees are not applied directly to transaction amounts, they do not modify the transaction amount. Fees help to describe each part of the transaction amount. > **Important:** These operations are experimental and may change. ### Retrieve fee entries - [GET /fees](https://www.rebilly.com/static/_spec/catalog/all-3.0/fees/getfeecollection.md): Retrieves a list of fee entries. > This operation is experimental and may not be backward compatible. ### Create a fee entry - [POST /fees](https://www.rebilly.com/static/_spec/catalog/all-3.0/fees/postfee.md): Creates a fee entry. > This operation is experimental and may not be backward compatible. ### Retrieve a fee entry - [GET /fees/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/fees/getfee.md): Retrieves a fee entry. > This operation is experimental and may not be backward compatible. ### Upsert a fee entry - [PUT /fees/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/fees/putfee.md): Creates or updates (upserts) a fee entry. > This operation is experimental and may not be backward compatible. ### Patch a fee entry - [PATCH /fees/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/fees/patchfee.md): Patches a fee entry. > This operation is experimental and may not be backward compatible. ### Delete a fee entry - [DELETE /fees/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/fees/deletefee.md): Deletes a fee entry. > This operation is experimental and may not be backward compatible. ## 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. ### Retrieve attachments - [GET /attachments](https://www.rebilly.com/static/_spec/catalog/all-3.0/files/getattachmentcollection.md): Retrieves a list of attachments. You may sort attachments by: , , , , , , and . ### Create an attachment - [POST /attachments](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 specific entities. ### Retrieve an attachment - [GET /attachments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/files/getattachment.md): Retrieves an attachment with a specified ID. ### Update an attachment - [PUT /attachments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/files/putattachment.md): Updates an attachment with a specified ID. ### Delete an attachment - [DELETE /attachments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/files/deleteattachment.md): Deletes an attachment with a specified ID. ### Retrieve files - [GET /files](https://www.rebilly.com/static/_spec/catalog/all-3.0/files/getfilecollection.md): Retrieves a list of files. ### Create a file - [POST /files](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 request: In this request, the file body is sent as the request body, with the appropriate . No additional properties can be set with the request data. Permitted file types: , , , and . 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. ### Retrieve a file record - [GET /files/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/files/getfile.md): Retrieves a file with a specified ID. ### Update a file - [PUT /files/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/files/putfile.md): Updates a file with a specified ID. > Files can only be uploaded by POST request. For more information, see the Create a file operation. ### Delete a file - [DELETE /files/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/files/deletefile.md): Deletes a file with a specified ID. ### Download a file - [GET /files/{id}/download](https://www.rebilly.com/static/_spec/catalog/all-3.0/files/getfiledownload.md): Downloads a file with a specified ID. ## Gateway accounts Use these operations to manage payment gateway accounts. A payment gateway is a service which enables merchants to receive payments from their customers to their merchant account. A merchant account is a bank account that enables businesses to receive payments. Use payment gateway accounts to connect payment requests to third party networks and platforms. ### Retrieve gateway accounts - [GET /gateway-accounts](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/getgatewayaccountcollection.md): Retrieves a list of gateway accounts. ### Create a gateway account - [POST /gateway-accounts](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/postgatewayaccount.md): Creates a gateway account. ### Retrieves a gateway account - [GET /gateway-accounts/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/getgatewayaccount.md): Retrieves a gateway account with a specified ID. ### Upsert a gateway account - [PUT /gateway-accounts/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/putgatewayaccount.md): Creates or updates (upserts) a gateway account with a specified ID. ### Update a gateway account - [PATCH /gateway-accounts/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/patchgatewayaccount.md): Updates a gateway account with a specified ID. ### Delete a gateway account - [DELETE /gateway-accounts/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/deletegatewayaccount.md): Deletes a gateway account with a specified ID. ### Close a gateway account - [POST /gateway-accounts/{id}/close](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/postgatewayaccountclosure.md): Closes a gateway account with a specified ID. This process is also known as archiving. When a gateway account is closed, the gateway cannot process transactions and the attribute is set to . > Closing a gateway account cannot be undone. Do so with caution. ### Disable a gateway account - [POST /gateway-accounts/{id}/disable](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/postgatewayaccountdisablement.md): Disables a gateway account with a specified ID. When a gateway account is disabled, the gateway cannot process transactions and the attribute is set to . ### List gateway account downtime schedules - [GET /gateway-accounts/{id}/downtime-schedules](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/getgatewayaccountdowntimeschedulecollection.md): Retrieves a list of downtime schedules for a gateway account with a specified ID. ### Create a gateway account downtime schedule - [POST /gateway-accounts/{id}/downtime-schedules](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/postgatewayaccountdowntimeschedule.md): Creates a downtime schedule for a gateway account with a specified ID. ### Retrieve a gateway account downtime schedule - [GET /gateway-accounts/{id}/downtime-schedules/{downtimeId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/getgatewayaccountdowntimeschedule.md): Retrieves a gateway account downtime schedule with a specified ID. ### Update a gateway account downtime schedule - [PUT /gateway-accounts/{id}/downtime-schedules/{downtimeId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/putgatewayaccountdowntimeschedule.md): Updates a gateway account downtime schedule with a specified ID. ### Delete a gateway account downtime schedule - [DELETE /gateway-accounts/{id}/downtime-schedules/{downtimeId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/deletegatewayaccountdowntimeschedule.md): Deletes a gateway account downtime schedule with a specified ID. ### Enable a gateway account - [POST /gateway-accounts/{id}/enable](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/postgatewayaccountenablement.md): Enables a gateway account with a specified ID. When a gateway account is enabled, the gateway can process transactions and the attribute is set to . ### Retrieve gateway account limits - [GET /gateway-accounts/{id}/limits](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/getgatewayaccountlimitcollection.md): Retrieves a list of limits for a gateway account with a specified ID. ### Retrieve a gateway account limit - [GET /gateway-accounts/{id}/limits/{limitId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/getgatewayaccountlimit.md): Retrieves a gateway account limit with a specified ID. ### Update a gateway account limit - [PUT /gateway-accounts/{id}/limits/{limitId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/putgatewayaccountlimit.md): Updates a gateway account limit with a specified ID. ### Delete a gateway account limit - [DELETE /gateway-accounts/{id}/limits/{limitId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/deletegatewayaccountlimit.md): Deletes a gateway account limit with a specified ID. ### Verify gateway account credentials - [POST /gateway-accounts/{id}/check-credentials](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/postgatewayaccountcheckcredentials.md): Verifies that supplied credentials are valid for a specified gateway account ID. ### Retrieve financial settings of a gateway account - [GET /gateway-accounts/{id}/financial-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/getgatewayaccountfinancialsettings.md): Retrieves the financial settings of a gateway account with a specified ID. > This operation is experimental and may not be backward compatible. ### Set financial settings - [PUT /gateway-accounts/{id}/financial-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/putgatewayaccountfinancialsettings.md): Sets financial settings for a gateway account with a specified ID. > This operation is experimental and may not be backward compatible. ### Register a domain for Apple Pay - [POST /digital-wallets/onboarding/apple-pay](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/postdigitalwalletonboardingapplepay.md): Registers a domain for Apple Pay. Use this operation to register the domain with Apple Pay, or to check if it is already registered. When the domain is registered, you can use Apple Pay with your embedded integrations. For more information, see Set up Apple Pay. ### Gateway account downtime ended - [POST gateway-account-downtime-ended](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/gateway-account-downtime-ended.md) ### Gateway account downtime started - [POST gateway-account-downtime-started](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/gateway-account-downtime-started.md) ### Gateway account limit reached - [POST gateway-account-limit-reached](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts/gateway-account-limit-reached.md) ## Gateway accounts timeline Use gateway account timelines to maintain an audit trail of changes and activity for each gateway account. ### Retrieve gateway account timeline messages - [GET /gateway-accounts/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts-timeline/getgatewayaccounttimelinecollection.md): Retrieves a list of timeline messages associated with a specified gateway account ID. ### Create a gateway account timeline comment - [POST /gateway-accounts/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts-timeline/postgatewayaccounttimeline.md): Creates a timeline comment on gateway account with a specified ID. ### Retrieve a gateway timeline message - [GET /gateway-accounts/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts-timeline/getgatewayaccounttimeline.md): Retrieves a gateway timeline message with a specified ID. ### Delete a gateway timeline message - [DELETE /gateway-accounts/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/gateway-accounts-timeline/deletegatewayaccounttimeline.md): Deletes a gateway timeline message with a specified ID. ## Histograms Use histograms operations to generate transaction histogram reports with cohorts and periods. For information on the invoice resource, see [Resources](https://www.rebilly.com/docs/dev-docs/concepts/#resources). ### Retrieve transaction histogram report data - [GET /experimental/histograms/transactions](https://www.rebilly.com/static/_spec/catalog/all-3.0/histograms/gethistogramtransactionreport.md): Retrieves transaction histogram report data. ## Integrations Use these operations to manage third-party apps that are integrated to your Rebilly account. For more information on third-party apps, and how to integrate them, see [App store](https://www.rebilly.com/docs/app-store/app-store/). ### Retrieve integrations - [GET /integrations](https://www.rebilly.com/static/_spec/catalog/all-3.0/integrations/getintegrationcollection.md): Retrieves a list of integrations. ### Retrieve an integration for specific label - [GET /integrations/{label}](https://www.rebilly.com/static/_spec/catalog/all-3.0/integrations/getintegration.md): Retrieves an integration with a specified label. ## 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. ### Retrieve invoices - [GET /invoices](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/getinvoicecollection.md): Retrieves a list of invoices. ### Create an invoice - [POST /invoices](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/postinvoice.md): Creates an invoice. ### Retrieve an invoice - [GET /invoices/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/getinvoice.md): Retrieves an invoice with a specified ID. ### Upsert an invoice - [PUT /invoices/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/putinvoice.md): Creates or updates (upserts) an invoice with a specified ID. ### Retrieve invoice items - [GET /invoices/{id}/items](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/getinvoiceitemcollection.md): Retrieves invoice items with a specified invoice ID. ### Create an invoice item - [POST /invoices/{id}/items](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/postinvoiceitem.md): Creates an invoice item. ### Retrieve an invoice item - [GET /invoices/{id}/items/{itemId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/getinvoiceitem.md): Retrieves an invoice item. ### Update an invoice item - [PUT /invoices/{id}/items/{itemId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/putinvoiceitem.md): Updates an invoice item. ### Delete an invoice item - [DELETE /invoices/{id}/items/{itemId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/deleteinvoiceitem.md): Deletes an invoice item. ### Issue an invoice - [POST /invoices/{id}/issue](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/postinvoiceissuance.md): Issues an invoice with a specified ID. The invoice must be in status. ### Abandon an invoice - [POST /invoices/{id}/abandon](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/postinvoiceabandonment.md): Abandons an invoice with a specified ID. ### Void an invoice - [POST /invoices/{id}/void](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/postinvoicevoid.md): Voids an invoice with a specified ID. ### Recalculate an invoice - [POST /invoices/{id}/recalculate](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 invoice is issued. ### Reissue an invoice - [POST /invoices/{id}/reissue](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/postinvoicereissuance.md): Reissues an invoice with a specified ID. The status of the invoice must be , , or . ### Retrieve transaction amounts allocations - [GET /invoices/{id}/transaction-allocations](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/getinvoicetransactionallocationcollection.md): Retrieves amounts from a transaction that are allocated as invoice payments. ### Apply a transaction to an invoice - [POST /invoices/{id}/transaction](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/postinvoicetransaction.md): Applies a transaction to an invoice. The invoice status must be , and the transaction must have a non-zero unused amount. ### Invoice tax calculation failed - [POST invoice-tax-calculation-failed](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-tax-calculation-failed.md) ### Invoice abandoned - [POST invoice-abandoned](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-abandoned.md) ### Invoice created - [POST invoice-created](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-created.md) ### Invoice issued - [POST invoice-issued](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-issued.md) ### Invoice modified - [POST invoice-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-modified.md) ### Invoice paid - [POST invoice-paid](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-paid.md) ### Invoice partially paid - [POST invoice-partially-paid](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-partially-paid.md) ### Invoice refunded - [POST invoice-refunded](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-refunded.md) ### Invoice partially refunded - [POST invoice-partially-refunded](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-partially-refunded.md) ### Invoice past due - [POST invoice-past-due](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-past-due.md) ### Invoice past due reminder - [POST invoice-past-due-reminder](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-past-due-reminder.md) ### Invoice reissued - [POST invoice-reissued](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-reissued.md) ### Invoice voided - [POST invoice-voided](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/invoice-voided.md) ### Renewal invoice payment canceled - [POST renewal-invoice-payment-canceled](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/renewal-invoice-payment-canceled.md) ### Renewal invoice payment declined - [POST renewal-invoice-payment-declined](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices/renewal-invoice-payment-declined.md) ## Invoices timeline Use invoice timelines to maintain an audit trail of changes and activity for each invoice. ### Retrieve invoice timeline messages - [GET /invoices/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices-timeline/getinvoicetimelinecollection.md): Retrieves a list of invoice timeline messages. ### Create an invoice timeline comment - [POST /invoices/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices-timeline/postinvoicetimeline.md): Creates an invoice timeline comment. ### Retrieve an invoice timeline message - [GET /invoices/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices-timeline/getinvoicetimeline.md): Retrieves an invoice timeline message with a specified ID. ### Delete an invoice timeline message - [DELETE /invoices/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/invoices-timeline/deleteinvoicetimeline.md): Deletes an invoice timeline message with a specified ID. ## Journal Use journal accounts, entries and records to track and recognize revenue. ### Retrieve journal accounts - [GET /journal-accounts](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/getjournalaccountcollection.md): Retrieves a list of journal accounts. ### Create a journal account - [POST /journal-accounts](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/postjournalaccount.md): Creates a journal account. ### Retrieve journal account - [GET /journal-accounts/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/getjournalaccount.md): Retrieves a journal account with a specified ID. ### Upsert a journal account - [PUT /journal-accounts/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/putjournalaccount.md): Creates or updates (upsert) a journal account. ### Retrieve journal entries - [GET /journal-entries](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/getjournalentrycollection.md): Retrieves a list of journal entries. ### Create a journal entry - [POST /journal-entries](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/postjournalentry.md): Creates a journal entry. ### Retrieve journal entry - [GET /journal-entries/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/getjournalentry.md): Retrieves a journal entry with a specified ID. ### Upsert a journal entry - [PUT /journal-entries/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/putjournalentry.md): Creates or updates (upsert) a journal entry. ### Retrieve journal records - [GET /journal-records](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/getjournalrecordcollection.md): Retrieves a list of journal records. ### Create a journal record - [POST /journal-records](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/postjournalrecord.md): Creates a journal record. ### Retrieve journal record - [GET /journal-records/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/getjournalrecord.md): Retrieves a journal record with a specified ID. ### Upsert a journal record - [PUT /journal-records/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/putjournalrecord.md): Creates or updates (upsert) a journal record. ### Delete a journal record - [DELETE /journal-records/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/journal/deletejournalrecord.md): Deletes a journal record. ## 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 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. ### Create a KYC request - [POST /kyc-requests](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/postkycrequest.md): Creates a KYC request. The customer is redirected to the link. After the customer completes the KYC process, they are redirected back to the 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 request is successful, it returns a value of or . The corresponding and documents are not requested. ### Retrieve KYC requests - [GET /kyc-requests](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/getkycrequestcollection.md): Retrieves a list of KYC requests. ### Retrieve a KYC request - [GET /kyc-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/getkycrequest.md): Retrieves a KYC request with a specified ID. ### Update a KYC request - [PATCH /kyc-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/patchkycrequest.md): Updates a KYC request with a specified ID. ### Delete the KYC request - [DELETE /kyc-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/deletekycrequest.md): Deletes a KYC request with a specified ID. ### Retrieve KYC documents - [GET /kyc-documents](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/getkycdocumentcollection.md): Retrieves a list of KYC documents. ### Create a KYC document - [POST /kyc-documents](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/postkycdocument.md): Creates a KYC document. ### Retrieve a KYC document - [GET /kyc-documents/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/getkycdocument.md): Retrieves a KYC document with a specified ID. ### Upsert a KYC document - [PUT /kyc-documents/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/putkycdocument.md): Creates or updates (upserts) a KYC document with a specified ID. ### Accept a KYC document - [POST /kyc-documents/{id}/acceptance](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/postkycdocumentacceptance.md): Accepts a KYC document and changes the documents to . The review time and reviewer information is also updated. > Use this operation for manual overrides. ### Update KYC document matches - [POST /kyc-documents/{id}/matches](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/postkycdocumentmatches.md): Updates the document matches of a KYC document with a specified ID. > Use this operation for manual overrides. ### Reject a KYC document - [POST /kyc-documents/{id}/rejection](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/postkycdocumentrejection.md): Rejects a KYC document and changes the to . The review time and reviewer information is also updated. > Use this operation for manual overrides. ### Review a KYC document - [POST /kyc-documents/{id}/review](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/postkycdocumentreview.md): Updates the and of a KYC document with a specified ID. ### Start review of a KYC document - [POST /kyc-documents/{id}/start-review](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/postkycdocumentstartreview.md): Starts the review process of a KYC document with a specified ID. This operation also sets the KYC document to the current date-time, and updates the review information. ### Stop review of a KYC document - [POST /kyc-documents/{id}/stop-review](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/postkycdocumentstopreview.md): Stops the review of a KYC document with a specified ID. This operation also sets the KYC document 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. ### Retrieve KYC settings - [GET /kyc-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/getkycsettings.md): Retrieves KYC settings. ### Update KYC settings - [PUT /kyc-settings](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/putkycsettings.md): Updates KYC settings. ### KYC document accepted - [POST kyc-document-accepted](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/kyc-document-accepted.md) ### KYC document modified - [POST kyc-document-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/kyc-document-modified.md) ### KYC document rejected - [POST kyc-document-rejected](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/kyc-document-rejected.md) ### KYC document reviewed - [POST kyc-document-reviewed](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/kyc-document-reviewed.md) ### KYC document archived - [POST kyc-document-archived](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/kyc-document-archived.md) ### KYC request attempted - [POST kyc-request-attempted](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/kyc-request-attempted.md) ### KYC request failed - [POST kyc-request-failed](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/kyc-request-failed.md) ### KYC request fulfilled - [POST kyc-request-fulfilled](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/kyc-request-fulfilled.md) ### KYC request partially fulfilled - [POST kyc-request-partially-fulfilled](https://www.rebilly.com/static/_spec/catalog/all-3.0/kyc-documents/kyc-request-partially-fulfilled.md) ## Lists Use lists to create and maintain sets of values that may be referenced in rule conditions. Commonly used lists contain values related to conditions that target specific properties such as: customers, transactions, or BINs. You may grant list edit permissions to members of your team without enabling them to edit rules. This may be useful if your workflow involves frequent updates to value sets that are used in rule or bind conditions. List order may not be maintained and duplicates may be removed. For more information, see [Value lists](https://www.rebilly.com/docs/automations/create-a-value-list/#value-lists). ### Retrieve lists - [GET /lists](https://www.rebilly.com/static/_spec/catalog/all-3.0/lists/getlistcollection.md): Retrieves a collection of lists. This operation returns the most recent version of each list. ### Create a list - [POST /lists](https://www.rebilly.com/static/_spec/catalog/all-3.0/lists/postlist.md): Creates a new list. ### Retrieve latest list version - [GET /lists/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/lists/getlist.md): Retrieves the latest version of a list with a specified ID. ### Upsert a list - [PUT /lists/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/lists/putlist.md): Creates or updates (upserts) a list with a specified ID. ### Delete a list - [DELETE /lists/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/lists/deletelist.md): Deletes a list with a specified ID. ### Retrieve specific list version - [GET /lists/{id}/{version}](https://www.rebilly.com/static/_spec/catalog/all-3.0/lists/getlistversion.md): Retrieves a specified version of a list with a specified ID. ## Memberships Use these operations to manage user membership within your organizations. Membership describes the relationship between organizations and users. For example, one user could be a member of more than one organization. ### Retrieve memberships - [GET /memberships](https://www.rebilly.com/static/_spec/catalog/all-3.0/memberships/getmembershipcollection.md): Retrieves a list of organization memberships. ### Retrieve a membership - [GET /memberships/{organizationId}/{userId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/memberships/getmembership.md): Retrieves a membership with a specified organization ID and user ID. ### Upsert membership - [PUT /memberships/{organizationId}/{userId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/memberships/putmembership.md): Creates or updates (upserts) a membership with a specified organization ID and user ID. Only the organization owner can grant organization membership to new users. ### Delete a membership - [DELETE /memberships/{organizationId}/{userId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/memberships/deletemembership.md): Deletes a membership with a specified organization ID and user ID. ## Metadata Use these operations to retrieve and manage metadata. Metadata is structured information on other data. ### Retrieve payment method metadata - [GET /payment-methods](https://www.rebilly.com/static/_spec/catalog/all-3.0/metadata/getpaymentmethodcollection.md): Retrieves payment method metadata. ### Retrieve metadata of a payment method - [GET /payment-methods/{apiName}](https://www.rebilly.com/static/_spec/catalog/all-3.0/metadata/getpaymentmethod.md): Retrieves the metadata of a payment method with a specified . ### Retrieve payment gateway metadata - [GET /payment-gateways-metadata](https://www.rebilly.com/static/_spec/catalog/all-3.0/metadata/getpaymentgatewaymetadatacollection.md): Retrieves payment gateway metadata. ### Retrieve payment gateway metadata - [GET /payment-gateways-metadata/{apiName}](https://www.rebilly.com/static/_spec/catalog/all-3.0/metadata/getpaymentgatewaymetadata.md): Retrieves metadata for a gateway with a specified ID. ## Orders Use these operations to manage customer orders. 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). ### Retrieve orders - [GET /subscriptions](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscriptioncollection.md): Retrieves a list of orders. ### Create an order - [POST /subscriptions](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/postsubscription.md): Creates an order. To create or update an order with a specified ID, use the Upsert an order operation. ### Retrieve an order - [GET /subscriptions/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscription.md): Retrieves an order with a specified ID. ### Upsert an order - [PUT /subscriptions/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/putsubscription.md): Creates or updates (upserts) an order with a specified ID. ### Delete a pending order - [DELETE /subscriptions/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/deletesubscription.md): Deletes a pending order with a specified ID. ### Void a subscription order - [POST /subscriptions/{id}/void](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/postsubscriptionvoid.md): Voids a pending order with a specified ID. ### Change subscription order items - [POST /subscriptions/{id}/change-items](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/postsubscriptionitemschange.md): Changes subscription order items or quantities, and designates if or when pro-rata credits should be given. ### Update a subscription order item - [PATCH /subscriptions/{id}/items/{itemId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/patchsubscriptionitem.md): Updates a subscription order item. This is an experimental endpoint, can be changed or removed in the future. ### Issue an interim invoice - [POST /subscriptions/{id}/interim-invoice](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/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. - Issues the invoice. - Optionally, applies payment to the invoice if a is supplied. ### Retrieve subscription order pauses - [GET /subscription-pauses](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscriptionpausecollection.md): Retrieves a list of subscription order pauses. ### Pause a subscription order - [POST /subscription-pauses](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/postsubscriptionpause.md): Pauses a subscription order with a specified ID. ### Retrieve a subscription order pause - [GET /subscription-pauses/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscriptionpause.md): Retrieves a subscription order pause with a specified ID. ### Update a subscription order pause - [PUT /subscription-pauses/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/putsubscriptionpause.md): Updates a subscription order pause. ### Delete a subscription order pause - [DELETE /subscription-pauses/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/deletesubscriptionpause.md): Deletes a subscription order pause with a specified ID. If the specified pause is , it is . If the specified pause is , it is . ### Retrieve subscription order cancellations - [GET /subscription-cancellations](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscriptioncancellationcollection.md): Retrieves a list of subscription order cancellations. ### Cancel a subscription order - [POST /subscription-cancellations](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/postsubscriptioncancellation.md): Cancels a subscription order. ### Retrieve a subscription order cancellation - [GET /subscription-cancellations/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscriptioncancellation.md): Retrieves a subscription order cancellation with a specified ID. ### Upsert a subscription order cancellation - [PUT /subscription-cancellations/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/putsubscriptioncancellation.md): Creates or updates (upserts) a subscription order cancellation with a specified ID. ### Update a subscription order cancellation - [PATCH /subscription-cancellations/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/patchsubscriptioncancellation.md): Updates a subscription order cancellation with a specified ID. Use this operation to update a cancellation reason and description. ### Delete a subscription order cancellation - [DELETE /subscription-cancellations/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/deletesubscriptioncancellation.md): Deletes a subscription order cancellation with a specified ID. > Only subscription order cancellations with a of can be deleted. ### Retrieve subscription order reactivations - [GET /subscription-reactivations](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscriptionreactivationcollection.md): Retrieves a list of subscription order reactivations. ### Reactivate a subscription order - [POST /subscription-reactivations](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/postsubscriptionreactivation.md): Reactivates a subscription order with a specified ID. ### Retrieve a subscription order reactivation - [GET /subscription-reactivations/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscriptionreactivation.md): Retrieves a subscription order reactivation with a specified ID. ### Retrieve an upcoming subscription order invoice - [GET /subscriptions/{id}/upcoming-invoice](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/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 information, see Invoices. ### Issue an upcoming invoice for early pay - [POST /subscriptions/{id}/upcoming-invoice/issue](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/postsubscriptionupcominginvoiceissuance.md): Issues an upcoming invoice, for a subscription order with a specified ID, for early pay. ### Preview an order - [POST /previews/orders](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/postprevieworder.md): Previews an order. Use this operation to preview a draft order before making an order. ### Retrieve subscription order summary metrics - [GET /experimental/subscriptions/{subscriptionId}/summary-metrics](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscriptionsummarymetricreport.md): Retrieves summary metrics for a subscription order with a specified ID. ### Retrieve upcoming subscription order invoice (deprecated) - [GET /subscriptions/{id}/upcoming-invoices](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/getsubscriptionupcominginvoicecollection.md): Retrieves an upcoming invoice for a specified subscription order. This endpoint is deprecated. Use Retrieve an upcoming invoice instead. ### Issue a specific upcoming invoice for early pay (deprecated) - [POST /subscriptions/{id}/upcoming-invoices/{invoiceId}/issue](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/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 instead. ### Hard usage limit reached - [POST hard-usage-limit-reached](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/hard-usage-limit-reached.md) ### Order abandoned - [POST order-abandoned](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/order-abandoned.md) ### Order completed - [POST order-completed](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/order-completed.md) ### Renewal invoice issued - [POST renewal-invoice-issued](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/renewal-invoice-issued.md) ### Soft usage limit reached - [POST soft-usage-limit-reached](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/soft-usage-limit-reached.md) ### Subscription order activated - [POST subscription-activated](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-activated.md) ### Subscription order canceled - [POST subscription-canceled](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-canceled.md) ### Subscription order churned - [POST subscription-churned](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-churned.md) ### Subscription order downgraded - [POST subscription-downgraded](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-downgraded.md) ### Subscription items changed - [POST subscription-items-changed](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-items-changed.md) ### Order modified - [POST subscription-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-modified.md) ### Subscription quantity filled limit reached - [POST subscription-quantity-filled-limit-reached](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-quantity-filled-limit-reached.md) ### Subscription order reactivated - [POST subscription-reactivated](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-reactivated.md) ### Subscription renewal reminder - [POST subscription-renewal-reminder](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-renewal-reminder.md) ### Subscription order renewed - [POST subscription-renewed](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-renewed.md) ### Subscription order trial converted - [POST subscription-trial-converted](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-trial-converted.md) ### Subscription order trial end reminder - [POST subscription-trial-end-reminder](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-trial-end-reminder.md) ### Subscription order trial ended - [POST subscription-trial-ended](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-trial-ended.md) ### Subscription order upgraded - [POST subscription-upgraded](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-upgraded.md) ### Subscription order paused - [POST subscription-paused](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-paused.md) ### Subscription order pause created - [POST subscription-pause-created](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-pause-created.md) ### Subscription order pause modified - [POST subscription-pause-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-pause-modified.md) ### Subscription order pause revoked - [POST subscription-pause-revoked](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-pause-revoked.md) ### Subscription order resumed - [POST subscription-resumed](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/subscription-resumed.md) ### Trial usage limit reached - [POST trial-usage-limit-reached](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/trial-usage-limit-reached.md) ### Order delinquency time reached - [POST order-delinquency-reached](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders/order-delinquency-reached.md) ## Orders timeline Use order timelines to maintain an audit trail of changes and activity for each order. ### Retrieve order timeline messages - [GET /subscriptions/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders-timeline/getsubscriptiontimelinecollection.md): Retrieves a list of order timeline messages. ### Create an order timeline comment - [POST /subscriptions/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders-timeline/postsubscriptiontimeline.md): Creates an order timeline comment. ### Retrieve an order timeline message - [GET /subscriptions/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders-timeline/getsubscriptiontimeline.md): Retrieves a order message with a specified ID. ### Delete an order timeline message - [DELETE /subscriptions/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/orders-timeline/deletesubscriptiontimeline.md): Deletes an order timeline message with a specified ID. ## Organization data exports Use organization data exports to export your organization data which you may want to do as a business continuity practice. These may also be used to to export data if you decide to migrate to a different payments solution. ### Retrieve organization data exports - [GET /organization-exports](https://www.rebilly.com/static/_spec/catalog/all-3.0/organization-data-exports/getorganizationexportcollection.md): Retrieves a list of organization data exports. ### Request an organization data export - [POST /organization-exports](https://www.rebilly.com/static/_spec/catalog/all-3.0/organization-data-exports/postorganizationexport.md): Request an organization data export. The data export is asynchronously processed. ### Retrieve an organization data export request - [GET /organization-exports/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/organization-data-exports/getorganizationexport.md): Retrieve an organization data export request with a specified organization ID. ## Organizations Use these operations to manage your organizations in Rebilly. An organization is an entity that represents you, or your company, as a merchant. You can have multiple organizations. For more information, see [My organizations and websites](https://www.rebilly.com/docs/settings/organizations-and-websites/). Note: No data, including organizations, is shared between the live and sandbox environments. ### Retrieve organizations - [GET /organizations](https://www.rebilly.com/static/_spec/catalog/all-3.0/organizations/getorganizationcollection.md): Retrieves a list of organizations. ### Create an organization - [POST /organizations](https://www.rebilly.com/static/_spec/catalog/all-3.0/organizations/postorganization.md): Creates an organization. ### Retrieve an organization - [GET /organizations/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/organizations/getorganization.md): Retrieves an organization with a specified ID. ### Update an organization - [PATCH /organizations/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/organizations/patchorganization.md): Updates an organization with a specified organization ID. ## 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). ### Retrieve payment instruments - [GET /payment-instruments](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/getpaymentinstrumentcollection.md): Retrieves a list of payment instruments. ### Create a payment instrument - [POST /payment-instruments](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/postpaymentinstrument.md): Creates a payment instrument. If the payment card, bank account, or alternative payment instrument already exists it is updated. ### Retrieve a payment instrument - [GET /payment-instruments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/getpaymentinstrument.md): Retrieves a payment instrument with a specified ID. ### Update payment instrument - [PATCH /payment-instruments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/patchpaymentinstrument.md): Updates the values of a payment instrument with a specified ID. ### Deactivate a payment instrument - [POST /payment-instruments/{id}/deactivation](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/postpaymentinstrumentdeactivation.md): Deactivates a payment instrument with a specified ID. ### Verify name on a payment instrument - [POST /payment-instruments/{id}/name-inquiry](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 requests through Worldpay. ### Retrieve payment card issuing bank names - [GET /payment-cards-bank-names](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/getpaymentcardbanknamecollection.md): Retrieves a list of payment card issuing bank names. ### Payment card created - [POST payment-card-created](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/payment-card-created.md) ### Payment card expiration reminder - [POST payment-card-expiration-reminder](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/payment-card-expiration-reminder.md) ### Payment card expired - [POST payment-card-expired](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/payment-card-expired.md) ### Payment instrument modified - [POST payment-instrument-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-instruments/payment-instrument-modified.md) ## 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. ### Create a payment token - [POST /tokens](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-tokens/posttoken.md): Creates a payment token which can be exchanged into a payment instrument. 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. ### Retrieve tokens - [GET /tokens](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-tokens/gettokencollection.md): Retrieve a list of tokens. ### Retrieve a token - [GET /tokens/{token}](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-tokens/gettoken.md): Retrieves a token with a specified ID. ### Validate a digital wallet session - [POST /digital-wallets/validation](https://www.rebilly.com/static/_spec/catalog/all-3.0/payment-tokens/postdigitalwalletvalidation.md): Validates a digital wallet session. We recommend using FramePay to validate a digital wallet session. ## 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/). ### Retrieve plans - [GET /plans](https://www.rebilly.com/static/_spec/catalog/all-3.0/plans/getplancollection.md): Retrieves a list of plans. ### Create a plan - [POST /plans](https://www.rebilly.com/static/_spec/catalog/all-3.0/plans/postplan.md): Creates a plan. ### Retrieve a plan - [GET /plans/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/plans/getplan.md): Retrieves a plan with a specified ID. ### Upsert a plan - [PUT /plans/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/plans/putplan.md): Creates or updates (upserts) a plan with a specified ID. ### Delete a plan - [DELETE /plans/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/plans/deleteplan.md): Deletes a plan with a specified ID. ## 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). ### Retrieve products - [GET /products](https://www.rebilly.com/static/_spec/catalog/all-3.0/products/getproductcollection.md): Retrieves a list of products. ### Create a product - [POST /products](https://www.rebilly.com/static/_spec/catalog/all-3.0/products/postproduct.md): Creates a product. ### Retrieve a product - [GET /products/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/products/getproduct.md): Retrieves a product with a specified ID. ### Upsert a product - [PUT /products/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/products/putproduct.md): Creates or updates (upserts) a product with a specified ID. ### Delete a product - [DELETE /products/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/products/deleteproduct.md): Deletes a product with a specified ID. ## Profile Use these operations to manage user profiles. A profile represents the person that is signed in to Rebilly. ### Start permissions emulation - [POST /permissions-emulation](https://www.rebilly.com/static/_spec/catalog/all-3.0/profile/postpermissionsemulation.md): Starts permissions emulation. Emulation during emulation is not supported. If request sent during an ongoing emulation then 403 is sent in response. Escalation is not supported. ### Stop permissions emulation - [DELETE /permissions-emulation](https://www.rebilly.com/static/_spec/catalog/all-3.0/profile/deletepermissionsemulation.md): Stops permissions emulation. Session permissions are restored to the state before emulation began. If emulations have not started then is sent in response. ### Retrieve user's own profile - [GET /profile](https://www.rebilly.com/static/_spec/catalog/all-3.0/profile/getprofile.md): Retrieves the user's own profile as requested by the user. ### Update a user profile - [PUT /profile](https://www.rebilly.com/static/_spec/catalog/all-3.0/profile/putprofile.md): Updates user profile. ### Retrieve user MFA status - [GET /profile/mfa](https://www.rebilly.com/static/_spec/catalog/all-3.0/profile/getprofilemfa.md): Retrieves Multi-Factor Authentication (MFA) status of a user. ### Update user MFA - [POST /profile/mfa](https://www.rebilly.com/static/_spec/catalog/all-3.0/profile/postprofilemfa.md): Updates the Multi-Factor Authentication (MFA) information of a user. The generated link with an link must be followed to verify the existing MFA or enroll new MFA. ### Delete user MFA - [DELETE /profile/mfa](https://www.rebilly.com/static/_spec/catalog/all-3.0/profile/deleteprofilemfa.md): Deletes the Multi-Factor Authentication (MFA) information of a user. To complete this operation, the value must be no more than 10 minutes before this request. ## 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. ### Retrieve quotes - [GET /quotes](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/getquotecollection.md): Retrieves a list of quotes. ### Create a quote - [POST /quotes](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/postquote.md): Creates a quote. ### Retrieve a quote - [GET /quotes/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/getquote.md): Retrieves a quote with a specified ID. ### Upsert a quote - [PUT /quotes/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/putquote.md): Creates or updates a quote with a specified ID. The update operation can only be used for quotes with a of . ### Partially update a quote - [PATCH /quotes/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/patchquote.md): Partially updates a quote with a specified ID. The update operation can only be used for quotes with a of . ### Accept a quote - [POST /quotes/{id}/accept](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/postquoteacceptance.md): Accepts an issued quote with a specified ID. ### Cancel a quote - [POST /quotes/{id}/cancel](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/postquotecancellation.md): Cancels a draft or issued quote with a specified ID. ### Issue a quote - [POST /quotes/{id}/issue](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/postquoteissuance.md): Issues a draft quote with a specified ID. ### Recall a quote - [POST /quotes/{id}/recall](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/postquoterecall.md): Recalls an issued quote with a specified ID so that it can be edited. Recalled quotes are assigned the of . ### Reject a quote - [POST /quotes/{id}/reject](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/postquoterejection.md): Rejects an issued quote with specified ID. ### Quote accepted - [POST quote-accepted](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/quote-accepted.md) ### Quote canceled - [POST quote-canceled](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/quote-canceled.md) ### Quote created - [POST quote-created](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/quote-created.md) ### Quote expired - [POST quote-expired](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/quote-expired.md) ### Quote issued - [POST quote-issued](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/quote-issued.md) ### Quote recalled - [POST quote-recalled](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/quote-recalled.md) ### Quote rejected - [POST quote-rejected](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/quote-rejected.md) ### Quote updated - [POST quote-updated](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes/quote-updated.md) ## Quotes timeline Use quote timelines to maintain an audit trail of changes and activity for each quote. ### Retrieve quote timeline messages - [GET /quotes/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes-timeline/getquotetimelinecollection.md): Retrieves quote timeline messages. ### Create a quote timeline comment - [POST /quotes/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes-timeline/postquotetimeline.md): Creates a quote timeline comment or custom defined event. ### Retrieve a quote timeline message - [GET /quotes/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes-timeline/getquotetimeline.md): Retrieves a quote timeline message with a specified ID. ### Delete a quote timeline message - [DELETE /quotes/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/quotes-timeline/deletequotetimeline.md): Deletes a quote timeline message with a specified ID. ## Reports Use reports operations to retrieve summary information about your customers, subscriptions, transactions, and more. ### Retrieve an API log summary report - [GET /experimental/reports/api-log-summary](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getapilogsummaryreport.md): Retrieves an API log summary report. ### Retrieve a cumulative subscriptions report - [GET /experimental/reports/cumulative-subscriptions](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getcumulativesubscriptionreport.md): Retrieves a cumulative subscriptions report. ### Retrieve dashboard data - [GET /experimental/reports/dashboard](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getdashboardreport.md): Retrieves dashboard data. ### Retrieve a DCC markup report - [GET /experimental/reports/dcc-markup](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getdccmarkupreport.md): Retrieves a Dynamic Currency Conversion (DCC) markup report. ### Retrieve a declined transactions report - [GET /experimental/reports/declined-transactions](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getdeclinedtransactionsreport.md): Retrieves a report on declined transactions. ### Retrieve a disputes report - [GET /experimental/reports/disputes](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getdisputereport.md): Retrieves a disputes report. ### Retrieve events triggered summary report - [GET /experimental/reports/events-triggered](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/gettriggeredeventreport.md): Retrieves an events triggered summary report. ### Retrieve a rules matched summary report - [GET /experimental/reports/events-triggered/{eventType}/rules](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/gettriggeredeventrulereport.md): Retrieves a rules matched summary report that is based on triggered events. ### Retrieve a future renewals report - [GET /experimental/reports/future-renewals](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getfuturerenewalreport.md): Retrieves a future renewals report. ### Retrieve a journal report - [GET /experimental/reports/journal](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getjournalreport.md): Retrieves a journal report which displays revenue for each account. A revenue journal is a detailed revenue waterfall report that describes revenue recognized in a specific month, aggregated by product ID, product accounting code, or plan ID. It contains information on booked revenue, recognized revenue for each aggregation field in the booked period, and the remaining revenue up to the selected month. ### Retrieve a journal summary report - [GET /experimental/reports/journal-summary](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getjournalsummaryreport.md): Retrieves a journal summary report which displays recognized revenue by journal account name for each calendar month. It includes both monthly and annual journal entries, and sums the revenue per account for each month. - Rows: Represent individual journal account names, corresponding to product or revenue categories. - Columns: Represent monthly periods, showing the total recognized revenue in each journal account for that month. ### Retrieve a KYC acceptance summary report - [GET /experimental/reports/kyc-acceptance-summary](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getkycacceptancesummaryreport.md): Retrieves a Know Your Customer (KYC) acceptance summary report. ### Retrieve a KYC rejections report - [GET /experimental/reports/kyc-rejection-summary](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getkycrejectionsummaryreport.md): Retrieves a Know Your Customer (KYC) rejection report by type and by rejection reasons. ### Retrieve a KYC requests report - [GET /experimental/reports/kyc-request-summary](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getkycrequestsummaryreport.md): Retrieves a Know Your Customer (KYC) request report by type and by rejection reasons. ### Retrieve a MRR report - [GET /experimental/reports/monthly-recurring-revenue](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getmonthlyrecurringrevenuereport.md): Retrieves a Monthly Recurring Revenue (MRR) report. Use MRR reports to view information on the predictable recurring revenue for your business over a period of months. ### Retrieve an ARR report - [GET /experimental/reports/annual-recurring-revenue](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getannualrecurringrevenuereport.md): Retrieves an Annual Recurring Revenue (ARR) report. Use ARR reports to view information on the predictable recurring revenue for your business over a period of months. ### Retrieve a renewal sales report - [GET /experimental/reports/renewal-sales](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getrenewalsalereport.md): Retrieves a renewal sales report. ### Retrieve a retention percentage report - [GET /experimental/reports/retention-percentage](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getretentionpercentagereport.md): Retrieves a retention percentage report. ### Retrieve a retention value report - [GET /experimental/reports/retention-value](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getretentionvaluereport.md): Retrieves the total number of new customers for each aggregation period and the corresponding value for each customer over time. ### Retrieve a revenue waterfall report - [GET /experimental/reports/revenue-waterfall](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getrevenuewaterfallreport.md): Retrieves a revenue waterfall report. Use revenue waterfall reports to view revenue that is recognized up to a given month. Revenue waterfall reports contain information on booked revenue, recognized revenue for the months in the issued period, and the remaining revenue up to the specified month. ### Retrieve a revenue audit report - [GET /experimental/reports/revenue-audit](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getrevenueauditreport.md): Retrieves a revenue audit report which contains detailed journal entries. A revenue audit report is a combination of a granular revenue waterfall and a journal report, which describes revenue per account. Use and parameters to restrict the output. ### Retrieve a subscription cancellation report - [GET /experimental/reports/subscription-cancellation](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getsubscriptioncancellationreport.md): Retrieves a subscription cancellation report. ### Retrieve a subscription renewal report - [GET /experimental/reports/subscription-renewal](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/getsubscriptionrenewalreport.md): Retrieves a subscription renewal report. ### Retrieve a tax report - [GET /experimental/reports/tax](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/gettaxreport.md): Retrieves a tax report, which displays taxes collected on sales. Tax amounts are aggregated by state and municipality. ### Retrieve a time series transactions report - [GET /experimental/reports/time-series-transaction](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/gettimeseriestransactionreport.md): Retrieves a transactions report that is aggregated by time periods. ### Retrieve a transaction time dispute report - [GET /experimental/reports/transactions-time-dispute](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/gettransactiontimedisputereport.md): Retrieves a dispute delay in days report. This report describes the amount of time between a transaction and a dispute. ### Retrieve a transactions report - [GET /experimental/reports/transactions](https://www.rebilly.com/static/_spec/catalog/all-3.0/reports/gettransactionreport.md): Retrieves a transactions report. ## Reset password Use these operations to manage password resets. When a password reset is requested, an email with a token is sent. In the email the user must press a reset link, and then create a new password. ### Request a password reset - [POST /forgot-password](https://www.rebilly.com/static/_spec/catalog/all-3.0/reset-password/postforgotpasswordrequest.md): Sends an email with a link containing a token to reset a user password. ## Risk score Use risk score operations to configure blocklists based on transaction risk factors. ### Retrieve risk score rules - [GET /risk-score-rules](https://www.rebilly.com/static/_spec/catalog/all-3.0/risk-score/getriskscorerules.md): Retrieves risk score rules. ### Modify risk score rules - [PUT /risk-score-rules](https://www.rebilly.com/static/_spec/catalog/all-3.0/risk-score/putriskscorerules.md): Modifies risk score rules. ### Retrieve risk score blocklist rules - [GET /risk-score-rules/blocklists](https://www.rebilly.com/static/_spec/catalog/all-3.0/risk-score/getriskscoreblocklistrules.md): Retrieves risk score blocklist rules. ### Modify risk score blocklist rules - [PUT /risk-score-rules/blocklists](https://www.rebilly.com/static/_spec/catalog/all-3.0/risk-score/putriskscoreblocklistrules.md): Modifies risk score blocklist rules. ## Roles Use these operations to manage user roles within your team or organization. Roles are an implementation of the general hierarchical (Role Based Access Control) RBAC. A senior role inherits all of its juniors' Access Control Lists (ACLs) and its own ACL. Junior roles are not influenced by the senior role. ### Retrieve roles - [GET /roles](https://www.rebilly.com/static/_spec/catalog/all-3.0/roles/getrolecollection.md): Retrieves a list of user roles. ### Create a role - [POST /roles](https://www.rebilly.com/static/_spec/catalog/all-3.0/roles/postrole.md): Creates a role that is used to assign permissions to users. ### Retrieve a role - [GET /roles/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/roles/getrole.md): Retrieves a user role with a specified ID. ### Create a role with ID - [PUT /roles/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/roles/putrole.md): Creates a user role with a specified ID. ### Delete a role - [DELETE /roles/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/roles/deleterole.md): Deletes a user role with a specified ID. ## Rules Use rules to automate. In the Rebilly rules engine, an action is an operation that executes when an event occurs. Action and event conditions are defined in rules. Rulesets are collections of rules that are associated with an event. The order in which the rules are placed within a ruleset specifies the execution order. For a list of events and related actions, see [Events](https://www.rebilly.com/docs/automations/event-types/). ### Retrieve system events - [GET /events](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/geteventcollection.md): Retrieves a list of system events. ### Retrieve event information - [GET /events/{eventType}](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/getevent.md): Retrieves event information for a specified event type. ### Retrieve event rules - [GET /events/{eventType}/rules](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/geteventrulecollection.md): Retrieves rules associated with a specified event type. ### Update event rules - [PUT /events/{eventType}/rules](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/puteventrule.md): Updates rules associated with a specified event type. ### Retrieve change history of a ruleset - [GET /events/{eventType}/rules/history](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/geteventrulehistorycollection.md): Retrieves the change history of a ruleset with a specified event type. All ruleset changes are recorded in the change history. ### Retrieve change history record of a ruleset - [GET /events/{eventType}/rules/history/{version}](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/geteventrulehistory.md): Retrieves the change history record of a ruleset with a specified event type. A history record is created each time rules are changed. ### Retrieve a version of a ruleset - [GET /events/{eventType}/rules/versions/{version}](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/geteventruleversion.md): Retrieves a version of a ruleset with a specified event type. A new version is created each time you change a rule. ### Retrieve draft rulesets - [GET /events/{eventType}/rules/drafts](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/geteventrulesetdraftcollection.md): Retrieves a list of draft rulesets for a specified event type. The result are sorted by updated time in descending order. ### Create a draft ruleset - [POST /events/{eventType}/rules/drafts](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/posteventrulesetdraft.md): Creates a draft ruleset for a specified event type. ### Retrieve a draft ruleset - [GET /events/{eventType}/rules/drafts/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/geteventrulesetdraft.md): Retrieves a draft ruleset with a specified ID and event type. ### Delete a draft ruleset - [DELETE /events/{eventType}/rules/drafts/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/deleteeventrulesetdraft.md): Deletes a draft ruleset with a specified ID and event type. ### Update a draft ruleset - [PUT /events/{eventType}/rules/drafts/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/puteventrulesetdraft.md): Updates a draft ruleset for a specified event type. ### Send a test email - [POST /previews/rule-actions/send-email](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules/postpreviewruleactionemailsending.md): Sends a test email. ## Rules timeline Use rule timelines to maintain an audit trail of changes and activity for each rule. ### Retrieve rules engine timeline messages - [GET /events/{eventType}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules-timeline/getrulesetcollection.md): Retrieves a list of rules engine timeline messages. ### Create a rules engine timeline comment - [POST /events/{eventType}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules-timeline/postrulesettimeline.md): Creates a rules engine timeline comment. ### Retrieve a rules engine timeline message - [GET /events/{eventType}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules-timeline/getrulesettimeline.md): Retrieves a rules engine timeline message with a specified ID. ### Delete a rules engine timeline message - [DELETE /events/{eventType}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/rules-timeline/deleterulesettimeline.md): Deletes a rules engine timeline message with a specified ID. ## Search Use search operations to search data on customers, invoices, orders, transactions and more. ### Search merchant data - [GET /search](https://www.rebilly.com/static/_spec/catalog/all-3.0/search/getsearch.md): Searches merchant data to return resources such as customers, invoices, orders, transactions. ## Segments Use these operations to manage UI segments. A segment is a filtered view of a data set that can be shared with other users. For example, you may create a transactions segment that displays specific columns that are filtered and sorted based on certain criteria, and share it with others in your organization. ### Retrieve a user's segments - [GET /grid-segments](https://www.rebilly.com/static/_spec/catalog/all-3.0/segments/getgridsegmentcollection.md): Retrieves a user's UI segments. ### Create a new UI segment - [POST /grid-segments](https://www.rebilly.com/static/_spec/catalog/all-3.0/segments/postgridsegment.md): Creates a new UI segment for yourself or to share with others within your organization. ### Retrieve a segment - [GET /grid-segments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/segments/getgridsegment.md): Retrieves a UI segment with a specified ID. ### Update a segment - [PUT /grid-segments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/segments/putgridsegment.md): Updates a segment with a specified ID. ### Delete a segment - [DELETE /grid-segments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/segments/deletegridsegment.md): Deletes a segment with a specified ID. This operation also removes all shares of the deleted segment. > This operation can only be performed by the segment owner. ## Service credentials Use these operations to get, create, and manage credentials for third-party services. ### Retrieve service credentials - [GET /service-credentials/{type}](https://www.rebilly.com/static/_spec/catalog/all-3.0/service-credentials/getservicecredentialcollection.md): Retrieves a list of service credentials. ### Create a service credential - [POST /service-credentials/{type}](https://www.rebilly.com/static/_spec/catalog/all-3.0/service-credentials/postservicecredential.md): Creates a service credential. ### Retrieve a service credential - [GET /service-credentials/{type}/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/service-credentials/getservicecredential.md): Retrieves a service credential with a specified ID. ### Update a service credential - [PATCH /service-credentials/{type}/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/service-credentials/patchservicecredential.md): Updates a service credential with a specified ID. ### List credential root items - [GET /service-credentials/{type}/{id}/items](https://www.rebilly.com/static/_spec/catalog/all-3.0/service-credentials/getservicecredentialitemcollection.md): Retrieves a list of root items for a specified credential. ## Shipping rates Use these operations to manage shipping rates. A shipping rate contains a filter and a pricing for a specific shipping destination. ### Retrieve shipping rates - [GET /shipping-rates](https://www.rebilly.com/static/_spec/catalog/all-3.0/shipping-rates/getshippingratecollection.md): Retrieves a list of shipping rates. ### Create a shipping rate - [POST /shipping-rates](https://www.rebilly.com/static/_spec/catalog/all-3.0/shipping-rates/postshippingrate.md): Creates a shipping rate. ### Retrieve a shipping rate - [GET /shipping-rates/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/shipping-rates/getshippingrate.md): Retrieves a shipping rate with a specified ID. ### Create a shipping rate with ID - [PUT /shipping-rates/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/shipping-rates/putshippingrate.md): Creates a shipping rate with a specified ID. ### Delete a shipping rate - [DELETE /shipping-rates/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/shipping-rates/deleteshippingrate.md): Deletes a shipping rate with a specified ID. ## Status Use this operation to check the status of the Rebilly API. No authentication is required. ### Retrieve API current status - [GET /status](https://www.rebilly.com/static/_spec/catalog/all-3.0/status/getstatus.md): Retrieve API current status. ## Storefront account Use these operations to manage Storefront accounts. A Storefront account is an account that the customer is subscribed to in order to use the Rebilly product. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve account - [GET /storefront/account](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontgetaccount.md): Retrieve account. ### Update account - [PATCH /storefront/account](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontpatchaccount.md): Register account. ### Request a password reset - [POST /storefront/account/forgot-password](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontpostforgotpassword.md): Sends an email with a link containing a token to reset a user password. ### Change an account password - [PATCH /storefront/account/password](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontpatchaccountpassword.md): Changes an account password. ### Resend email verification - [POST /storefront/account/resend-verification](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontpostaccountresendverification.md): Resends a verification email for an account with a specified username. ### Finish password reset - [POST /storefront/account/reset-password/{token}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontpostresetpassword.md): Resets a user's account password. ### Verify an account email - [POST /storefront/account/verification/{token}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontpostaccountverification.md): Verifies an account email. ### Create a session with username and password - [POST /storefront/login](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontpostlogin.md): Creates a session with a specified username and password. ### Destroys the user's current session - [POST /storefront/logout](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontpostlogout.md): Destroys the user's current session. ### Register account - [POST /storefront/register](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-account/storefrontpostregister.md): Register account. ## Storefront billing portals Use these operations to access Storefront billing portals. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve a billing portal - [GET /storefront/billing-portals/{slug}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-billing-portals/storefrontgetbillingportal.md): Retrieve a billing portal with a specified slug. ## Storefront cashiers Use these operations to access Storefront cashiers. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. > **Important:** These operations are experimental and may change. ### Retrieve a cashier - [GET /storefront/cashiers/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-cashiers/storefrontgetcashier.md): Retrieves a cashier with a specified ID. ## Storefront checkout forms Use these operations to access Storefront checkout forms. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve a checkout form (deprecated) - [GET /storefront/checkout-forms/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-checkout-forms/storefrontgetcheckoutform.md): Retrieves a checkout form with a specified ID. ## Storefront custom fields Use these operations to access Storefront custom fields. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve custom fields - [GET /storefront/custom-fields/{resource}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-custom-fields/storefrontgetcustomfieldcollection.md): Retrieves the custom fields schema for a specified resource. ## Storefront deposits Use these operations to access Storefront deposits. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve a deposit amount strategy - [GET /storefront/deposit-strategies/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-deposits/storefrontgetdepositstrategy.md): Retrieves a deposit amount strategy with a specified ID. ### Retrieve a deposit request - [GET /storefront/deposit-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-deposits/storefrontgetdepositrequest.md): Retrieves a deposit request with a specified ID. ### Create a deposit - [POST /storefront/deposit](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-deposits/storefrontpostdeposit.md): Creates a deposit transaction. ## Storefront invoices Use these operations to access Storefront invoices. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve invoices - [GET /storefront/invoices](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-invoices/storefrontgetinvoicecollection.md): Retrieve a list of invoices. ### Retrieve an invoice - [GET /storefront/invoices/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-invoices/storefrontgetinvoice.md): Retrieves an invoice with a specified ID. ### Update an invoice - [PATCH /storefront/invoices/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-invoices/storefrontpatchinvoice.md): Updates an invoice with a specified ID. ## Storefront KYC documents Use these operations to access Storefront KYC documents. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve KYC documents - [GET /storefront/kyc-documents](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-kyc-documents/storefrontgetkycdocumentcollection.md): Retrieves a list of KYC documents. ### Create a KYC document - [POST /storefront/kyc-documents](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-kyc-documents/storefrontpostkycdocument.md): Creates a KYC document. ### Retrieve a KYC Document - [GET /storefront/kyc-documents/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-kyc-documents/storefrontgetkycdocument.md): Retrieves a KYC document with a specified ID. ### Update a KYC document - [PATCH /storefront/kyc-documents/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-kyc-documents/storefrontpatchkycdocument.md): Updates a KYC document with a specified ID. ### Retrieve a KYC request - [GET /storefront/kyc-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-kyc-documents/storefrontgetkycrequest.md): Retrieves a KYC request with a specified ID. ### Create a KYC liveness session - [POST /storefront/kyc-liveness-sessions](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-kyc-documents/storefrontpostkyclivenesssession.md): Creates a KYC liveness session. ### Retrieve a KYC liveness session - [GET /storefront/kyc-liveness-sessions/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-kyc-documents/storefrontgetkyclivenesssession.md): Retrieves a KYC liveness session with a specified ID. ### Finish KYC liveness session - [POST /storefront/kyc-liveness-sessions/{id}/finish](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-kyc-documents/storefrontpostkyclivenesssessionfinish.md): Attempt to finalize a pending KYC liveness session. ## Storefront orders Use these operations to access Storefront orders. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve an upcoming order invoice - [GET /storefront/orders/{id}/upcoming-invoice](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-orders/storefrontgetorderupcominginvoice.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 Invoices. ### Retrieve orders - [GET /storefront/orders](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-orders/storefrontgetordercollection.md): Retrieve a list of orders. ### Retrieve an order - [GET /storefront/orders/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-orders/storefrontgetorder.md): Retrieve an order with a specified ID. ### Update an order - [PATCH /storefront/orders/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-orders/storefrontpatchorder.md): Updates an order with a specified ID. ### Cancel an order - [POST /storefront/orders/{id}/cancellation](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-orders/storefrontpostordercancellation.md): Cancels an order with a specified ID. ### Pause a subscription order - [POST /storefront/orders/{id}/pause](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-orders/storefrontpostorderpause.md): Pauses an order with a specified ID. ### Change subscription items - [POST /storefront/subscriptions/{id}/change-items](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-orders/storefrontpostsubscriptionitemschange.md): Creates a quote for requested changes to items and quantities. This operation applies the requested changes to the subscription when the quote is accepted. ### Reactivate a subscription - [POST /storefront/subscription-reactivations](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-orders/storefrontpostsubscriptionreactivation.md): Creates a quote for requested reactivation. This operation applies the requested reactivation to the subscription when the quote invoice is paid. ### Create a subscription - [POST /storefront/subscriptions](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-orders/storefrontpostsubscription.md): Creates a subscription order in a billing portal. ## Storefront payment instruments Use these operations to access Storefront payment instruments. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve payment instruments - [GET /storefront/payment-instruments](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontgetpaymentinstrumentcollection.md): Retrieves a list of payment instruments. ### Create a payment instrument - [POST /storefront/payment-instruments](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontpostpaymentinstrument.md): Creates a payment instrument. To use this operation, you must first create a payment token using FramePay, then provide the token ID in this operation. ### Retrieve a payment instrument - [GET /storefront/payment-instruments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontgetpaymentinstrument.md): Retrieves a payment instrument with a specified ID. ### Update payment instrument - [PATCH /storefront/payment-instruments/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontpatchpaymentinstrument.md): Updates the values of a payment instrument with a specified ID. Use the Framepay payment token ID to update values. For more information, see FramePay. ### Deactivate a payment instrument - [POST /storefront/payment-instruments/{id}/deactivation](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontpostpaymentinstrumentdeactivation.md): Deactivates a payment instrument with a specified ID. ### Retrieve a payment instrument setup transaction - [GET /storefront/payment-instruments/{id}/setup](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontgetpaymentinstrumentsetup.md): Retrieves the latest setup transaction for a payment instrument with a specified ID. For more information, see Transactions. ### Create a setup payment instrument transaction - [POST /storefront/payment-instruments/{id}/setup](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-payment-instruments/storefrontpostpaymentinstrumentsetup.md): Creates a setup payment instrument transaction. This operation makes the payment instrument available for further payments. Treat the response as a regular transaction. For example, approval links must be followed until the transaction is completed. ## Storefront plans Use these operations to access Storefront plans. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve a list of plans - [GET /storefront/plans](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-plans/storefrontgetplancollection.md): Retrieves a list of plans. ### Retrieve a plan - [GET /storefront/plans/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-plans/storefrontgetplan.md): Retrieves a plan with a specified ID. ## Storefront products Use these operations to access Storefront products. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve products - [GET /storefront/products](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-products/storefrontgetproductcollection.md): Retrieves a list of products. ### Retrieve a product - [GET /storefront/products/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-products/storefrontgetproduct.md): Retrieves a product with a specified ID. ## Storefront purchases Use these operations to manage Storefront purchases. Purchases are transactions that have been executed related to the purchase of goods or services. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Perform a payment - [POST /storefront/payment](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-purchases/storefrontpostpayment.md): Performs a payment for a transaction or an invoice. If the customer's JSON Web Token (JWT) contains a , or value, these values are used instead of the JWT value. The has a higher priority than the . ### Make a purchase - [POST /storefront/purchase](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-purchases/storefrontpostpurchase.md): Executes a purchase. A purchase can be completed both with and without authentication. Purchases that use a pre-created payment instrument must use authentication. To preview the purchase before completing it, use the Purchase preview operation. ### Preview a purchase - [POST /storefront/preview-purchase](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-purchases/storefrontpostpreviewpurchase.md): Previews a purchase. Use this operation to preview a purchase before completing it. A purchase can be completed both with and without authentication. Purchases that use a pre-created payment instrument must use authentication. > The shipping aspect of this API is experimental and may change to support multiple shipping methods. ### Ready to pay - [POST /storefront/ready-to-pay](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-purchases/storefrontpostreadytopay.md): Retrieves available payment methods for a specific transaction or purchase. The order in which the payment methods are displayed to the customer must be the same as the order in the response. The list of payment methods is generated from available gateway accounts and the last matched action on the 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 event in the rules engine, and include an empty property for the action. For more information, see Update event rules and Gateway accounts. If this operation to pay is used with a transaction-scoped JSON Web Token (JWT), all fields are ignored except . ### Ready to payout - [POST /storefront/ready-to-payout](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-purchases/storefrontpostreadytopayout.md): Retrieves available payment methods for a specific payout amount and currency. The order in which the payment methods are displayed to the customer must be the same as the order in the response. The list of payment methods is generated from available gateway accounts and the last matched action on the event. If no rules match for the specific request, all methods supported by the gateway accounts are sent. To invert this behavior, place all matching rules at the end of the event in the rules engine, and include an empty property for the action. For more information, see Update event rules and Gateway accounts. ## Storefront quotes Use these operations to access Storefront quotes. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve a quote - [GET /storefront/quotes/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-quotes/storefrontgetquote.md): Retrieves a quote with a specified ID. ### Accept a quote - [POST /storefront/quotes/{id}/accept](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-quotes/storefrontpostquoteacceptance.md): Accepts an issued quote with specified ID. ### Reject a quote - [POST /storefront/quotes/{id}/reject](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-quotes/storefrontpostquoterejection.md): Rejects an issued quote with specified ID. ## Storefront transactions Use these operations to access Storefront transactions. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve payout requests - [GET /storefront/payout-requests](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-transactions/storefrontgetpayoutrequestcollection.md): Retrieves a list of payout requests. ### Create a payout request - [POST /storefront/payout-requests](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-transactions/storefrontpostpayoutrequest.md): Creates a payout request. ### Retrieve a payout request - [GET /storefront/payout-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-transactions/storefrontgetpayoutrequest.md): Retrieves a payout request with a specified ID. ### Update a payout request - [PATCH /storefront/payout-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-transactions/storefrontpatchpayoutrequest.md): Update a payout request with a specified ID. ### Retrieve transactions - [GET /storefront/transactions](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-transactions/storefrontgettransactioncollection.md): Retrieve a list of transactions. ### Retrieve a transaction - [GET /storefront/transactions/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-transactions/storefrontgettransaction.md): Retrieves a transaction with a specified ID. ### Finish a transaction KYC verification - [POST /storefront/transactions/{id}/{token}/continue](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-transactions/storefrontpostkycrequestcontinue.md): Process a KYC interrupted transaction with a specified ID. Use this operation to process the transaction after all documents of the KYC request with a specified token have been uploaded. ### Skip a transaction KYC verification - [POST /storefront/transactions/{id}/{token}/bypass](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-transactions/storefrontpostkycrequestbypass.md): Skips an optional KYC request with a specified token, for a transaction with a specified ID. Use this operation to skip a KYC request that has been marked as optional in a transaction flow, so that you can further process the transaction. ## Storefront websites Use these operations to access Storefront websites. Storefront operations interact directly with the customer, and provide the customer with access to their own data. To use Storefront operations, the customer must be issued a JWT with limited permissions. For more information, see [Create a session with username and password](https://www.rebilly.com/catalog/all/storefront-account/storefrontpostlogin) and [Exchange an authentication token](https://www.rebilly.com/catalog/all/customer-authentication/postauthenticationtokenexchange). Storefront operations are intended to be used directly from an untrusted browser. ### Retrieve a website - [GET /storefront/websites/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/storefront-websites/storefrontgetwebsite.md): Retrieves a website with a specified ID. Use this operation to find the website name, logo, or more. ## Tags Use tags to organize and categorize customers or KYC documents based on keywords. ### Retrieve tags - [GET /tags](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/gettagcollection.md): Retrieves a list of tags. ### Create a tag - [POST /tags](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/posttag.md): Creates a tag. ### Retrieve a tag - [GET /tags/{tag}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/gettag.md): Retrieves a tag with a specified name. ### Update a tag - [PATCH /tags/{tag}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/patchtag.md): Updates a tag with a specified name. ### Delete a tag - [DELETE /tags/{tag}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/deletetag.md): Deletes a tag with a specified name. This is an asynchronous operation. ### Tag a list of customers - [POST /tags/{tag}/customers](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/posttagcustomercollection.md): Tags a list of customers. If a customer in the list already has the specified tag applied, the customer is ignored. This is an asynchronous operation. ### Untag a list of customers - [DELETE /tags/{tag}/customers](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/deletetagcustomercollection.md): Untag a list of customers. If a customer in the list does not have the specified tag applied, the customer is ignored. This is an asynchronous operation. ### Tag a customer - [POST /tags/{tag}/customers/{customerId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/posttagcustomer.md): Tags a customer. ### Untag a customer - [DELETE /tags/{tag}/customers/{customerId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/deletetagcustomer.md): Untags a customer. ### Tag a list of KYC documents - [POST /tags/{tag}/kyc-documents](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/posttagkycdocumentcollection.md): Tags a list of KYC documents. If a KYC document in the list already has the specified tag applied, the KYC document is ignored. This is an asynchronous operation. ### Untag a list of KYC documents - [DELETE /tags/{tag}/kyc-documents](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/deletetagkycdocumentcollection.md): Untags a list of KYC documents. If a KYC document in the list does not have the specified tag applied, the KYC document is ignored. This is an asynchronous operation. ### Tag a KYC document - [POST /tags/{tag}/kyc-documents/{kycDocumentId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/posttagkycdocument.md): Tags a KYC document. ### Untag a KYC document - [DELETE /tags/{tag}/kyc-documents/{kycDocumentId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/deletetagkycdocument.md): Untags a KYC document. ### Tag a list of AML checks - [POST /tags/{tag}/aml-checks](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/posttagamlcheckcollection.md): Tags a list of AML checks. If an AML check in the list already has the specified tag applied, the AML check is ignored. This is an asynchronous operation. ### Untag a list of AML checks - [DELETE /tags/{tag}/aml-checks](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/deletetagamlcheckcollection.md): Untags a list of AML checks. If an AML check in the list does not have the specified tag applied, the AML check is ignored. This is an asynchronous operation. ### Tag an AML check - [POST /tags/{tag}/aml-checks/{amlCheckId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/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. ### Untag an AML check - [DELETE /tags/{tag}/aml-checks/{amlCheckId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/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. ### Retrieve tags rules list - [GET /tags-rules](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/gettagrulecollection.md): Retrieves a list of tags rules. ### Create tags rule - [POST /tags-rules](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/posttagrule.md): Creates a tags rule. ### Retrieve a tags rule - [GET /tags-rules/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/gettagrule.md): Retrieves a tags rule with a specified ID. ### Create a tags rule with specified ID - [PUT /tags-rules/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/puttagrule.md): Creates a tags rule with a specified ID. ### Delete tags rule - [DELETE /tags-rules/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tags/deletetagrule.md): Deletes a tags rule with a specified ID. ## Tracking Use tracking when debugging and auditing issues. Tracking is a layer for accessing all activity such as: API requests, subscriptions, webhooks, events, and more. ### Retrieve API tracking logs - [GET /tracking/api](https://www.rebilly.com/static/_spec/catalog/all-3.0/tracking/gettrackingapicollection.md): Retrieves API tracking log records. ### Retrieve an API tracking log - [GET /tracking/api/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tracking/gettrackingapi.md): Retrieves an API tracking log record with a specified ID. ### Retrieve tax service tracking logs - [GET /tracking/taxes](https://www.rebilly.com/static/_spec/catalog/all-3.0/tracking/gettrackingtaxcollection.md): Retrieves a collection of tax service tracking logs. ### Retrieve a tax service tracking log - [GET /tracking/taxes/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tracking/gettrackingtax.md): Retrieves a tax service tracking log with a specified ID. ### Retrieve value list changes - [GET /tracking/lists](https://www.rebilly.com/static/_spec/catalog/all-3.0/tracking/gettrackinglistcollection.md): Retrieves the change history of value lists. ### Retrieve webhook tracking logs - [GET /tracking/webhooks](https://www.rebilly.com/static/_spec/catalog/all-3.0/tracking/gettrackingwebhookcollection.md): Retrieves webhook tracking logs. ### Retrieve a webhook tracking log - [GET /tracking/webhooks/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/tracking/gettrackingwebhook.md): Retrieves a webhook tracking log record with a specified ID. ### Schedule a resend webhook attempt - [POST /tracking/webhooks/{id}/resend](https://www.rebilly.com/static/_spec/catalog/all-3.0/tracking/posttrackingwebhookresendrequest.md): Schedules a resend attempt for a specified webhook tracking ID. Webhooks are processed asynchronously. ## Transactions Use these operations to: - set up payment instruments for payments - authorize and hold funds - capture funds - make payments - make payouts - refund transactions. ### Ready to pay - [POST /ready-to-pay](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 list of payment methods is generated from available gateway accounts and the last matched action on the 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 event in the rules engine, and include an empty property for the action. For more information, see Update event rules and Gateway accounts. ### Create a transaction - [POST /transactions](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/posttransaction.md): Creates a transaction of type , or . Use this operation for the following transactions. #### Real-time decision and response In this transaction, you send a request and inspect the of the response for or . #### 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 value of and a value of . The property of the response has a link for the . Open the in an iframe or in a pop. A pop is a better workflow for mobile devices. ### Retrieve transactions - [GET /transactions](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/gettransactioncollection.md): Retrieves a list of transactions. ### Retrieve a transaction - [GET /transactions/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/gettransaction.md): Retrieves a transaction with a specified ID. ### Update a transaction - [PATCH /transactions/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/patchtransaction.md): Updates the custom fields of a transaction with a specified ID. ### Create a credit transaction - [POST /payouts](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/postpayout.md): Creates a transaction of type . ### Query a transaction - [POST /transactions/{id}/query](https://www.rebilly.com/static/_spec/catalog/all-3.0/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 Update a transaction status. ### Update a transaction status - [POST /transactions/{id}/update](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/posttransactionupdate.md): Updates the status of a transaction with a specified ID to , with a specified and optional currency and amount values. ### Refund a transaction - [POST /transactions/{id}/refund](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/posttransactionrefund.md): Refunds a transaction with a specified ID. The refund is in the same currency as the original transaction. ### Retrieve a list of payout requests - [GET /payout-requests](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/getpayoutrequestcollection.md): Retrieves a list of payout requests. ### Create a payout request - [POST /payout-requests](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/postpayoutrequest.md): Creates a payout request. In the response, the 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 value. > The selected payment gateway must be configured to support payout requests. > For more information, see the readyToPayoutInstruction field. ### Retrieve a payout request - [GET /payout-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/getpayoutrequest.md): Retrieves a payout request with a specified ID. ### Upsert a payout request - [PUT /payout-requests/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/putpayoutrequest.md): Creates or updates (upserts) a payout request with a specified ID. ### Cancel a payout request - [POST /payout-requests/{id}/cancel](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/postpayoutrequestcancellation.md): Cancels a payout request with a specified ID. ### Retrieve associated payment instruments - [GET /payout-requests/{id}/payment-instruments](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/getpayoutrequestpaymentinstruments.md): Retrieves the payment gateway and a list of payment instruments that are associated with a payout request with a specified ID. ### Customer redirected offsite - [POST customer-redirected-offsite](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/customer-redirected-offsite.md) ### Customer returned - [POST customer-returned](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/customer-returned.md) ### Gateway account requested - [POST gateway-account-requested](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/gateway-account-requested.md) ### Offsite payment completed - [POST offsite-payment-completed](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/offsite-payment-completed.md) ### Payout request canceled - [POST payout-request-canceled](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/payout-request-canceled.md) ### Payout request created - [POST payout-request-created](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/payout-request-created.md) ### Payout request modified - [POST payout-request-modified](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/payout-request-modified.md) ### Risk score changed - [POST risk-score-changed](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/risk-score-changed.md) ### Transaction amount discrepancy found - [POST transaction-amount-discrepancy-found](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/transaction-amount-discrepancy-found.md) ### Transaction declined - [POST transaction-declined](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/transaction-declined.md) ### Transaction discrepancy found - [POST transaction-discrepancy-found](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/transaction-discrepancy-found.md) ### Transaction process requested - [POST transaction-process-requested](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/transaction-process-requested.md) ### Transaction processed - [POST transaction-processed](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/transaction-processed.md) ### Transaction timeout resolved - [POST transaction-timeout-resolved](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/transaction-timeout-resolved.md) ### Waiting gateway transaction completed - [POST waiting-gateway-transaction-completed](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/waiting-gateway-transaction-completed.md) ### Autodeposit lookup performed - [POST autodeposit-lookup-performed](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions/autodeposit-lookup-performed.md) ## Transactions timeline Use transaction timelines to maintain an audit trail of changes and activity for each transaction. ### Retrieve transaction timeline messages - [GET /transactions/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions-timeline/gettransactiontimelinecollection.md): Retrieves a list of transaction timeline messages. ### Create a transaction timeline comment - [POST /transactions/{id}/timeline](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions-timeline/posttransactiontimeline.md): Creates a transaction timeline comment. ### Retrieve a transaction Timeline message - [GET /transactions/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions-timeline/gettransactiontimeline.md): Retrieves a timeline message with a specified ID. ### Delete a transaction timeline message - [DELETE /transactions/{id}/timeline/{messageId}](https://www.rebilly.com/static/_spec/catalog/all-3.0/transactions-timeline/deletetransactiontimeline.md): Deletes a transaction timeline message with a specified ID. ## 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](../Plans). ### Retrieve usage records - [GET /usages](https://www.rebilly.com/static/_spec/catalog/all-3.0/usage/getusagecollection.md): Retrieves a list of usage records. ### Create a usage record - [POST /usages](https://www.rebilly.com/static/_spec/catalog/all-3.0/usage/postusage.md): Creates a usage report. ### Retrieve a usage record - [GET /usages/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/usage/getusage.md): Retrieves a usage record with a specified ID. ### Delete a usage record - [DELETE /usages/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/usage/deleteusage.md): Deletes a usage record with a specified ID. ## Users Use these operations to manage users. A user is a person who can login to Rebilly, and take actions based on their granted permissions. ### Retrieve a list of users - [GET /users](https://www.rebilly.com/static/_spec/catalog/all-3.0/users/getusercollection.md): Retrieves a list of users. ### Create a user - [POST /users](https://www.rebilly.com/static/_spec/catalog/all-3.0/users/postuser.md): Creates a user. ### Retrieve a user - [GET /users/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/users/getuser.md): Retrieves a user with a specified ID. ### Upsert a user - [PUT /users/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/users/putuser.md): Creates or updates (upserts) a user with a specified ID. ### Retrieve user MFA status - [GET /users/{id}/mfa](https://www.rebilly.com/static/_spec/catalog/all-3.0/users/getusermfa.md): Retrieves the Multi-Factor Authentication (MFA) status of a user with a specified ID. ## Webhooks Use these operations to manage webhooks. Webhooks notify your systems in real-time when certain events occur. For example, when a new transaction occurs or a new subscription is created. Webhooks enable you to collect information about events. Rebilly can send this information by HTTP POST request to a defined URL of your choice. ### Trigger a test webhook - [POST /previews/webhooks](https://www.rebilly.com/static/_spec/catalog/all-3.0/webhooks/postpreviewwebhook.md): Triggers a test webhook. ### Retrieve webhooks - [GET /webhooks](https://www.rebilly.com/static/_spec/catalog/all-3.0/webhooks/getwebhookcollection.md): Retrieves a list of webhooks. ### Create a webhook - [POST /webhooks](https://www.rebilly.com/static/_spec/catalog/all-3.0/webhooks/postwebhook.md): Creates a webhook. ### Retrieve a webhook - [GET /webhooks/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/webhooks/getwebhook.md): Retrieves a webhook with a specified ID. ### Upsert a webhook - [PUT /webhooks/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/webhooks/putwebhook.md): Creates or updates (upserts) a webhook with a specified ID. ### Delete a webhook - [DELETE /webhooks/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/webhooks/deletewebhook.md): Deletes a webhook with a specified ID. ## Websites Use these operations to manage websites. A website is where your organization obtains a customer. It is also the processor account and billing descriptor used for payment transactions. You can create multiple websites. Websites are related to each invoice and each payment gateway account. This enables you to associate gateway accounts with multiple websites, or make them exclusive to particular websites. For more information, see [My organizations and websites](https://www.rebilly.com/docs/settings/organizations-and-websites/). ### Retrieve websites - [GET /websites](https://www.rebilly.com/static/_spec/catalog/all-3.0/websites/getwebsitecollection.md): Retrieves a list of websites. ### Create a website - [POST /websites](https://www.rebilly.com/static/_spec/catalog/all-3.0/websites/postwebsite.md): Creates a website. ### Retrieve a website - [GET /websites/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/websites/getwebsite.md): Retrieves a website with a specified ID. ### Upsert a website - [PUT /websites/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/websites/putwebsite.md): Creates or updates (upserts) a website with a specified ID. ### Delete a website - [DELETE /websites/{id}](https://www.rebilly.com/static/_spec/catalog/all-3.0/websites/deletewebsite.md): Deletes a website with a specified ID.