# Concepts This section of the docs describes the components of the Rebilly product. In Rebilly, components are called resources. Use this section to understand how Rebilly works and to aid with your integration. This section is for a developer audience. ## Resources The following table describes the entity relationships between each resource in Rebilly. | **Resource** | **Relationship** | **Resource** | | --- | --- | --- | | [Customer](/docs/dev-docs/customers) | 1 to many | [Payment instruments](/docs/dev-docs/payment-instruments) | | [Customer](/docs/dev-docs/customers) | 0 to many | [Transactions](/docs/dev-docs/transactions) | | [Payment instrument](/docs/dev-docs/payment-instruments) | 0 to many | [Transactions](/docs/dev-docs/transactions) | | [Customer](/docs/dev-docs/customers) | 0 to many | [Order](/docs/dev-docs/orders) | | [Order](/docs/dev-docs/orders) | 1 to many | [Invoice](/docs/dev-docs/invoices) | | [Invoice](/docs/dev-docs/invoices) | many to many | [Transactions](/docs/dev-docs/transactions) | | [Customer](/docs/dev-docs/customers) | 0 to many | [Quotes](/docs/dev-docs/quotes) | | [Order](/docs/dev-docs/orders) | 0 to many | [Quotes](/docs/dev-docs/quotes) | | [Credit memo](/docs/dev-docs/credit-memos) | many to many | [Invoice](/docs/dev-docs/invoices) | | [Credit memo](/docs/dev-docs/credit-memos) | many to many | [Transaction](/docs/dev-docs/transactions) | | [Invoices](/docs/dev-docs/invoices) & [orders](/docs/dev-docs/orders) | 1 to many | Products & plans (as "items") | | [Product](/docs/dev-docs/products-and-plans#products) | 1 to many | [Plans](/docs/dev-docs/products-and-plans#plans) | | [Customer](/docs/dev-docs/customers) | 1 to many | [Plans](/docs/dev-docs/products-and-plans#plans) | | [Organization](/docs/dev-docs/organizations-and-websites#organizations) | 1 to many | [Website](/docs/dev-docs/organizations-and-websites#websites) | ## Extend resources Use custom fields to extend a resource scheme to include a custom field. Include the data within your API requests. Rebilly validates, stores, and returns the data when you retrieve the resource. Example: To record a customer's preferred communication channel. ```json { "customFields": { "preferredCommunicationChannel": "email" } } ``` For more information, select from the following: - Use the API to create or manage custom fields — see [Custom fields](/docs/dev-docs/api/custom-fields/). - Use the UI to create a custom field — see [Add a custom field](/docs/settings/custom-fields#create-custom-fields).