openapi: 3.1.0 info: version: latest title: Core APIs contact: name: Rebilly API Support url: https://www.rebilly.com/contact/ email: integrations@rebilly.com license: name: Rebilly url: https://www.rebilly.com/api-license/ termsOfService: https://www.rebilly.com/terms-of-use/ x-logo: url: https://rebilly-core.redoc.ly/rb_apiLogo.svg backgroundColor: '#0044d4' description: > # 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://github.com/Rebilly/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/). security: - SecretApiKey: [] - JWT: [] servers: - url: https://api-sandbox.rebilly.com/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). components: securitySchemes: JWT: description: >- JWT is a short lifetime token that can be assigned a specific expiration time. Usage format: `Bearer `. type: http scheme: bearer bearerFormat: JWT ApplicationJWT: description: >- 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 bearerFormat: JWT PublishableApiKey: description: >- 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). name: Authorization type: apiKey in: header SecretApiKey: description: |- 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. name: REB-APIKEY type: apiKey in: header CustomerJWT: description: >- 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 bearerFormat: JWT parameters: collectionLimit: name: limit in: query description: Limits the number of collection items to be returned. schema: type: integer minimum: 0 maximum: 1000 collectionOffset: name: offset in: query description: >- Specifies the starting point within the collection of items to be returned. schema: type: integer minimum: 0 maximum: 1000 collectionSort: name: sort in: query description: >- Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`. style: form explode: false schema: type: array items: type: string collectionFilter: name: filter in: query description: >- Filters the collection items. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filter with collections](https://www.rebilly.com/docs/dev-docs/search-filters). schema: type: string collectionQuery: name: q in: query description: Use this field to perform a partial search of text fields. schema: type: string resourceId: name: id in: path description: ID of the resource. required: true schema: type: string maxLength: 50 pattern: ^[@~\-\.\w]+$ collectionExpand: name: expand in: query description: >- Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Expand to include embedded objects](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources). schema: type: string collectionFields: name: fields in: query description: >- Limits the returned fields to the specified list, each field separated by a comma. The ID value is always returned. schema: type: string customFieldResource: name: resource in: path description: Type of resource schema. required: true schema: type: string enum: - customers - payment-instruments - subscriptions - transactions - websites - products - plans - bump-offers - gateway-accounts - deposit-requests externalIdentifierResource: name: resource in: path description: Type of the resource. required: true schema: type: string enum: - customers - invoices - invoice-items - transactions - journal-accounts - journal-entries externalIdentifierResourceId: name: resourceId in: path description: ID of the resource. required: true schema: type: string maxLength: 50 pattern: ^[@~\-\.\w]+$ externalIdentifierService: name: service in: path description: Name of the service. required: true schema: type: string enum: - quickbooks-online imageSize: name: imageSize in: query description: >- Resize image to specified size. Supports any sizes from 10x10 to 2000x2000, in the following format: `{width}x{height}`. If the value is invalid, the image returns the original size. This parameter is ignored for non-image files. schema: type: string example: 700x700 pattern: ^[1-9]{1}[0-9]{1,3}x[1-9]{1}[0-9]{1,3}$ applicationId: name: applicationId in: path description: ID of the application. required: true schema: type: string maxLength: 50 pattern: ^[@~\-\.\w]+$ organizationId: name: organizationId in: path description: >- 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). required: true schema: type: string maxLength: 50 pattern: ^[@~\-\.\w]+$ mediaTypeJsonPdf: name: Accept in: header description: Type of response media. schema: type: string enum: - application/json - application/pdf default: application/json journalRecordId: name: journalRecordId in: path description: ID of the journal record. required: true schema: type: string maxLength: 50 pattern: ^[@~\-\.\w]+$ subscriptionExpand: name: expand in: query description: >- Expand a response to receive a full related object in the `_embedded` path. To expand multiple objects, use a comma-separated list. Example: `expand=recentInvoice,initialInvoice`. Available arguments are: - `customer` - `leadSource` - `website` - `shippingRate` - `initialInvoice` - `recentInvoice` - `upcomingInvoice` - `paymentInstrument` For more information, see [Expand to include embedded objects](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources). schema: type: string tag: name: tag in: path description: Name of the tag. required: true schema: type: string pattern: ^[@~\-\.\w\s]+$ customerId: name: customerId in: path description: ID of the customer. required: true schema: type: string maxLength: 50 pattern: ^[@~\-\.\w]+$ kycDocumentId: name: kycDocumentId in: path description: ID of the KYC document. required: true schema: type: string maxLength: 50 pattern: ^[@~\-\.\w]+$ credentialType: name: type in: path description: Type of service credential. required: true schema: type: string enum: - smtp - webhook - mailgun - sendgrid - aws-ses - oauth2 - postmark - experian - taxjar - avalara - plaid token: name: token in: path description: Token string. required: true schema: type: string systemEventType: name: eventType in: path description: Type of event. required: true schema: type: string rulesVersion: name: version in: path required: true description: >- Version of the ruleset. To retrieve the full related object instead of the ID, expand the response. For more information, see [Expand to include embedded objects](#section/Expand-to-include-embedded-objects). schema: type: integer minimum: 1 integrationLabel: name: label in: path description: Label of the integration. required: true schema: type: string enum: - google-sheets - keap-infusionsoft - intuit-quickbooks storefrontCustomFieldResource: name: resource in: path description: Type of resource schema. required: true schema: type: string enum: - customers - payment-instruments - subscriptions - transactions headers: Pagination-Total: description: Total number of items. schema: type: integer example: 332 Pagination-Limit: description: Maximum number of items per page. schema: type: integer example: 100 Pagination-Offset: description: |- Specifies the starting point within the collection of resource results. For example, a request with `limit=20` retrieves and displays the first 20 results on a page. A following request with `limit=20` and `offset=20`, retrieves the next page of 20 results. schema: type: integer example: 2 Location: description: Location of the related resource. schema: type: string format: uri example: https://api.rebilly.com/example schemas: CreatedTime: type: string description: Date and time which is set automatically when the resource is created. format: date-time readOnly: true x-sortable: true x-label: Creation Time UpdatedTime: type: string description: Date and time which updates automatically when the resource is updated. format: date-time readOnly: true x-sortable: true x-label: Last Update Time ResourceId: type: string description: Unique resource ID. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 SelfLink: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self Tag: type: object description: >- Use tags to organize and categorize customers or KYC documents based on keywords. For more information, see [Tags](https://www.rebilly.com/docs/dev-docs/api/tags/). required: - name - type properties: id: description: ID of the tag. readOnly: true $ref: '#/components/schemas/ResourceId' name: description: |- Unique name for the tag. Tag names are not case-sensitive. type: string maxLength: 255 pattern: ^[@~\-\.\w\s]+$ example: New type: description: >- Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers. type: string enum: - customer - kyc-document - aml-check createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' AML: type: object properties: firstName: type: string description: First name of the individual, or name of entity. readOnly: true example: Benjamin lastName: type: - string - 'null' description: >- Last name of the individual. Returns a `null` value for single-named entities. readOnly: true example: Franklin source: type: string readOnly: true description: Describes which list the result is from. sourceType: readOnly: true description: Describes the categories of the individual or entity. type: array example: - sanctions - enforcements items: type: string enum: - pep - sanctions - adverse-media - enforcements - state-owned-enterprise gender: type: - string - 'null' readOnly: true description: >- If `type`=`individual`, this field describes the gender of the individual. title: type: - array - 'null' readOnly: true description: Individual's job title. example: - Postmaster General - Ambassador to France - Ambassador to Sweden - Supreme Executive Council of Commonwealth of Pennsylvania items: type: string type: type: string readOnly: true description: Describes whether the source is an individual or an entity. enum: - individual - entity legalBasis: type: array readOnly: true description: List of references to legal documents, if they exist. items: type: string regime: type: - string - 'null' readOnly: true description: Describes the government, administration, or political entity. example: United States Government confidence: type: string description: Degree of confidence in the source list information. readOnly: true enum: - weak - medium - strong - very-strong nationality: type: string readOnly: true description: Nationality of the individual or entity. address: type: array readOnly: true description: Addresses associated with the individual or entity. items: type: object properties: address: type: - string - 'null' readOnly: true description: Street address line 1. address2: type: - string - 'null' readOnly: true description: Street address line 2. city: type: - string - 'null' readOnly: true description: City. region: type: - string - 'null' readOnly: true description: State, province, or region. country: type: - string - 'null' readOnly: true description: Country. birthplace: type: boolean default: false readOnly: true description: Individual's place of birth. dob: type: array readOnly: true description: One or more possible dates of birth. items: type: string readOnly: true description: Date of birth. format: date example: '1706-01-17' aliases: type: array readOnly: true description: List of aliases, if any. items: type: object properties: firstName: type: string description: First name of alias. readOnly: true lastName: type: string description: Last name of alias. readOnly: true authenticity: type: string description: Degree of confidence in the alias. readOnly: true enum: - strong - weak - unknown passport: type: array readOnly: true description: Individual's passport information. items: type: object properties: number: type: string readOnly: true description: Passport number. registrationDate: type: string format: date readOnly: true description: Passport registration date. comments: type: - string - 'null' readOnly: true description: Additional information. This content varies per list. _links: $ref: '#/components/schemas/SelfLink' AmlCheck: type: object readOnly: true description: AML check result. properties: id: type: string description: Unique resource ID. maxLength: 50 example: aml_chk_0YV8XJT2ZWDR398Q8NFEM7DEPM createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' websiteId: type: string description: Website ID associated with the customer. maxLength: 50 example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG reviewerId: type: - string - 'null' maxLength: 50 description: User ID of the person who reviewed the AML check. example: 44433322-2c4y-483z-a0a9-158621f77a21 reviewerName: type: - string - 'null' description: First and last name of the person who reviewed the AML check. reviewStartTime: type: - string - 'null' format: date-time description: Date and time when the AML check review is started. reviewTime: type: - string - 'null' format: date-time description: Date and time when the AML check review is completed. priority: type: - string - 'null' default: null description: Highest matched priority of all hits within an AML check. source: type: string description: Source of the AML check. enum: - sign-up - recurring - purchase status: type: string description: Status of the AML check. readOnly: true enum: - pending-review - in-review - no-match - confirmed-match - false-positive x-enumDescriptions: pending-review: Possible AML match detected and waiting to be manually reviewed. in-review: A manual AML match review is in progress. no-match: No possible AML match detected. confirmed-match: Possible AML match manually reviewed and marked as confirmed. false-positive: Possible AML match manually reviewed and marked as false positive. customer: type: object properties: id: description: ID of the customer. $ref: '#/components/schemas/ResourceId' primaryAddress: type: object description: Customer's data at the time of the AML check. properties: firstName: type: string maxLength: 45 description: Customer's first name at the time of the AML check. lastName: type: string maxLength: 45 description: Customer's last name at the time of the AML check. dob: type: - string - 'null' format: date description: Customer's date of birth. example: '1971-02-14' address: description: >- First line of the customer's street address at the time of the AML check. type: - string - 'null' pattern: ^[\w\s\-\/\p{L},.#;:()'&]+$ maxLength: 60 example: 36 Craven St address2: description: >- Second line of the customer's street address at the time of the AML check. type: - string - 'null' pattern: ^[\w\s\-\/\p{L},.#;:()'&]+$ maxLength: 60 city: description: Customer's city of residence at the time of the AML check. type: - string - 'null' pattern: ^[\w\s\-\p{L},.']+$ maxLength: 45 example: Austin region: description: Customer's region of residence at the time of the AML check. type: - string - 'null' pattern: ^[\w\s\-\/\p{L},.#;:()']+$ maxLength: 45 example: Texas country: type: - string - 'null' description: >- Customer's country of residence at the time of the AML check. postalCode: description: Customer's postal code at the time of the AML check. type: - string - 'null' pattern: ^[\w\s\-]+$ maxLength: 10 example: WC2N 5NF tags: description: List of tags that have been assigned to the customer. type: array items: $ref: '#/components/schemas/Tag' organizationId: type: string description: ID of the customer's organization. maxLength: 50 example: org_0YVDM8RC7GDADADSBSMW124JA8 hits: description: List of hits returned during the AML check. type: array items: $ref: '#/components/schemas/AML' tags: description: List of AML check tags. readOnly: true type: array items: $ref: '#/components/schemas/Tag' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer BaseProblem: type: object additionalProperties: true minProperties: 1 description: >- RFC-7807 [problem details](https://tools.ietf.org/html/rfc7807) JSON object. properties: type: type: string description: >- Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". format: uri title: type: string description: >- Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. detail: type: string description: >- Human-readable explanation that is specific to this occurrence of the problem. instance: type: string description: >- URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. Unauthorized: allOf: - title: Unauthorized - type: object properties: status: type: integer description: HTTP status code. minimum: 401 maximum: 401 - $ref: '#/components/schemas/BaseProblem' Forbidden: allOf: - title: Forbidden - type: object properties: status: type: integer description: HTTP status code. minimum: 403 maximum: 403 - $ref: '#/components/schemas/BaseProblem' NotFound: allOf: - type: object properties: status: type: integer description: HTTP status code. minimum: 404 maximum: 404 - $ref: '#/components/schemas/BaseProblem' ValidationError: allOf: - title: Validation error - type: object properties: status: type: integer description: HTTP status code. minimum: 422 maximum: 422 - $ref: '#/components/schemas/BaseProblem' - type: object properties: invalidFields: description: Invalid field details. type: array items: type: object properties: field: type: string description: |- Name of the field. Dot notation is used for nested object field names. message: description: Message field. type: string example: - field: field1 message: field1 is invalid - field: subObject.field2 message: field2 is invalid - field: subObject.field2 message: another error in the field2 AmlCheckReview: type: object description: AML check review. properties: tag: type: string description: AML-related customer tag. enum: - aml-match-confirmed - aml-match-false-positive AmlConfidence: type: - string - 'null' description: Degree of confidence to assign. enum: - weak - medium - strong - very-strong AmlCompoundConfidence: type: object properties: addressMatch: type: object description: Match for the customer's city or region, or both, is found. properties: matchingCountry: $ref: '#/components/schemas/AmlConfidence' mismatchingCountry: $ref: '#/components/schemas/AmlConfidence' noCountry: $ref: '#/components/schemas/AmlConfidence' addressMismatch: type: object description: Match for the customer's city or region, or both, is not found. properties: matchingCountry: $ref: '#/components/schemas/AmlConfidence' mismatchingCountry: $ref: '#/components/schemas/AmlConfidence' noCountry: $ref: '#/components/schemas/AmlConfidence' noAddress: type: object description: No city and no region is available to match against. properties: matchingCountry: $ref: '#/components/schemas/AmlConfidence' mismatchingCountry: $ref: '#/components/schemas/AmlConfidence' noCountry: $ref: '#/components/schemas/AmlConfidence' AmlPriority: type: - string - 'null' description: Priority level of matched AML customer information. default: null enum: - p0 - p1 - p2 - p3 AmlSettings: type: object description: Settings for AML checking. properties: confidence: type: object description: Confidence level settings for AML matches. properties: dob: type: object description: >- Confidence level settings for AML matches based on date of birth. properties: exactMatch: description: >- Exact match of the customer's date of birth and name is found. $ref: '#/components/schemas/AmlCompoundConfidence' inexactMatch: description: >- Exact match of the customer's date of birth and a fuzzy, or inexact, name match is found. $ref: '#/components/schemas/AmlCompoundConfidence' noDob: type: object description: >- Confidence level settings for AML matches based on a missing date of birth. properties: exactMatch: description: >- Exact match of the customer's name is found, but a date of birth is not. $ref: '#/components/schemas/AmlCompoundConfidence' inexactMatch: description: >- Fuzzy, or inexact match of the customer's name is found, but a date of birth is not. $ref: '#/components/schemas/AmlCompoundConfidence' weakMatch: description: >- Weak match of the customer's name is found, but a date of birth is not. $ref: '#/components/schemas/AmlCompoundConfidence' yob: type: object description: >- Confidence level settings for AML matches based on year of birth. properties: exactMatch: description: >- Exact match of the customer's year of birth and exact name is found. $ref: '#/components/schemas/AmlCompoundConfidence' inexactMatch: description: >- Exact match of the customer's year of birth and a fuzzy, or inexact, name match is found. $ref: '#/components/schemas/AmlCompoundConfidence' inexactYob: type: object description: >- Confidence level settings for AML matches based on a near match of year of birth. properties: exactMatch: description: >- Near match of the customer's year of birth and an exact name match is found. $ref: '#/components/schemas/AmlCompoundConfidence' inexactMatch: description: >- Near match of the customer's year of birth and a fuzzy, or inexact, name match is found. $ref: '#/components/schemas/AmlCompoundConfidence' priority: type: object description: |- Priority level settings for AML source matches. \ `p0` is critical priority level, and `p3` is low priority level. properties: pep: type: object description: Priorities for the `pep` source type. properties: veryStrong: $ref: '#/components/schemas/AmlPriority' strong: $ref: '#/components/schemas/AmlPriority' medium: $ref: '#/components/schemas/AmlPriority' weak: $ref: '#/components/schemas/AmlPriority' enforcements: type: object description: Priorities for the `enforcement` source type. properties: veryStrong: $ref: '#/components/schemas/AmlPriority' strong: $ref: '#/components/schemas/AmlPriority' medium: $ref: '#/components/schemas/AmlPriority' weak: $ref: '#/components/schemas/AmlPriority' stateOwnedEnterprise: type: object description: Priorities for the `state-owned-enterprise` source type. properties: veryStrong: $ref: '#/components/schemas/AmlPriority' strong: $ref: '#/components/schemas/AmlPriority' medium: $ref: '#/components/schemas/AmlPriority' weak: $ref: '#/components/schemas/AmlPriority' sanctions: type: object description: Priorities for the `sanctions` source type. properties: veryStrong: $ref: '#/components/schemas/AmlPriority' strong: $ref: '#/components/schemas/AmlPriority' medium: $ref: '#/components/schemas/AmlPriority' weak: $ref: '#/components/schemas/AmlPriority' adverseMedia: type: object description: Priorities for the `adverse-media` source type. properties: veryStrong: $ref: '#/components/schemas/AmlPriority' strong: $ref: '#/components/schemas/AmlPriority' medium: $ref: '#/components/schemas/AmlPriority' weak: $ref: '#/components/schemas/AmlPriority' Attachment: type: object required: - fileId - relatedId - relatedType properties: id: type: string readOnly: true description: ID of the attachment. maxLength: 50 example: att_0YV7J787J0DW0918MQQMDHWA7M fileId: type: string description: ID of the linked file object. maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N relatedType: description: Linked object type. type: string enum: - customer - customer-timeline-comment - customer-edd-timeline-comment - dispute - gateway-timeline-comment - invoice - invoice-timeline-comment - order-timeline-comment - organization - payment - plan - product - subscription - transaction - transaction-timeline-comment relatedId: description: ID of the linked object. type: string name: description: Name of original attachment. type: string description: description: Description of the attachment. type: string createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - file _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: file: type: object Conflict: allOf: - title: Conflict - type: object properties: status: type: integer description: HTTP status code. minimum: 409 maximum: 409 - $ref: '#/components/schemas/BaseProblem' AuthenticationOptions: type: object properties: passwordPattern: description: Allowed password pattern. type: - string - 'null' example: /^[0-9]+$/ credentialTtl: description: Default credential lifetime, in seconds. type: integer authTokenTtl: description: Default auth-token lifetime, in seconds. type: integer resetTokenTtl: description: Default reset-token lifetime, in seconds. type: integer otpRequired: description: >- Specifies if a One-Time Password (OTP) is required to exchange a token. type: boolean _links: $ref: '#/components/schemas/SelfLink' CustomerId: type: string description: ID of the customer resource. maxLength: 50 example: cus_0YV7DDSDD1C8DA64KHH2W33CPF x-basic: true AuthenticationTokenResponse: type: object title: Authentication token required: - username properties: username: description: >- Username of the customer who is associated with the authentication token. type: string customerId: readOnly: true allOf: - $ref: '#/components/schemas/CustomerId' token: description: ID of the authentication token. type: string readOnly: true otpRequired: description: >- Specifies if a One-Time Password (OTP) is required to exchange the authentication token. type: boolean credentialId: description: ID of the user associated with the authentication token. readOnly: true $ref: '#/components/schemas/ResourceId' expiredTime: description: Date and time when the token expired. type: - string - 'null' format: date-time _links: $ref: '#/components/schemas/SelfLink' AuthenticationTokenPasswordMode: type: object required: - username - password properties: username: description: Username associated with the authentication token. type: string password: description: Password associated with the authentication token. type: string format: password writeOnly: true mode: type: string description: >- Specifies the authentication verification method. The `password` token requires the user to enter a password to log in. The `passwordless` token, requires a secret API key to log in. To obtain an API key, see [Manage API keys](https://www.rebilly.com/docs/dev-docs/api-keys/#manage-api-keys). writeOnly: true enum: - password customerId: readOnly: true allOf: - $ref: '#/components/schemas/CustomerId' token: description: ID of the authentication token. type: string readOnly: true otpRequired: description: >- Specifies if a One-Time Password (OTP) is required to exchange the authentication token. type: boolean credentialId: description: ID of the user associated with the authentication token. readOnly: true $ref: '#/components/schemas/ResourceId' expiredTime: description: Date and time when the token expired. type: string format: date-time _links: $ref: '#/components/schemas/SelfLink' AuthenticationTokenPasswordlessMode: type: object required: - customerId properties: customerId: $ref: '#/components/schemas/CustomerId' mode: type: string description: >- Specifies the authentication verification method. The `password` token requires the user to enter a password to log in. The `passwordless` token, requires a secret API key to log in. To obtain an API key, see [Manage API keys](https://www.rebilly.com/docs/dev-docs/api-keys/#manage-api-keys). writeOnly: true enum: - passwordless token: description: ID of the authentication token. type: string readOnly: true otpRequired: description: >- Specifies if a One-Time Password (OTP) is required to exchange the authentication token. type: boolean credentialId: description: ID of the user associated with the authentication token. readOnly: true $ref: '#/components/schemas/ResourceId' expiredTime: description: Date and time when the token expired. type: string format: date-time _links: $ref: '#/components/schemas/SelfLink' AuthenticationToken: type: object discriminator: propertyName: mode mapping: password: '#/components/schemas/AuthenticationTokenPasswordMode' passwordless: '#/components/schemas/AuthenticationTokenPasswordlessMode' oneOf: - $ref: '#/components/schemas/AuthenticationTokenPasswordMode' - $ref: '#/components/schemas/AuthenticationTokenPasswordlessMode' ApiKeyScope: type: object properties: organizationId: description: Array of account IDs. type: array items: $ref: '#/components/schemas/ResourceId' productId: description: Array of product IDs. type: array items: type: string description: Unique resource ID. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ planId: description: Array of plan IDs. type: array items: type: string description: Unique resource ID. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X customFieldName: description: Array of custom field names. type: array items: type: string maxLength: 60 pattern: ^[\w-]+$ example: organizationId: - organizationId-id-1 AclPermissions: type: array items: type: string format: operationId example: - PostFile - StorefrontGetAccount - StorefrontGetWebsite - StorefrontGetKycDocumentCollection - StorefrontGetKycDocument - StorefrontPostKycDocument Acl: type: array description: Access Control List (ACL) information. items: type: object required: - scope - permissions properties: scope: description: Scope of the API key. $ref: '#/components/schemas/ApiKeyScope' permissions: description: >- If you are creating a restricted API key, use this field to specify individual permissions. Use the wildcard character `*` to provide full access. $ref: '#/components/schemas/AclPermissions' CustomerJWT: type: object properties: id: type: string description: ID of the session. maxLength: 50 example: jwt_0YV7DEJX80CDRAKVTV478ZNJDR readOnly: true type: description: Type of session. type: string readOnly: true enum: - customer token: description: Token used for authentication. type: string readOnly: true invalidate: description: >- Specifies whether to invalidate a token after an exchange is performed. type: boolean default: true example: true writeOnly: true oneTimePassword: description: >- One time password that sent by email. This value must contain digits only. type: string pattern: ^[0-9]{6}$ example: '123456' writeOnly: true customerId: readOnly: true allOf: - $ref: '#/components/schemas/CustomerId' acl: $ref: '#/components/schemas/Acl' customClaims: type: object additionalProperties: true example: documents: - identity-proof - address-proof redirectUrl: https://mywebsite.com createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' expiredTime: description: |- Date and time when the session expires. The default value is one hour after the `createdTime` value. type: string format: date-time _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - customer Blocklist: type: object required: - type - value properties: id: type: string description: ID of the blocklist. readOnly: true maxLength: 50 example: blkl_0YV8XTSH9MD578386XQDWSEBNF type: description: Type of blocklist. type: string enum: - payment-card - bank-account - customer-id - email - email-domain - ip-address - country - fingerprint - bin - address value: description: Value of the blocklist. type: string expirationTime: description: Date and time when the blocklist expires. type: - string - 'null' format: date-time createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' CouponRestrictionDiscountPerRedemption: type: object description: |- 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. required: - type - quantity properties: type: description: Type of coupon restriction. type: string enum: - discounts-per-redemption quantity: type: integer description: Permitted number of discounts per redemption. CurrencyCode: type: string description: Currency code in ISO 4217 format. minLength: 3 maxLength: 3 example: USD x-label: Currency x-sortable: true CouponRestrictionMinimumOrderAmount: type: object description: |- Specifies 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. required: - type - amount - currency properties: type: type: string description: Type of coupon restriction. enum: - minimum-order-amount amount: type: integer description: Minimum order quantity that is required to apply the coupon. currency: $ref: '#/components/schemas/CurrencyCode' CouponRestrictionPaidByTime: type: object description: >- Specifies a date and time at which a coupon redemption expires if the invoice is not paid. required: - type - time properties: type: description: Type of coupon restriction. type: string enum: - paid-by-time time: type: string format: date-time description: >- Date and time when a coupon redemption is no longer valid, and the coupon is removed from unpaid invoices if applied. > **Note:** This date-time cannot be changed. CouponRestrictionRestrictToInvoices: type: object description: Restricts a coupon to specific invoices. required: - type - invoiceIds properties: type: type: string description: Type of coupon restriction. enum: - restrict-to-invoices invoiceIds: type: array description: Invoice IDs on which a coupon can be applied. items: type: string CouponRestrictionRestrictToPlans: type: object description: Restricts a coupon to specific pricing plans. required: - type - planIds properties: type: type: string description: Type of coupon restriction. enum: - restrict-to-plans planIds: type: array description: Plan IDs on which a coupon can be applied. items: type: string minimumQuantity: type: integer default: 1 description: >- Minimum quantity that is required to apply the restriction and subsequent discount. CouponRestrictionRestrictToProducts: type: object description: Restricts a coupon to specific products. required: - type - productIds properties: type: type: string description: Type of coupon restriction. enum: - restrict-to-products productIds: type: array description: Product IDs on which a coupon can be applied. items: type: string minimumQuantity: type: integer default: 1 description: >- Minimum quantity that is required to apply the restriction and subsequent discount. CouponRestrictionRestrictToSubscriptions: type: object description: Restricts a coupon to specific order subscriptions. required: - type - subscriptionIds properties: type: type: string description: Type of coupon restriction. enum: - restrict-to-subscriptions subscriptionIds: type: array description: Subscription IDs on which a coupon can be applied. items: type: string RedemptionRestriction: description: Redemption restrictions. type: object discriminator: propertyName: type mapping: discounts-per-redemption: '#/components/schemas/CouponRestrictionDiscountPerRedemption' minimum-order-amount: '#/components/schemas/CouponRestrictionMinimumOrderAmount' paid-by-time: '#/components/schemas/CouponRestrictionPaidByTime' restrict-to-invoices: '#/components/schemas/CouponRestrictionRestrictToInvoices' restrict-to-plans: '#/components/schemas/CouponRestrictionRestrictToPlans' restrict-to-products: '#/components/schemas/CouponRestrictionRestrictToProducts' restrict-to-subscriptions: '#/components/schemas/CouponRestrictionRestrictToSubscriptions' anyOf: - $ref: '#/components/schemas/CouponRestrictionDiscountPerRedemption' - $ref: '#/components/schemas/CouponRestrictionMinimumOrderAmount' - $ref: '#/components/schemas/CouponRestrictionPaidByTime' - $ref: '#/components/schemas/CouponRestrictionRestrictToInvoices' - $ref: '#/components/schemas/CouponRestrictionRestrictToPlans' - $ref: '#/components/schemas/CouponRestrictionRestrictToProducts' - $ref: '#/components/schemas/CouponRestrictionRestrictToSubscriptions' CouponRedemption: type: object description: Coupon redemption log. properties: id: type: string readOnly: true description: Unique resource ID. maxLength: 50 example: cpn_rdm_0YVCNKF81GD778N4YNVGDJK558 couponId: type: string description: ID of the coupon. maxLength: 50 example: cpn_0YVCNKF81GD778N4YNVGDJK558 customerId: $ref: '#/components/schemas/CustomerId' additionalRestrictions: description: Additional coupon redemption restrictions. type: array items: $ref: '#/components/schemas/RedemptionRestriction' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' canceledTime: description: Date and time when the coupon is canceled. readOnly: true x-sortable: true type: - string - 'null' format: date-time _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer - coupon DiscountContext: type: string description: Context in which the discount applies. default: items x-label: Context x-sortable: true x-basic: true x-enumDescriptions: items: items (less discounts) shipping: shipping (less discounts) items-and-shipping: items and shipping (less discounts) enum: - items - shipping - items-and-shipping DiscountFixed: type: object description: Coupon fixed amount discount. required: - amount - currency - type properties: amount: description: Amount of discount. type: number format: double minimum: 0.01 currency: $ref: '#/components/schemas/CurrencyCode' type: type: string enum: - fixed x-label: Type x-sortable: true x-basic: true context: $ref: '#/components/schemas/DiscountContext' DiscountPercent: type: object description: Coupon percent discount. required: - value - type properties: value: description: Percentage of discount. type: number format: double minimum: 0.01 maximum: 100 type: type: string enum: - percent x-label: Type x-sortable: true x-basic: true context: $ref: '#/components/schemas/DiscountContext' Discount: type: object description: Coupon discount. discriminator: propertyName: type mapping: fixed: '#/components/schemas/DiscountFixed' percent: '#/components/schemas/DiscountPercent' oneOf: - $ref: '#/components/schemas/DiscountFixed' - $ref: '#/components/schemas/DiscountPercent' CouponRestrictionRedemptionsPerCustomer: type: object description: |- 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. required: - type - quantity properties: type: type: string description: Type of coupon restriction. enum: - redemptions-per-customer quantity: type: integer description: Permitted number of redemptions per customer. CouponRestrictionRestrictToBxgy: type: object description: >- 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. required: - type - buy - get properties: type: type: string description: Type of coupon restriction. enum: - restrict-to-bxgy buy: type: array description: >- One or more plan and quantity definitions that must be purchased to receive all plans and quantities that are defined in the `get` instruction. minItems: 1 items: type: object required: - planId - quantity properties: planId: type: string description: Plan ID of the item being purchased. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X quantity: type: integer minimum: 1 description: >- Total quantity of the associated plan ID that must be purchased for this restriction to apply. get: type: array description: >- One or more plan and quantity definitions that are added to a purchase if all definitions in the `buy` condition are met. minItems: 1 items: type: object required: - planId - quantity properties: planId: type: string description: Plan ID of the item that is to be received by the customer. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X quantity: type: integer minimum: 1 description: >- Total quantity of the associated plan ID that is to be received by the customer. CouponRestrictionRestrictToCountries: type: object description: Restricts a coupon for use in specific countries. required: - type - countries properties: type: type: string description: Type of coupon restriction. enum: - restrict-to-countries countries: type: array description: >- Countries where the coupon can be applied, in ISO Alpha-2 code format. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/). items: type: string pattern: ^[A-Z]{2}$ CouponRestrictionRestrictToCustomerTags: type: object description: Restricts a coupon to customers with specific tags. required: - type - tags - requireAllTags properties: type: type: string description: Type of coupon restriction. enum: - restrict-to-customer-tags tags: type: array description: Customer tags on which a coupon can be applied. items: type: string requireAllTags: type: boolean description: Determines the behavior for checking customer tags. enum: - true - false x-enumDescriptions: 'true': Customer must have all listed tags to redeem a coupon. 'false': >- Customer must have at least one of the listed tags to redeem a coupon. CouponRestrictionRestrictToCustomers: type: object description: Restricts a coupon to specific customers. required: - type - customerIds properties: type: type: string description: Type of coupon restriction. enum: - restrict-to-customers customerIds: type: array description: Customer IDs on which a coupon can be applied. items: type: string CouponRestrictionExclusiveApplication: type: object description: >- 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. required: - type properties: type: type: string description: Type of coupon restriction. enum: - restrict-to-exclusive-application CouponRestrictionTotalRedemptions: type: object description: >- Restricts the number of times a coupon can be redeemed by different customers. required: - type - quantity properties: type: type: string description: Type of coupon restriction. enum: - total-redemptions quantity: type: integer description: Permitted total number of redemptions. CouponRestriction: description: Coupon restrictions. type: object discriminator: propertyName: type mapping: discounts-per-redemption: '#/components/schemas/CouponRestrictionDiscountPerRedemption' minimum-order-amount: '#/components/schemas/CouponRestrictionMinimumOrderAmount' paid-by-time: '#/components/schemas/CouponRestrictionPaidByTime' redemptions-per-customer: '#/components/schemas/CouponRestrictionRedemptionsPerCustomer' restrict-to-bxgy: '#/components/schemas/CouponRestrictionRestrictToBxgy' restrict-to-countries: '#/components/schemas/CouponRestrictionRestrictToCountries' restrict-to-customer-tags: '#/components/schemas/CouponRestrictionRestrictToCustomerTags' restrict-to-customers: '#/components/schemas/CouponRestrictionRestrictToCustomers' restrict-to-exclusive-application: '#/components/schemas/CouponRestrictionExclusiveApplication' restrict-to-invoices: '#/components/schemas/CouponRestrictionRestrictToInvoices' restrict-to-plans: '#/components/schemas/CouponRestrictionRestrictToPlans' restrict-to-products: '#/components/schemas/CouponRestrictionRestrictToProducts' restrict-to-subscriptions: '#/components/schemas/CouponRestrictionRestrictToSubscriptions' total-redemptions: '#/components/schemas/CouponRestrictionTotalRedemptions' anyOf: - $ref: '#/components/schemas/CouponRestrictionDiscountPerRedemption' - $ref: '#/components/schemas/CouponRestrictionExclusiveApplication' - $ref: '#/components/schemas/CouponRestrictionMinimumOrderAmount' - $ref: '#/components/schemas/CouponRestrictionPaidByTime' - $ref: '#/components/schemas/CouponRestrictionRedemptionsPerCustomer' - $ref: '#/components/schemas/CouponRestrictionRestrictToBxgy' - $ref: '#/components/schemas/CouponRestrictionRestrictToCountries' - $ref: '#/components/schemas/CouponRestrictionRestrictToCustomerTags' - $ref: '#/components/schemas/CouponRestrictionRestrictToCustomers' - $ref: '#/components/schemas/CouponRestrictionRestrictToInvoices' - $ref: '#/components/schemas/CouponRestrictionRestrictToPlans' - $ref: '#/components/schemas/CouponRestrictionRestrictToProducts' - $ref: '#/components/schemas/CouponRestrictionRestrictToSubscriptions' - $ref: '#/components/schemas/CouponRestrictionTotalRedemptions' Coupon: type: object description: Coupons and discounts. required: - discount - issuedTime properties: id: type: string description: >- ID of the coupon. This value is also known as the coupon redemption code. readOnly: true maxLength: 50 example: cpn_0YVCNKF81GD778N4YNVGDJK558 discount: $ref: '#/components/schemas/Discount' restrictions: description: Coupon restrictions. type: array items: $ref: '#/components/schemas/CouponRestriction' redemptionsCount: type: integer description: Total number of times that a coupon is redeemed. minimum: 0 readOnly: true status: type: string description: Specifies the current status of the coupon. readOnly: true enum: - draft - issued - expired description: type: string x-basic: true description: >- Description of the coupon. Use this field to provide an invoice discount item description. If this field is empty, the invoice discount item description uses the related coupon ID, in the following format: `Coupon "COUPON-ID"`. issuedTime: description: |- Date and time when the coupon is issued. This value may also be described as start time of the coupon. type: string x-label: Valid from x-sortable: true x-basic: true format: date-time expiredTime: description: Date and time when the coupon expires. type: - string - 'null' x-label: Valid until x-sortable: true x-basic: true format: date-time revision: description: |- Number of times the coupon data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation. type: integer readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' CouponExpiration: type: object required: - expiredTime properties: expiredTime: description: >- Date and time when the coupon expires. This value must be greater than the `issuedTime` value. If this field contains a null or empty string, the coupon expires immediately. type: string format: date-time BlankProblem: description: >- Problem Details JSON Object [[RFC7807](https://tools.ietf.org/html/rfc7807)]. type: object minProperties: 1 additionalProperties: true properties: status: type: integer description: HTTP status code. minimum: 400 maximum: 599 title: type: string description: >- Short, human-readable summary of the problem type. It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization. DocumentedProblem: type: object allOf: - properties: type: type: string description: >- URI reference [[RFC3986](https://tools.ietf.org/html/rfc3986)] that identifies the problem type. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". format: uri example: https://www.rebilly.com/docs/ - $ref: '#/components/schemas/BlankProblem' DetailedProblem: type: object allOf: - $ref: '#/components/schemas/BlankProblem' - properties: detail: type: string description: >- Human-readable explanation specific to this occurrence of the problem. Problem: type: object allOf: - $ref: '#/components/schemas/DocumentedProblem' - $ref: '#/components/schemas/DetailedProblem' Error: type: object allOf: - $ref: '#/components/schemas/Problem' - properties: error: deprecated: true type: string CustomerCredential: type: object required: - username - password - customerId properties: id: type: string description: ID of the credential. readOnly: true maxLength: 50 example: cus_crd_0YV9Y706QGCB39FQD380G1ZHZH username: description: Username associated with the credential. type: string password: description: Password associated with the credential. type: string format: password writeOnly: true customerId: $ref: '#/components/schemas/CustomerId' expiredTime: description: Date and time when the credential expires. type: - string - 'null' format: date-time _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer ArrayCustomField: type: object required: - type properties: name: description: Name of the custom field. type: string readOnly: true type: description: >- Describes the data type. Custom field type value cannot be changed. Array of strings with up to 255 characters. Maximum size is 1000 elements. type: string enum: - array description: description: Description of the custom field. type: - string - 'null' additionalSchema: type: - object - 'null' description: Additional schema which adds additional values constrains. properties: allowedValues: description: List of allowed values. type: array items: type: string required: description: >- Specifies whether this value is required. This value can be combined with any parameter and is available for custom fields of any type. type: boolean default: description: Default value. type: array items: type: string _links: $ref: '#/components/schemas/SelfLink' BooleanCustomField: type: object required: - type properties: name: description: Name of the custom field. type: string readOnly: true type: description: |- Describes the data type. Custom field type value cannot be changed. Specifies a `true` or `false` value. type: string enum: - boolean description: description: Description of the custom field. type: - string - 'null' additionalSchema: type: - object - 'null' description: Additional schema which adds additional values constrains. properties: required: description: Specifies whether this value is required. type: boolean default: description: Default value. type: boolean _links: $ref: '#/components/schemas/SelfLink' DateCustomField: type: object required: - type properties: name: description: Name of the custom field. type: string readOnly: true type: description: >- Describes the data type. Custom field type value cannot be changed. String in [full-date](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DD). type: string enum: - date description: description: Description of the custom field. type: - string - 'null' additionalSchema: type: - object - 'null' description: Additional schema which adds additional values constrains. properties: required: description: Specifies whether this value is required. type: boolean default: description: Default value. type: string format: date _links: $ref: '#/components/schemas/SelfLink' DateTimeCustomField: type: object required: - type properties: name: description: Name of the custom field. type: string readOnly: true type: description: >- Describes the data type. Custom field type value cannot be changed. String in [date-time](https://www.rfc-editor.org/rfc/rfc3339) format (YYYY-MM-DDTHH:MM:SSZ). type: string enum: - datetime description: description: Description of the custom field. type: - string - 'null' additionalSchema: type: - object - 'null' description: Additional schema which adds additional values constrains. properties: required: description: Specifies whether this value is required. type: boolean default: description: Default value. type: string format: date-time _links: $ref: '#/components/schemas/SelfLink' IntegerCustomField: type: object required: - type properties: name: description: Name of the custom field. type: string readOnly: true type: description: |- Describes the data type. Custom field type value cannot be changed. Cardinal value of between `-2^31` and `2^31-1`. type: string enum: - integer description: description: Description of the custom field. type: - string - 'null' additionalSchema: type: - object - 'null' description: Additional schema which adds additional values constrains. properties: minimum: description: |- Minimum allowed integer. This value can be combined with the `maximum` parameter. type: integer maximum: description: |- Maximum allowed integer. This value can be combined with the `minimum` parameter. type: integer required: description: Specifies whether this value is required. type: boolean default: description: Default value. type: integer _links: $ref: '#/components/schemas/SelfLink' NumberCustomField: type: object required: - type properties: name: description: Name of the custom field. type: string readOnly: true type: description: >- Describes the data type. Custom field type value cannot be changed. Float value. This field also accepts cardinal values which are interpreted as float. type: string enum: - number description: description: Description of the custom field. type: - string - 'null' additionalSchema: type: - object - 'null' description: Additional schema which adds additional values constrains. properties: minimum: description: |- Minimum allowed number. This value can be combined with the `maximum` parameter. type: number format: double maximum: description: |- Maximum allowed number. This value can be combined with the `minimum` parameter. type: number format: double required: description: Specifies whether this value is required. type: boolean default: description: Default value. type: number format: double _links: $ref: '#/components/schemas/SelfLink' StringCustomField: type: object required: - type properties: name: description: Name of the custom field. type: string readOnly: true type: description: |- Describes the data type. Custom field type value cannot be changed. Regular string of up to 255 characters. type: string enum: - string description: description: Description of the custom field. type: - string - 'null' additionalSchema: type: - object - 'null' description: Additional schema which adds additional values constrains. properties: allowedValues: description: List of allowed values. type: array items: type: string maxLength: description: |- Maximum allowed string length . A maximum length of 4000 characters can be configured. By default, this value is set to 255. type: integer pattern: description: Allowed regular expression of a string. type: string example: /^[0-9]+$/ required: description: Specifies whether this value is required. type: boolean default: description: Default value. type: string _links: $ref: '#/components/schemas/SelfLink' MonetaryCustomField: type: object required: - type properties: name: description: Name of the custom field. type: string readOnly: true type: description: |- Describes the data type. Custom field type value cannot be changed. A map of 3-letter currency, code, and amount. Example: `{"currency": "EUR", "amount": 25.30}`. type: string enum: - monetary description: description: Description of the custom field. type: - string - 'null' additionalSchema: type: - object - 'null' description: Additional schema which adds additional values constrains. properties: required: description: Specifies whether this value is required. type: boolean default: description: Default value. type: object properties: currency: $ref: '#/components/schemas/CurrencyCode' amount: type: number format: double _links: $ref: '#/components/schemas/SelfLink' CustomField: description: Separate custom field schema. type: object discriminator: propertyName: type mapping: array: '#/components/schemas/ArrayCustomField' boolean: '#/components/schemas/BooleanCustomField' date: '#/components/schemas/DateCustomField' datetime: '#/components/schemas/DateTimeCustomField' integer: '#/components/schemas/IntegerCustomField' number: '#/components/schemas/NumberCustomField' string: '#/components/schemas/StringCustomField' monetary: '#/components/schemas/MonetaryCustomField' oneOf: - $ref: '#/components/schemas/ArrayCustomField' - $ref: '#/components/schemas/BooleanCustomField' - $ref: '#/components/schemas/DateCustomField' - $ref: '#/components/schemas/DateTimeCustomField' - $ref: '#/components/schemas/IntegerCustomField' - $ref: '#/components/schemas/NumberCustomField' - $ref: '#/components/schemas/StringCustomField' - $ref: '#/components/schemas/MonetaryCustomField' WebsiteId: type: string description: >- ID of the website. A website is where an organization obtains a customer. For more information, see [Obtain an organization ID and website ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id). maxLength: 50 example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG PaymentMethod: type: string description: Payment method. enum: - payment-card - ach - cash - check - paypal - AdvCash - Aircash - Airpay - Alfa-click - Alipay - AmazonPay - Apple Pay - AstroPay Card - AstroPay-GO - BankSEND - BankReferenced - bank-transfer - bank-transfer-2 - bank-transfer-3 - bank-transfer-4 - bank-transfer-5 - bank-transfer-6 - bank-transfer-7 - bank-transfer-8 - bank-transfer-9 - Baloto - Beeline - Belfius-direct-net - bitcoin - Bizum - Blik - Boleto - Boleto-2 - Boleto-3 - cash-deposit - CASHlib - CashToCode - CCAvenue - China UnionPay - Cleo - CODVoucher - Conekta-oxxo - Conekta-spei - cryptocurrency - Cupon-de-pagos - CyberSource - Dimoco-pay-smart - Directa24Card - domestic-cards - Efecty - echeck - ecoPayz - ecoVoucher - EPS - ePay.bg - Ethereum - e-wallet - ezyEFT - eZeeWallet - FasterPay - Flexepin - Giropay - Google Pay - Gpaysafe - iDebit - iDEAL - ING-homepay - INOVAPAY-pin - INOVAPAY-wallet - InstaDebit - InstantPayments - instant-bank-transfer - Interac-online - Interac-eTransfer - Interac-express-connect - Interac - invoice - iWallet - Jeton - jpay - KakaoPay - Khelocard - Klarna - KNOT - Litecoin - loonie - LPG-online - LPG-payment-card - Matrix - MaxiCash - Megafon - MercadoPago - MiFinity-eWallet - miscellaneous - MobilePay - Multibanco - Bancontact - Bancontact-mobile - MTS - MuchBetter - MyFatoorah - Neosurf - Netbanking - Neteller - Nordea-Solo - NordikCoin - OchaPay - online-bank-transfer - Onlineueberweisen - oriental-wallet - OXXO - P24 - Pagadito - PagoEffectivo - Pagsmile-lottery - Pagsmile-deposit-express - PayCash - Payco - Payeer - PaymentAsia-crypto - Paysafecard - PayTabs - Pay4Fun - Paynote - Paymero - Paymero-QR - PayU - PayULatam - Perfect-money - Piastrix - PIX - PinPay - phone - PhonePe - POLi - PostFinance-card - PostFinance-e-finance - QIWI - QPay - QQPay - rapyd-checkout - rebilly-hosted-payment-form - Resurs - SafetyPay - Samsung Pay - SEPA - Siirto - Skrill - Skrill Rapid Transfer - SMSVoucher - Sofort - SparkPay - SPEI - swift-dbt - Tele2 - Telr - Terminaly-RF - Tether - ToditoCash-card - Trustly - Tupay - TWINT - UniCrypt - UPayCard - UPI - USD-coin - VCreditos - VegaWallet - VenusPoint - voucher - voucher-2 - voucher-3 - voucher-4 - Wallet88 - Webmoney - Webpay - Webpay-2 - Webpay Card - WeChat Pay - XPay-P2P - XPay-QR - Yandex-money - Zotapay - Zimpler VaultedInstrument: title: Vaulted payment instrument description: >- Vaulted payment instrument. To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument. required: - method - paymentInstrumentId properties: method: description: >- Payment method supported vault. For more information, see [Payment instrument](https://www.rebilly.com/catalog/all/payment-instruments). type: string enum: - payment-card - ach - paypal allOf: - $ref: '#/components/schemas/PaymentMethod' paymentInstrumentId: type: string description: ID of the payment instrument. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N AlternativePaymentInstrument: title: Alternative instrument description: >- Alternative payment method instrument. To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument. type: object required: - method properties: method: $ref: '#/components/schemas/PaymentMethod' paymentInstrumentId: type: string description: ID of the payment instrument. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N CashInstrument: title: Cash description: >- Cash payment instrument object. To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument. type: object required: - method properties: method: type: string enum: - cash receivedBy: description: Individual or entity that received the payment. type: string CheckInstrument: title: Check description: >- Check payment instrument object. To use this payment instrument for automatic subscription renewals, and for transactions when no specific payment instrument is provided by the user, set this as the default payment instrument. type: object required: - method properties: method: type: string enum: - check reference: description: Reference data. type: string ResourceCustomFields: description: >- Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields). type: object default: {} example: foo: bar ContactPhoneNumbers: description: List of phone numbers associated with the contact. type: array items: type: object required: - label - value properties: label: description: Phone number label or name. type: string maxLength: 45 example: main value: description: Phone number value. type: string maxLength: 50 example: 512-710-1640 primary: description: >- Specifies if the phone number is the contact's primary phone number. type: boolean example: true ContactEmails: description: List of email addresses associated with the contact. type: array items: type: object required: - label - value properties: label: description: Email label or name. type: string maxLength: 45 example: main value: description: Email address value. type: string format: email maxLength: 255 example: rebilly@example.com primary: description: >- Specifies if the email address is the contact's primary email address. type: boolean example: true ContactObject: type: object description: Contact's information. properties: firstName: description: Contact's first name. type: - string - 'null' pattern: ^[\w\s\-\p{L},.']+$ maxLength: 45 example: Benjamin lastName: description: Contact's last name. type: - string - 'null' pattern: ^[\w\s\-\p{L},.']+$ maxLength: 45 example: Franklin organization: description: Contact's organization. type: - string - 'null' pattern: ^[\w\s\-\p{L},.'&]+$ maxLength: 255 example: Rebilly address: description: First line of the contact's street address. type: - string - 'null' pattern: ^[\w\s\-\/\p{L},.#;:()'&]+$ maxLength: 60 example: 36 Craven St address2: description: Second line of the contact's street address. type: - string - 'null' pattern: ^[\w\s\-\/\p{L},.#;:()'&]+$ maxLength: 60 city: description: Contact's city of residence. type: - string - 'null' pattern: ^[\w\s\-\p{L},.']+$ maxLength: 45 example: Austin region: description: Contact's region of residence. type: - string - 'null' pattern: ^[\w\s\-\/\p{L},.#;:()']+$ maxLength: 45 example: Texas country: description: >- Contact's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/). type: - string - 'null' pattern: ^[A-Z]{2}$ maxLength: 2 example: GB postalCode: description: Contact's postal code. type: - string - 'null' pattern: ^[\w\s\-]+$ maxLength: 10 example: WC2N 5NF phoneNumbers: $ref: '#/components/schemas/ContactPhoneNumbers' emails: $ref: '#/components/schemas/ContactEmails' dob: description: Contact's date of birth in ISO-8601 `YYYY-MM-DD` format. type: - string - 'null' format: date example: '1980-04-01' jobTitle: description: Contact's job title. type: - string - 'null' pattern: ^[\w\s\-\/\p{L},.#;:()']+$ maxLength: 255 example: CEO hash: description: Use this value to compare contacts for identical attribute values. type: string maxLength: 40 example: 056ae6d97c788b9e98b049ebafd7b229bf852221 readOnly: true Company: type: - object - 'null' description: >- Company information that is associated with the customer's primary email address domain. This is a paid feature, to enable it [contact Rebilly](https://www.rebilly.com/support/). readOnly: true properties: name: type: - string - 'null' description: Name of the company. domain: type: string description: Website domain of the company. yearFounded: type: - number - 'null' description: Founding year of the company. format: integer industry: type: - string - 'null' description: Industry the company is associated with. employeesCount: type: - number - 'null' description: Number of employees in the company. format: integer country: type: - string - 'null' description: Country where the company is based. locality: type: - string - 'null' description: Locality or region where the company is based. _links: type: array items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - linkedin CustomerAverageValue: type: object readOnly: true description: Average customer value. properties: currency: description: Merchant's reporting currency. $ref: '#/components/schemas/CurrencyCode' amount: x-type: Money x-label: Average Value x-sortable: true x-basic: true description: Average approved payment amount in merchant's reporting currency. type: number format: double amountUsd: description: Average approved payment amount in USD. type: number format: double CustomerLifetimeRevenue: type: object readOnly: true description: Customer's lifetime revenue. properties: currency: description: Merchant's reporting currency. $ref: '#/components/schemas/CurrencyCode' amount: x-type: Money x-label: Lifetime Revenue x-sortable: true x-basic: true description: Revenue amount in the merchant's reporting currency. type: number format: double amountUsd: description: Revenue amount in USD. type: number format: double OrganizationId: type: string description: >- 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). maxLength: 50 example: org_0YVDM8RC7GDADADSBSMW124JA8 TaxNumber: type: object required: - type - value properties: type: type: string description: Type of the tax number. enum: - eu-vat - other example: eu-vat value: type: string description: Value of the tax number. example: GB980780684 isDefault: type: boolean description: >- Determines if the tax number is selected as default to display on invoices. example: true isValid: type: - boolean - 'null' description: >- Determines if the tax number passed the EU official [VIES validation](https://ec.europa.eu/taxation_customs/vies/#/vat-validation). example: true readOnly: true Customer: type: object description: Customer information. properties: id: type: string description: ID of the customer. readOnly: true example: cus_0YV7DDSDD1C8DA64KHH2W33CPF maxLength: 50 email: description: Customer's email address. type: - string - 'null' format: email readOnly: true x-sortable: true x-basic: true firstName: description: Customer's first name. type: - string - 'null' x-basic: true readOnly: true lastName: description: Customer's last name. type: - string - 'null' x-sortable: true x-basic: true readOnly: true websiteId: x-sortable: true allOf: - $ref: '#/components/schemas/WebsiteId' paymentToken: type: string writeOnly: true description: >- Write-only payment token. If supplied, the token is converted into a payment instrument and set as the `defaultPaymentInstrument` value. If both are supplied, the value of this property overrides the `defaultPaymentInstrument` value. The token expires after first use. defaultPaymentInstrument: anyOf: - $ref: '#/components/schemas/VaultedInstrument' - $ref: '#/components/schemas/AlternativePaymentInstrument' - $ref: '#/components/schemas/CashInstrument' - $ref: '#/components/schemas/CheckInstrument' - type: 'null' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' customFields: $ref: '#/components/schemas/ResourceCustomFields' primaryAddress: description: Customer's primary address. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' company: $ref: '#/components/schemas/Company' averageValue: $ref: '#/components/schemas/CustomerAverageValue' paymentCount: x-label: Payments x-sortable: true x-basic: true description: Total number of approved payments made by the customer. readOnly: true type: integer lastPaymentTime: x-label: Last Payment x-sortable: true x-basic: true description: Time and date of the customer's last approved payment. type: - string - 'null' format: date-time readOnly: true lifetimeRevenue: $ref: '#/components/schemas/CustomerLifetimeRevenue' invoiceCount: x-sortable: true description: >- Total number of invoices issued to the customer. This value is auto-incrementing. If this value is `0`, the record relates to a lead. A lead is a customer who has not made a payment yet. If this value is greater than or equal to `1` the record relates to a customer. readOnly: true type: integer tags: description: List of customer tags. readOnly: true type: array items: $ref: '#/components/schemas/Tag' revision: description: >- Number of times the customer's data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true isEddRequired: description: >- Specifies if Enhanced Due Diligence (EDD) is enabled for this customer. For more information, see [Enhanced Due Diligence](https://www.rebilly.com/docs/kyc-and-aml/edd/). type: boolean default: false hasFulfilledKyc: description: >- Specifies if the customer has accepted and reviewed identity and address documents, or an accepted credit file document. type: boolean readOnly: true organizationId: readOnly: true allOf: - $ref: '#/components/schemas/OrganizationId' taxNumbers: type: - array - 'null' description: Tax numbers of the customer. items: $ref: '#/components/schemas/TaxNumber' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - attachments - defaultPaymentInstrument - leadSource - website _embedded: type: object description: >- Embedded objects that are requested using the `expand` query string parameter. readOnly: true properties: leadSource: type: object CustomerTimelineCustomEvent: type: object required: - name properties: id: type: string description: ID of the customer timeline custom event. readOnly: true maxLength: 50 example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC name: description: |- Name of the customer timeline custom event type. This value must not conflict with any system event name. type: string minLength: 1 maxLength: 255 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' LeadSourceData: type: object description: Lead source information. properties: medium: description: >- Category of the lead source traffic. For example, the medium could be organic search, Google ads, Display ads, and so on. type: - string - 'null' maxLength: 512 source: description: Domain, platform, or channel from which the lead source originates. type: - string - 'null' maxLength: 512 campaign: description: Campaign name of the lead source. type: - string - 'null' maxLength: 512 term: description: Term associated with a lead source. type: - string - 'null' maxLength: 512 content: description: |- Content contained in the lead source content. For example, content could be graphics, video, and so on. type: - string - 'null' maxLength: 512 affiliate: description: Individual or entity that is affiliated with the lead source. type: - string - 'null' maxLength: 512 subAffiliate: description: >- Individual or entity that is associated with a lead source affiliate. In other products, this field may also be referred to as sub ID or click ID in some. type: - string - 'null' maxLength: 512 salesAgent: description: Name of the sales agent associated with the lead source. type: - string - 'null' maxLength: 512 clickId: description: >- ID of the lead source click. This value is passed in the ad click URL for tracking and campaign attribution. type: - string - 'null' maxLength: 512 path: description: URL from which the lead source originates. type: - string - 'null' maxLength: 512 referrer: description: >- Lead source [`referrer` URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referer). type: - string - 'null' format: url maxLength: 2083 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer LeadSource: allOf: - $ref: '#/components/schemas/LeadSourceData' - type: object properties: original: readOnly: true allOf: - $ref: '#/components/schemas/LeadSourceData' RedemptionCancelTimelineAction: description: Cancel redemption. type: object readOnly: true properties: action: type: string enum: - redemption-cancel redemptionId: $ref: '#/components/schemas/ResourceId' ResendEmailTimelineAction: type: object description: Resend email action. readOnly: true properties: action: type: string enum: - resend-email messageId: $ref: '#/components/schemas/ResourceId' RulesetRestoreTimelineAction: type: object description: Restore ruleset version. readOnly: true properties: action: type: string enum: - ruleset-restore version: type: integer description: Version of the ruleset to restore. ShowEddSearchLogsTimelineAction: type: object description: Show Enhanced Due Diligence (EDD) search logs action. readOnly: true properties: action: type: string enum: - show-edd-search-logs searchLogId: $ref: '#/components/schemas/ResourceId' type: type: string enum: - arrest - bankruptcy - fraud - occupation TimelineAction: type: object discriminator: propertyName: action mapping: redemption-cancel: '#/components/schemas/RedemptionCancelTimelineAction' resend-email: '#/components/schemas/ResendEmailTimelineAction' ruleset-restore: '#/components/schemas/RulesetRestoreTimelineAction' show-edd-search-logs: '#/components/schemas/ShowEddSearchLogsTimelineAction' oneOf: - $ref: '#/components/schemas/RedemptionCancelTimelineAction' - $ref: '#/components/schemas/ResendEmailTimelineAction' - $ref: '#/components/schemas/RulesetRestoreTimelineAction' - $ref: '#/components/schemas/ShowEddSearchLogsTimelineAction' TimelineTable: type: object description: Additional timeline message information. discriminator: propertyName: type mapping: three-columns: '#/components/schemas/ThreeColumnsTimelineTable' two-columns: '#/components/schemas/TwoColumnsTimelineTable' one-column: '#/components/schemas/OneColumnTimelineTable' list: '#/components/schemas/ListTimelineTable' properties: type: type: string enum: - list - one-columns - two-columns - three-columns title: type: string description: Data table title. footer: type: string description: Data table footer. ThreeColumnsTimelineTable: allOf: - $ref: '#/components/schemas/TimelineTable' - type: object properties: data: type: array description: Table data. Each array element represents a table row. items: type: object properties: attribute: type: string previousValue: type: string newValue: type: string example: attribute: Descriptor previousValue: test.com newValue: new-test.com TwoColumnsTimelineTable: allOf: - $ref: '#/components/schemas/TimelineTable' - type: object properties: data: type: array description: Table data. Each array element represents a table row. items: type: object properties: attribute: type: string value: type: string example: attribute: Who value: John Doe OneColumnTimelineTable: allOf: - $ref: '#/components/schemas/TimelineTable' - type: object properties: data: type: array description: Table data. Each array element represents a table row. items: type: object properties: attribute: type: string value: type: string example: attribute: Who value: John Doe ListTimelineTable: allOf: - $ref: '#/components/schemas/TimelineTable' - type: object properties: data: type: array description: Table data. Each array element represents a line. items: type: string TimelineExtraData: type: object description: Additional data. readOnly: true properties: actions: description: |- Actions available for a timeline message. If no actions are available, this field is empty. type: array minItems: 0 items: $ref: '#/components/schemas/TimelineAction' tables: description: Table data that is attached to the timeline message. type: array minItems: 0 items: $ref: '#/components/schemas/TimelineTable' author: type: object description: Author of the timeline message. properties: userFullName: description: Author's full name. type: string userId: description: Author's user ID. type: string maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 mentions: description: User mentions, or tags, in a timeline. type: object additionalProperties: type: string example: '@test@mail.com': userId-1 links: description: Links that are attached to a timeline message. type: array items: type: object properties: resourceType: type: string enum: - kyc-document - invoice - subscription - transaction - email-message - dispute - coupon - external resourceId: $ref: '#/components/schemas/ResourceId' placeholder: type: string example: KYC document externalUrl: type: string example: http://example.com ServerTimestamp: type: string description: Read-only timestamp in ISO 8601 date-time format. format: date-time readOnly: true CustomerTimeline: type: object properties: id: type: string description: ID of the customer timeline custom event. readOnly: true maxLength: 50 example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC type: description: Type of timeline message. type: string enum: - account-password-reset-requested - account-verification-requested - aml-list-was-possibly-matched - deposit-request-completed - deposit-request-created - deposit-request-expired - deposit-request-started - coupon-applied - coupon-redeemed - coupon-redemption-canceled - custom-event - custom-event-processed - custom-fields-changed - customer-bank-account-blocked - customer-blocked - customer-comment-created - customer-created - customer-merged - customer-payment-card-blocked - customer-requested-otp - customer-tagged - customer-untagged - default-payment-instrument-changed - email-message-sent - experian-check-performed - invoice-abandoned - invoice-created - invoice-disputed - invoice-issued - invoice-paid - invoice-partially-paid - invoice-partially-refunded - invoice-past-due - invoice-refunded - invoice-reissued - invoice-revenue-recognized - invoice-voided - kyc-document-accepted - kyc-document-created - kyc-document-modified - kyc-document-rejected - kyc-document-reviewed - kyc-request-fulfilled - lead-source-changed - order-activated - order-canceled - order-churned - order-completed - order-created - order-downgraded - order-paid-early - order-reactivated - order-renewed - order-upgraded - payment-card-expiration-was-modified - payment-card-expired - payment-instrument-created - payment-instrument-deactivated - primary-address-changed - quickbooks-customer-created - quickbooks-customer-task-failed - quote-canceled - quote-created - quote-expired - quote-issued - quote-order-attached - quote-recalled - quote-rejected - quote-updated - refund-was-reflected-in-invoices - subscription-paused - subscription-resumed - subscription-trial-end-changed - transaction-abandoned - transaction-amount-discrepancy-found - transaction-approved - transaction-canceled - transaction-declined - transaction-discrepancy-found - transaction-disputed - transaction-reconciled - transaction-refunded - transaction-voided - transaction-waiting-gateway customEventType: description: >- Timeline custom event type. Used with `custom-event` type. This value must be defined using the [Create customer timeline custom event type](../PostCustomerTimeline) operation. type: - string - 'null' minLength: 1 maxLength: 255 customData: description: |- Timeline custom event data. Used with `custom-event` type. Transforms to `extraData` two-column table in response. type: object writeOnly: true example: customAttribute: customValue otherAttribute: otherValue triggeredBy: description: Specifies who, or what, triggered the timeline event. type: string readOnly: true enum: - rebilly - app - direct-api message: description: Detailed message description. type: string extraData: $ref: '#/components/schemas/TimelineExtraData' occurredTime: description: Date and time when the timeline message occurred. $ref: '#/components/schemas/ServerTimestamp' _links: $ref: '#/components/schemas/SelfLink' Dispute: type: object properties: id: type: string description: ID of the dispute. readOnly: true maxLength: 50 example: dp_0YVCE8J5F2DE58FV0S8YASW4HK customerId: description: ID of the customer who is disputing a transaction. type: - string - 'null' readOnly: true maxLength: 50 example: cus_0YV7DDSDD1C8DA64KHH2W33CPF transactionId: description: ID of the disputed transaction. type: - string - 'null' maxLength: 50 example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0 currency: $ref: '#/components/schemas/CurrencyCode' amount: description: Dispute amount. type: number format: double acquirerReferenceNumber: description: Acquirer reference number for the dispute. type: - string - 'null' caseId: description: Case ID of the dispute. type: - string - 'null' reasonCode: description: >- Code used in the chargeback that describes the reason for the dispute. type: - string - 'null' maxLength: 255 reasonDescription: description: Description of the reason for the dispute. type: - string - 'null' maxLength: 512 readOnly: true category: description: Category of dispute. type: string readOnly: true enum: - fraud - authorization - processing-errors - consumer-disputes - uncategorized - bank-return type: description: Type of dispute. type: string enum: - information-request - first-chargeback - second-chargeback - arbitration - fraud - ethoca-alert - verifi-alert - bank-return - paypal-claim status: description: Status of the dispute. type: string enum: - response-needed - under-review - forfeited - won - lost - unknown postedTime: description: Date and time when the dispute is posted. type: string format: date-time deadlineTime: description: >- Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute. type: - string - 'null' format: date-time rawResponse: description: >- Raw response from the payment gateway that processed the disputed transaction. type: - string - 'null' readOnly: true resolvedTime: type: - string - 'null' format: date-time description: Date and time when the dispute is resolved. readOnly: true source: description: Source of the dispute. type: - string - 'null' readOnly: true enum: - null - api - manual - sftp - webhook revision: description: |- Number of times the dispute data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation. type: integer readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - transaction - attachments _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: transaction: type: object TransactionId: type: string description: ID of the transaction. maxLength: 50 example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0 File: type: object properties: id: type: string description: ID of the file. readOnly: true maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N name: description: Original file name. type: string extension: description: File extension. type: string description: description: Description of the file. type: string sourceType: description: Source of the file. type: - string - 'null' enum: - upload - camera - organization-export - organization-closure-export - null example: upload tags: description: List of tags associated with the file. type: array items: type: string mime: description: MIME type of the file. type: string readOnly: true enum: - image/png - image/jpeg - image/gif - application/pdf size: description: File size, in bytes. type: integer readOnly: true width: description: Image width. This field applicable to images only. type: integer readOnly: true height: description: Image height. This field applicable to images only. type: integer readOnly: true sha1: description: Hash sum of the file. type: string readOnly: true exifData: description: >- Collection of EXIF tags contained in the image metadata. This field applicable to images only. type: - object - 'null' readOnly: true example: FileSize: 120 Software: GIMP 2.4.5 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' isPublic: description: >- Specifies if the file is available publicly without authentication. If this value is `true`, the permalink in the `_links` section contains the public URL. type: boolean _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - download - signedLink - permalink FileCreateFromInline: type: object required: - file properties: file: description: File in base64 encoded format. type: string example: R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs= isPublic: description: >- Specifies if the file is available publicly without authentication. If this value is `true`, the permalink in the `_links` section contains the public URL. type: boolean example: false name: description: File name used for downloading. type: string example: logo.png description: description: Description of the file. type: string example: My file description sourceType: description: Source of the file. type: - string - 'null' enum: - upload - camera example: upload tags: description: List of tags associated with the file. type: array items: type: string example: - test - tags FileCreateFromUrl: type: object required: - url properties: url: description: URL of the file to upload. type: string example: >- https://blog.rebilly.com/wp-content/uploads/2017/09/rb_LogoInverted_Small.png isPublic: description: >- Specifies if the file is available publicly without authentication. If this value is `true`, the permalink in the `_links` section contains the public URL. type: boolean example: false name: description: File name used for downloading. type: string example: logo.png description: description: Description of the file. type: string example: My file description sourceType: description: Source of the file. type: - string - 'null' enum: - upload - camera example: upload tags: description: List of tags associated with the file. type: array items: type: string example: - test - tags ManualShipping: description: Manually set shipping amount. type: object required: - amount - calculator properties: amount: x-type: Money type: number format: double description: Shipping amount. calculator: description: Shipping calculator. type: string enum: - manual RebillyShipping: description: Rebilly-based shipping which is calculated by shipping rates. type: object required: - calculator properties: calculator: description: Shipping calculator. type: string enum: - rebilly rateId: description: >- ID of the shipping rate. If unset the cheapest applicable shipping rate is chosen. type: - string - 'null' maxLength: 50 example: shipping-123-456 amount: type: number format: double readOnly: true description: >- Shipping amount which is calculated from [Shipping rates](https://www.rebilly.com/catalog/all/shipping-rates). Shipping: description: Shipping settings. type: object discriminator: propertyName: calculator mapping: manual: '#/components/schemas/ManualShipping' rebilly: '#/components/schemas/RebillyShipping' anyOf: - $ref: '#/components/schemas/ManualShipping' - $ref: '#/components/schemas/RebillyShipping' TaxItem: type: object required: - amount - description properties: amount: description: Amount of the tax. type: number format: double description: type: string description: Description of the tax. rate: description: >- Overall sales tax rate which includes state, county, city and district tax. type: - number - 'null' format: double readOnly: true stateAmount: description: Amount of sales tax to collect for the state. type: - number - 'null' format: double example: 0.94 readOnly: true countyAmount: description: Amount of sales tax to collect for the county. type: - number - 'null' format: double example: 0.04 readOnly: true cityAmount: description: Amount of sales tax to collect for the city. type: - number - 'null' format: double example: 0 readOnly: true specialDistrictAmount: description: Amount of sales tax to collect for the special district. type: - number - 'null' format: double example: 0.38 readOnly: true stateRate: description: State sales tax rate for given location. type: - number - 'null' format: double readOnly: true countyRate: description: County sales tax rate for given location. type: - number - 'null' format: double readOnly: true cityRate: description: City sales tax rate for given location. type: - number - 'null' format: double readOnly: true specialDistrictRate: description: Special district sales tax rate for given location. type: - number - 'null' format: double readOnly: true jurisdictions: description: Jurisdiction names for the invoice. type: - object - 'null' readOnly: true properties: country: description: Two-letter ISO country code for the provided location. type: - string - 'null' example: US readOnly: true state: description: Postal abbreviated state name for the provided location. type: - string - 'null' example: CA readOnly: true county: description: County name for the provided location. type: - string - 'null' example: LOS ANGELES readOnly: true city: description: City name for the provided location. type: - string - 'null' example: LOS ANGELES readOnly: true ManualTax: type: object description: Manual tax calculator. required: - calculator - items properties: calculator: description: Type of tax calculator. type: string enum: - manual amount: type: integer x-type: Money x-sortable: true description: Total amount of taxes. readOnly: true items: type: array description: Taxes applied. items: $ref: '#/components/schemas/TaxItem' RebillyTaxJarTax: type: object description: TaxJar tax calculator. required: - calculator properties: calculator: description: Type of tax calculator. type: string enum: - rebilly-taxjar amount: type: integer x-type: Money x-sortable: true description: Total amount of taxes. readOnly: true items: type: array description: >- Taxes applied and calculated based on the `taxCategoryId` of the related product. items: $ref: '#/components/schemas/TaxItem' RebillyAvalaraTax: type: object description: Avalara tax calculator. required: - calculator properties: calculator: description: Type of tax calculator. type: string enum: - rebilly-avalara amount: type: integer x-type: Money x-sortable: true description: Total amount of taxes. readOnly: true items: type: array description: >- Taxes applied and calculated based on the `taxCategoryId` of the related product. items: $ref: '#/components/schemas/TaxItem' Taxes: description: Taxes. type: object discriminator: propertyName: calculator mapping: manual: '#/components/schemas/ManualTax' rebilly-taxjar: '#/components/schemas/RebillyTaxJarTax' rebilly-avalara: '#/components/schemas/RebillyAvalaraTax' anyOf: - $ref: '#/components/schemas/ManualTax' - $ref: '#/components/schemas/RebillyTaxJarTax' - $ref: '#/components/schemas/RebillyAvalaraTax' InvoiceItem: type: object required: - type - unitPrice properties: id: type: string description: ID of the invoice item. readOnly: true maxLength: 50 example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV type: description: Type of invoice item. type: string x-basic: true enum: - debit - credit description: description: Description of the invoice item. type: string maxLength: 1000 unitPrice: description: Unit price of the invoice item. type: number format: double quantity: description: Quantity of the invoice item. type: integer price: description: Total price of the invoice item. type: number format: double readOnly: true productId: type: - string - 'null' description: ID of the product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ planId: type: - string - 'null' description: ID of the plan. maxLength: 50 readOnly: true example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X subscriptionId: type: - string - 'null' description: ID of the order. maxLength: 50 readOnly: true example: sub_01HRF27SATGE4Z6PBJE6PD8328 discountAmount: description: Discount amount applied to the invoice item. type: number format: double readOnly: true periodStartTime: description: Date and time when the billing period starts. type: - string - 'null' format: date-time periodEndTime: description: Date and time when the billing period ends. type: - string - 'null' format: date-time periodNumber: description: >- Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3. type: - integer - 'null' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' tax: description: Invoice item tax. readOnly: true oneOf: - $ref: '#/components/schemas/TaxItem' - type: 'null' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - product - subscription - plan _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: product: type: object plan: type: object GatewayName: description: Payment gateway name. type: - string - 'null' enum: - A1Gateway - ACI - Adyen - Aircash - Airpay - Airwallex - AmazonPay - AmexVPC - ApcoPay - AsiaPaymentGateway - AstroPayCard - AuthorizeNet - Awepay - Bambora - BankSEND - BitPay - BlueSnap - BraintreePayments - Buckaroo - BVNK - Cardknox - Cashflows - CASHlib - Cashterminal - CashToCode - CauriPayment - Cayan - CCAvenue - Chase - CheckoutCom - Chillstock - Circle - Citadel - Clearhaus - Cleo - CODVoucher - Coinbase - CoinGate - CoinPayments - Conekta - Coppr - Credorax - Cryptonator - CyberSource - DataCash - Dengi - Dimoco - Directa24 - dLocal - Dragonphoenix - Dropayment - EasyPayDirect - EBANX - ecoPayz - EcorePay - Elavon - Euteller - eMerchantPay - EMS - ePay - EPG - EPro - Ezeebill - eZeeWallet - ezyEFT - FasterPay - Finrax - Flexepin - FinTecSystems - FundSend - Forte - GET - Gigadat - GlobalOnePay - Gooney - Gpaysafe - Greenbox - HiPay - iCanPay - ICEPAY - iCheque - iDebit - Ilixium - Ingenico - INOVAPAY - Inovio - Intuit - InstaDebit - IpayOptions - JetPay - Jeton - JPMOrbital - Khelocard - Klarna - Konnektive - LaCore - loonie - LPG - MaxiCash - MercadoPago - MiFinity - MobilePay - Moneris - MtaPay - MuchBetter - MuchBetterGateway - MyFatoorah - Neosurf - Netbanking - Neteller - NGenius - NinjaWallet - NMI - NordikCoin - NOWPayments - NuaPay - OchaPay - Onlineueberweisen - OnRamp - Orbital - Pagadito - Pagsmile - Panamerican - ParamountCommerce - ParamountEft - ParamountInterac - PandaGateway - Pay4Fun - PayCash - PayClub - PayEcards - Payeezy - Payflow - Paynote - PaymentAsia - PaymenTechnologies - PaymentsOS - Paymero - PayPal - Payper - Payr - PayRedeem - PayRetailers - Paysafe - Paysafecard - Paysafecash - PayTabs - PayULatam - Payvision - PharosPayments - Piastrix - Pin4Pay - Plugnpay - PostFinance - PPRO - Prosa - PSiGate - Rapyd - Realex - Realtime - Redsys - Rotessa - RPN - Safecharge - SaltarPay - Sagepay - SeamlessChex - SecureTrading - SecurionPay - Skrill - SmartInvoice - SMSVoucher - Sofort - SparkPay - StaticGateway - STPMexico - Stripe - Telr - TestProcessor - ToditoCash - Truevo - TrustsPay - Trustly - TWINT - Unlimit - UPayCard - USAePay - VantivLitle - vegaaH - VCreditos - VegaWallet - Wallet88 - Walpay - WesternUnion - Wirecard - WorldlineAtosFrankfurt - Worldpay - XPay - Zimpler - Zotapay AcquirerName: description: Acquirer name. type: - string - 'null' enum: - Adyen - ACI - Alipay - AIB - Aircash - Airpay - AmazonPay - ApcoPay - AsiaPaymentGateway - AstroPay Card - Awepay - Ipay Options - B+S - Bambora - BitPay - Bank of America - Bank of Moscow - Bank of Rebilly - Bank One - BankSEND - BMO Harris Bank - Borgun - BraintreePayments - Buckaroo - BVNK - Cardknox - CASHlib - Cashterminal - CashToCode - Catalunya Caixa - CCAvenue - Chase - CheckoutCom - Chillstock - ChinaUnionPay - CIM - Circle - Citadel - Clearhaus - Cleo - CODVoucher - Coinbase - CoinGate - CoinPayments - Conekta - Coppr - Credorax - Cryptonator - CyberSource - Dimoco - dLocal - Dragonphoenix - Dropayment - EasyPayDirect - EBANX - ecoPayz - EcorePay - Elavon - EMS - ePay - EPG - Euteller - Ezeebill - eZeeWallet - ezyEFT - Fifth Third Bank - Finrax - First Data Buypass - First Data Nashville - First Data North - First Data Omaha - FinTecSystems - Flexepin - Forte - FundSend - Gigadat - Global East - Gooney - Gpaysafe - Heartland - HiPay - HSBC - iCanPay - ICEPAY - iCheque - Ilixium - Ingenico - INOVAPAY - Intuit - Jeton - JPMOrbital - Khelocard - Klarna - Konnektive - loonie - LPG - Masapay - MaxiCash - MercadoPago - Merrick - Mission Valley Bank - MiFinity - MobilePay - Moneris - MuchBetter - MuchBetterGateway - MyFatoorah - NATWEST - Neosurf - Netbanking - Neteller - NinjaWallet - NMI - NordikCoin - NOWPayments - NuaPay - Nuvei - OchaPay - Onlineueberweisen - OnRamp - Orbital - Other - Panamerican - Panda Bank - Paramount - ParamountCommerce - ParamountEft - ParamountInterac - Pay4fun - PayCash - PayClub - PayEcards - PaymentAsia - PaymenTechnologies - PaymentsOS - Paymero - Paynetics - PayPal - Payper - Payr - PayRedeem - PayRetailers - PayTabs - PayULatam - Payvision - PharosPayments - Piastrix - Pin4Pay - Peoples Trust Company - PostFinance - PPRO - Privatbank - Prosa - PSiGate - QQPay - Rapyd - RBC - RBS WorldPay - RealTime - Rotessa - Safecharge - SaltarPay - SecureTrading - SecurionPay - Skrill - SmartInvoice - SMSVoucher - Sofort - SparkPay - State Bank of Mauritius - STPMexico - Stripe - TBI - Telr - TestProcessor - ToditoCash - Truevo - Trustly - TrustPay - TrustsPay - TSYS - TWINT - UPayCard - Vantiv - VCreditos - VegaWallet - VoicePay - Wallet88 - WeChat Pay - Wells Fargo - Wing Hang Bank - Wirecard - WorldPay - XPay - Zimpler - Zotapay MoneyAmount: type: number format: double example: 10 x-type: Money Money: type: object required: - amount - currency properties: amount: $ref: '#/components/schemas/MoneyAmount' currency: $ref: '#/components/schemas/CurrencyCode' LanguageIsoCode: type: string description: Language in ISO 639-1 code format. pattern: '[a-zA-Z]{2}' example: US PurchaseBumpOffer: type: - object - 'null' description: Purchase bump offer. required: - offerId - offerType - bumpAmount properties: offerId: description: ID of the bump offer. type: string offerType: description: Type of bump offer. type: string example: bonus bumpAmount: description: Amount of the bump offer. $ref: '#/components/schemas/MoneyAmount' bumpAmountInUsd: description: Amount of the bump offer in USD. readOnly: true allOf: - $ref: '#/components/schemas/MoneyAmount' customFields: $ref: '#/components/schemas/ResourceCustomFields' HttpHeaders: type: object description: HTTP headers. additionalProperties: type: string example: Content-Type: application/json Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 x-is-free-form: true RiskMetadata: type: object title: Risk metadata description: Risk metadata used for 3D Secure and risk scoring. properties: ipAddress: description: Customer's IP address. type: - string - 'null' format: ipv4 or ipv6 example: 93.92.91.90 fingerprint: description: >- Customer's device fingerprint. A device fingerprint is a unique token that is used to identify the customer. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more. type: - string - 'null' maxLength: 50 example: pIUt3xbgX3l9g3YDiLbx httpHeaders: oneOf: - $ref: '#/components/schemas/HttpHeaders' - type: 'null' browserData: type: - object - 'null' description: Browser data used for 3D Secure and risk scoring. required: - colorDepth - isJavaEnabled - language - screenWidth - screenHeight - timeZoneOffset properties: colorDepth: description: >- Browser color depth in bits per pixel. This value is obtained using the `screen.colorDepth` property. type: integer minimum: 1 maximum: 48 example: 24 isJavaEnabled: description: >- Specifies if Java is enabled in a browser. This value is obtained from the `navigator.javaEnabled` property. type: boolean language: description: >- Browser language settings. This value is obtained from the `navigator.language` property. type: string example: en-US maxLength: 8 screenWidth: description: >- Width of the browser screen. This value is obtained from the `screen.width` property. type: integer minimum: 0 maximum: 65535 example: 1920 screenHeight: description: >- Height of the browser screen. This value is obtained from the `screen.height` property. type: integer minimum: 0 maximum: 65535 example: 1080 timeZoneOffset: description: >- Browser time zone offset in minutes from UTC. A positive offset indicates that the local time is behind UTC. A negative offset indicates that the local time is ahead of UTC. You can find this value using the `(new Date()).getTimezoneOffset()` property. type: integer minimum: -1410 maximum: 1410 example: 300 isAdBlockEnabled: description: >- Specifies if the usage of ad block has been detected in the browser. type: boolean extraData: type: - object - 'null' description: Third-party data used for risk scoring. properties: kountFraudSessionId: description: Alpha-numeric `fraudSessionId` as provided by the Kount SDK. type: string minimum: 10 maximum: 32 example: abcdefg12345abababab123456789012 payPalMerchantSessionId: description: >- PayPal `MerchantSessionID` as generated by the PayPal Fraudnet SDK. type: string minimum: 1 maximum: 64 example: dd65ratxc5qv15iph3vyoq7l6davuowa threatMetrixSessionId: description: >- Temporary identifier that is unique to the visitor's session and passed to ThreatMetrix. pattern: '[a-zA-Z0-9_-]+' type: string minimum: 1 maximum: 128 example: dd65ratxc5qv15iph3vyoq7l6davuowadd65ratxc5qv15iph3vyoq7l6davuowa isProxy: description: Specifies if the customer's IP address is related to a proxy. type: boolean readOnly: true isVpn: description: Specifies if the customer's IP address is related to a VPN. type: boolean readOnly: true isTor: description: Specifies if the customer's IP address is related to TOR. type: boolean readOnly: true isHosting: description: Specifies if the customer's IP address is related to hosting. type: boolean readOnly: true hostingName: description: Name of the data center or hosting provider, if available. type: - string - 'null' readOnly: true isp: description: Internet Service Provider (ISP) name, if available. type: - string - 'null' readOnly: true country: description: Country ISO Alpha-2 code of the specified IP address. maxLength: 2 type: - string - 'null' readOnly: true example: US region: description: Region of the specified IP address. type: - string - 'null' readOnly: true example: NY city: description: City of the specified IP address. type: - string - 'null' readOnly: true example: New York latitude: description: Latitude of the specified IP address. type: number format: double readOnly: true longitude: description: Longitude of the specified IP address. type: - number - 'null' format: double readOnly: true postalCode: description: Postal code of the specified IP address. type: - string - 'null' maxLength: 10 readOnly: true timeZone: description: Time zone of the specified IP address. type: - string - 'null' readOnly: true example: America/New_York accuracyRadius: description: Accuracy radius of the specified IP address, in kilometers. type: - integer - 'null' readOnly: true distance: description: >- Distance between the customer's IP address and the billing address geolocation, in kilometers. type: - integer - 'null' readOnly: true hasMismatchedBillingAddressCountry: description: >- Specifies if the customer's billing address country and geo-IP address are not the same. type: boolean readOnly: true hasMismatchedBankCountry: description: >- Specifies if the customer's bank country and geo-IP address are not the same. type: boolean readOnly: true hasMismatchedTimeZone: description: >- Specifies if the customer's browser time zone and the IP address associated time zone are not the same. type: boolean readOnly: true hasMismatchedHolderName: description: >- Specifies if the customer's billing address name and primary address name are not the same. type: boolean readOnly: true hasFakeName: description: Specifies if the holder name seems fake. type: boolean readOnly: true isHighRiskCountry: description: >- Specifies if the geo-IP country, or the customer's billing country, is considered a high risk country. type: boolean readOnly: true paymentInstrumentVelocity: description: >- Number of transactions for this payment instrument, based on fingerprint, in the last 24 hours. type: integer readOnly: true declinedPaymentInstrumentVelocity: description: >- Number of declined transactions for this payment instrument fingerprint in the last 24 hours. type: integer readOnly: true deviceVelocity: description: >- Number of transactions for this device, based on fingerprint, in the last 24 hours. type: integer readOnly: true ipVelocity: description: Number of transactions for this IP address in the last 24 hours. type: integer readOnly: true emailVelocity: description: Number of transactions for this email address in the last 24 hours. type: integer readOnly: true billingAddressVelocity: description: >- Number of transactions for this billing address in the last 24 hours. type: integer readOnly: true paymentInstrumentApprovedTransactionCount: description: Number of approved transactions for this payment instrument. type: integer readOnly: true score: description: |- Computed risk score based on IP risk data, such as: `isVpn`, `isTor`, and `isProxy`. type: integer readOnly: true TransactionLimitAmount: type: - object - 'null' title: LimitAmount description: Transaction amount limit information. properties: amount: type: number format: double example: 275.35 description: Limit amount. currency: $ref: '#/components/schemas/CurrencyCode' resetTime: type: - string - 'null' format: date-time description: |- Date and time in which the limit amount resets. This value may be used for user interfaces. Transaction: type: object description: Transaction information. properties: id: readOnly: true $ref: '#/components/schemas/TransactionId' websiteId: readOnly: true allOf: - $ref: '#/components/schemas/WebsiteId' customerId: x-basic: true x-sortable: true allOf: - $ref: '#/components/schemas/CustomerId' type: description: Type of transaction. type: string x-basic: true readOnly: true enum: - 3ds-authentication - authorize - capture - credit - refund - sale - setup - void status: description: Status of the transaction. type: string readOnly: true enum: - completed - conn-error - disputed - never-sent - offsite - partially-refunded - pending - refunded - sending - timeout - voided - waiting-approval - waiting-capture - waiting-gateway - waiting-refund result: description: Result of the transaction. type: string x-basic: true readOnly: true enum: - abandoned - approved - canceled - declined - unknown amount: x-type: Money x-sortable: true x-basic: true description: Total amount of the transaction. type: number format: double readOnly: true currency: readOnly: true $ref: '#/components/schemas/CurrencyCode' purchaseAmount: description: >- Amount by which the purchase is completed. If an adjustment occurs, the purchased amount may differ from the requested amount. type: number format: double x-type: Money x-currency-field: purchaseCurrency x-sortable: true readOnly: true purchaseCurrency: readOnly: true $ref: '#/components/schemas/CurrencyCode' requestAmount: description: |- Amount of the payment request. If an adjustment occurs, the purchase amount may differ from the billing amount. type: number x-type: Money x-currency-field: requestCurrency format: double readOnly: true requestCurrency: readOnly: true $ref: '#/components/schemas/CurrencyCode' parentTransactionId: description: ID of the parent transaction. type: - string - 'null' $ref: '#/components/schemas/TransactionId' childTransactions: description: IDs of child transactions. readOnly: true type: array items: $ref: '#/components/schemas/ResourceId' invoiceIds: description: Related invoice IDs. readOnly: true type: array items: $ref: '#/components/schemas/ResourceId' subscriptionIds: description: Subscription IDs of invoices that are related to the transaction. readOnly: true type: array items: $ref: '#/components/schemas/ResourceId' planIds: description: Plan IDs of orders that are related to the transaction. readOnly: true type: array items: $ref: '#/components/schemas/ResourceId' isRebill: description: >- Specifies if the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees. type: boolean readOnly: true rebillNumber: description: >- Rebill number of the transaction. A rebill number is the number of recurring payments in a subscription, excluding trials or setup fees. type: integer readOnly: true x-sortable: true billingAddress: description: Billing address. $ref: '#/components/schemas/ContactObject' has3ds: description: Specifies if the transaction uses 3D Secure. type: boolean readOnly: true 3ds: type: object description: Authentication object. readOnly: true properties: server: description: Name of the 3D Secure server. type: string version: description: Version of 3D Secure. type: string enum: - 1.0.2 - 2.1.0 - 2.2.0 enrolled: description: Specifies if the cardholder is enrolled in 3D Secure. type: string enum: - 'yes' - 'no' - invalid card/timeout - unavailable authenticated: description: Authentication response status for 3D Secure. type: string enum: - 'yes' - 'no' - not applicable - attempted liability: type: string enum: - protected - not protected - protected (attempt) flow: description: Authentication flow for 3D Secure 2. type: string enum: - frictionless - challenge isDowngraded: description: >- Specifies if 3D Secure 2 is attempted and downgraded to 3D Secure 1. type: boolean default: false deprecated: true redirectUrl: description: >- URL where the end-user is redirected to when an offsite transaction is completed. The default value is the website URL. type: - string - 'null' format: uri retryNumber: type: integer readOnly: true description: Position of the transaction in the sequence of retries. x-sortable: true isRetry: type: boolean readOnly: true description: Specifies if a transaction is a retry. billingDescriptor: type: - string - 'null' readOnly: true description: >- Billing descriptor that appears on the periodic billing statement. For a credit card statement, this field commonly contains 12 or fewer characters. description: type: string description: Description of the payment. maxLength: 255 requestId: description: >- Request ID of the transaction. This ID must be unique within a 24 hour period. Use this field to prevent duplicated transactions. type: string x-sortable: true hasAmountAdjustment: description: Specifies if the transaction has amount adjustment. type: boolean readOnly: true gatewayName: readOnly: true description: >- Name of the payment gateway that processed, or is selected to process, the transaction. This value is only available after a gateway is selected for the transaction. x-label: Gateway x-basic: true allOf: - $ref: '#/components/schemas/GatewayName' customFields: $ref: '#/components/schemas/ResourceCustomFields' processedTime: description: Date and time when the transaction is processed. x-sortable: true x-basic: true $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' gatewayAccountId: type: - string - 'null' description: ID of the gateway account that processed the transaction. maxLength: 50 example: gw_acc_0YVCXMF26DDNKAERE5NW727S34 readOnly: true gatewayTransactionId: description: ID of the gateway transaction. readOnly: true type: - string - 'null' maxLength: 50 example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0 gateway: type: object description: Related gateway information. readOnly: true properties: response: description: Gateway response. type: object properties: code: description: Gateway response code. type: - string - 'null' message: description: Gateway response message. type: - string - 'null' type: description: Gateway response type. type: - string - 'null' originalCode: description: Raw, unmapped gateway response code. type: - string - 'null' originalMessage: description: Raw, unmapped gateway response message. type: - string - 'null' avsResponse: description: Gateway Address Verification System (AVS) response. type: object properties: code: description: Response code. type: - string - 'null' message: description: Response message. type: - string - 'null' originalCode: description: Raw response code. type: - string - 'null' originalMessage: description: Raw response message. type: - string - 'null' cvvResponse: description: Gateway Card Verification Value (CVV) response. type: object properties: code: description: Response code. type: - string - 'null' message: description: Response message. type: - string - 'null' originalCode: description: Raw response code. type: - string - 'null' originalMessage: description: Raw response message. type: - string - 'null' acquirerName: readOnly: true description: >- Acquirer name. This value is only available when a transaction uses a payment gateway. If a transaction does not use a payment gateway, this value is `null`. allOf: - $ref: '#/components/schemas/AcquirerName' method: deprecated: true description: |- Payment method. >**Note:** Use `paymentInstrument.method` instead. allOf: - $ref: '#/components/schemas/PaymentMethod' velocity: description: Number of transactions by the same customer in the past 24 hours. type: integer revision: description: >- Number of times the transaction data has been modified. This revision number is useful when analyzing webhook data to determine if the change takes precedence over the current representation. type: integer readOnly: true referenceData: description: Transaction reference data. type: - object - 'null' additionalProperties: type: string example: gatewayTransactionId: GAT123 readOnly: true bin: description: Payment card Bank Identification Number (BIN). x-label: BIN type: - string - 'null' format: bin readOnly: true paymentInstrument: type: object anyOf: - $ref: '#/components/schemas/VaultedInstrument' - $ref: '#/components/schemas/AlternativePaymentInstrument' - $ref: '#/components/schemas/CashInstrument' - $ref: '#/components/schemas/CheckInstrument' hasDcc: description: >- Specifies if Dynamic Currency Conversion (DCC) applies to the transaction. type: boolean readOnly: true dcc: description: |- Detailed Dynamic currency conversion (DCC). If DCC is not applied to the transaction, this value is `null`. type: - object - 'null' readOnly: true properties: base: description: Initial amount and currency to convert from. $ref: '#/components/schemas/Money' quote: description: Suggested amount and currency to convert to. $ref: '#/components/schemas/Money' usdMarkup: description: Markup amount converted to USD. $ref: '#/components/schemas/MoneyAmount' outcome: type: string description: Dynamic currency conversion outcome. enum: - rejected - selected - unknown hasBumpOffer: description: >- Specifies if the transaction has a bump offer. A bump offer is a discount, purchase bonus, deal, that is offered to the customer during checkout. type: boolean readOnly: true bumpOffer: description: >- Bump offer information. If the transaction does not have an associated bump offer, this value is `null`. type: - object - 'null' readOnly: true properties: order: description: Initial amount and currency. $ref: '#/components/schemas/Money' version: type: string description: |- Name of the version selected. This field is useful to measure split tests. language: description: |- Language in which the bump offer displays to the user. This field in useful to find translation issues. $ref: '#/components/schemas/LanguageIsoCode' outcome: type: string readOnly: true description: Status of the bump offer. enum: - presented - rejected - selected - unknown presentedOffers: type: array readOnly: true description: Offers presented to a customer. minItems: 1 items: $ref: '#/components/schemas/PurchaseBumpOffer' selectedOffer: readOnly: true description: |- Offer selected by a customer. If a bump offer outcome is not `selected`, this value is `null`. allOf: - $ref: '#/components/schemas/PurchaseBumpOffer' riskScore: description: Risk score for the transaction. type: integer readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' notificationUrl: description: >- URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly. type: - string - 'null' format: uri isDisputed: description: Specifies if a transaction is disputed. type: boolean readOnly: true disputeTime: description: |- Date and time when the dispute is created. If the transaction is not disputed, this value is `null`. type: - string - 'null' format: date-time readOnly: true x-sortable: true disputeStatus: description: Status of the dispute. type: - string - 'null' readOnly: true enum: - null - response-needed - under-review - forfeited - won - lost - unknown isReconciled: description: Specifies if the transaction is verified with gateway batch data. type: boolean readOnly: true isProcessedOutside: description: Specifies if the transaction is processed outside of Rebilly. type: boolean isMerchantInitiated: description: Specifies if the transaction is initiated by the merchant. type: boolean hadDiscrepancy: description: >- Specifies if the transaction is updated due to a discrepancy with its source of truth. type: boolean readOnly: true orderId: deprecated: true description: |- Order ID of the transaction. This ID must be unique within a 24 hour period. > **Note:** Use the `requestId` field instead. type: string x-sortable: true arn: x-label: ARN type: - string - 'null' readOnly: true description: Acquirer reference number. example: '74836950144358910018150' reportAmount: description: >- Transaction amount converted to the report currency of the organization. type: number x-type: Money x-sortable: true x-currency-field: reportCurrency format: double readOnly: true reportCurrency: readOnly: true $ref: '#/components/schemas/CurrencyCode' settlementTime: type: - string - 'null' description: >- Date and time when the transaction is settled by the banking institution. format: date-time readOnly: true x-sortable: true discrepancyTime: type: - string - 'null' description: Date and time of the most recent discrepancy on the transaction. format: date-time readOnly: true x-sortable: true limits: $ref: '#/components/schemas/TransactionLimitAmount' organizationId: readOnly: true allOf: - $ref: '#/components/schemas/OrganizationId' depositRequestId: readOnly: true type: - string - 'null' description: >- ID of the deposit request if applicable. The created transaction is based on the properties of this deposit request. maxLength: 50 example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7 payoutRequestId: readOnly: true type: - string - 'null' description: >- ID of the payout request if applicable. The created transaction is based on the properties of this payout request. maxLength: 50 example: pout_req_0YVJ65BSGYC3EAT58SEX8KY6J7 _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - attachments - website - customer - gatewayAccount - paymentCard - parentTransaction - leadSource - approvalUrl - refundUrl - updateUrl - disputes - invoices - queryUrl - redirectUrl _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: parentTransaction: type: object childTransactions: type: array maxItems: 10 description: Most recent child transactions. gatewayAccount: type: object customer: type: object leadSource: type: object website: type: object invoices: type: array maxItems: 10 description: Most recent related invoices. organization: type: object dispute: type: object paymentCard: type: object bankAccount: type: object TimeUnit: type: string enum: - second - minute - hour - day - month - year TimePluralUnit: type: string enum: - seconds - minutes - hours - days - months - years TimeIso8601Extended: description: Extended ISO-8601 format of time. type: string format: time pattern: >- ^(([01][0-9]|2[0-3]):([0-5][0-9])(?::([0-5][0-9]))?)((?:[+-](?:0[0-9]|1[12])(?::?[0-5][0-9])?)|Z)?$ SchedulingMethodDayOfMonth: type: object properties: method: type: string enum: - day-of-month day: type: integer minimum: 1 maximum: 31 description: |- Day of the month in which the event occurs. If the month has less days, the last day of the month is selected. time: $ref: '#/components/schemas/TimeIso8601Extended' required: - day - method SchedulingMethodDayOfWeek: type: object properties: method: type: string enum: - day-of-week day: description: Day of the week when the event occurs. type: string enum: - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday week: type: string enum: - next - first-in-month - last-in-month time: $ref: '#/components/schemas/TimeIso8601Extended' required: - day - week - method PeriodAnchor: type: object description: Instruction for calculating the period anchor. discriminator: propertyName: method mapping: day-of-month: '#/components/schemas/SchedulingMethodDayOfMonth' day-of-week: '#/components/schemas/SchedulingMethodDayOfWeek' anyOf: - $ref: '#/components/schemas/SchedulingMethodDayOfMonth' - $ref: '#/components/schemas/SchedulingMethodDayOfWeek' SchedulingMethodDateInterval: type: object properties: method: type: string enum: - date-interval duration: type: integer description: Number of time units. minimum: 1 unit: description: Unit of time. oneOf: - $ref: '#/components/schemas/TimeUnit' - $ref: '#/components/schemas/TimePluralUnit' anchor: $ref: '#/components/schemas/PeriodAnchor' required: - duration - unit - method SchedulingMethodImmediately: type: object required: - method properties: method: type: string enum: - immediately SchedulingMethodIntelligent: type: object properties: method: type: string enum: - intelligent duration: type: integer description: >- Latest point in time at which the event should occur. The event occurs at a random time between the initial time and duration time. minimum: 1 unit: description: Unit of time. oneOf: - $ref: '#/components/schemas/TimeUnit' - $ref: '#/components/schemas/TimePluralUnit' required: - duration - unit - method InvoiceRetryScheduleInstruction: type: object description: Specifies when the payment retry instruction is performed. discriminator: propertyName: method mapping: date-interval: '#/components/schemas/SchedulingMethodDateInterval' day-of-month: '#/components/schemas/SchedulingMethodDayOfMonth' day-of-week: '#/components/schemas/SchedulingMethodDayOfWeek' immediately: '#/components/schemas/SchedulingMethodImmediately' intelligent: '#/components/schemas/SchedulingMethodIntelligent' anyOf: - $ref: '#/components/schemas/SchedulingMethodDateInterval' - $ref: '#/components/schemas/SchedulingMethodDayOfMonth' - $ref: '#/components/schemas/SchedulingMethodDayOfWeek' - $ref: '#/components/schemas/SchedulingMethodImmediately' - $ref: '#/components/schemas/SchedulingMethodIntelligent' AmountAdjustmentPoliciesNone: title: None type: object properties: method: type: string enum: - none description: No payment amount adjustment. AmountAdjustmentPoliciesDiscountAmountRemaining: title: Discount remaining amount type: object properties: method: type: string enum: - discount-amount-remaining description: Discount the remaining amount on the invoice. AmountAdjustmentInstructionPartial: type: object required: - method - value - type properties: method: type: string enum: - partial value: description: Amount of the payment. type: number format: float type: description: Payment amount type. type: string enum: - percent - fixed afterApprovalPolicy: description: >- After an approved payment retry for an adjusted amount, this field specifies whether to discount the remaining invoice amount. discriminator: propertyName: method mapping: none: '#/components/schemas/AmountAdjustmentPoliciesNone' discount-amount-remaining: >- #/components/schemas/AmountAdjustmentPoliciesDiscountAmountRemaining oneOf: - $ref: '#/components/schemas/AmountAdjustmentPoliciesNone' - $ref: >- #/components/schemas/AmountAdjustmentPoliciesDiscountAmountRemaining AmountAdjustmentInstructionNone: type: object required: - method properties: method: type: string enum: - none InvoiceRetryAmountAdjustmentInstruction: type: object description: Specifies if the payment amount must be adjusted for the retry. discriminator: propertyName: method mapping: partial: '#/components/schemas/AmountAdjustmentInstructionPartial' none: '#/components/schemas/AmountAdjustmentInstructionNone' oneOf: - $ref: '#/components/schemas/AmountAdjustmentInstructionPartial' - $ref: '#/components/schemas/AmountAdjustmentInstructionNone' Invoice: required: - customerId - currency - websiteId properties: id: type: string description: ID of the invoice. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT websiteId: $ref: '#/components/schemas/WebsiteId' invoiceNumber: description: >- Auto-incrementing number based on the sequence of invoices for any particular customer. readOnly: true type: integer x-basic: true orderId: description: ID of the order (experimental). readOnly: true example: ord_01GYJPRKHBD6ZYHH897QCJMBS4 type: - string - 'null' subscriptionId: type: string description: |- ID of the related subscription order, if available. This field is `null` if there are no related subscription orders. readOnly: true maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 quoteId: type: - string - 'null' description: |- ID of the related quote, if available. This field is `null` if there are no related quotes. readOnly: true maxLength: 50 example: qt_0YV7DES3WPC5J8JD8QTVNZBZNZ currency: x-sortable: true x-basic: true $ref: '#/components/schemas/CurrencyCode' amount: description: Amount of the invoice. type: number x-type: Money x-sortable: true x-basic: true format: double readOnly: true amountDue: description: Amount that is due on the invoice. type: number x-type: Money x-sortable: true format: double readOnly: true subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double readOnly: true discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double readOnly: true shipping: $ref: '#/components/schemas/Shipping' tax: $ref: '#/components/schemas/Taxes' organizationTaxIdNumber: description: Organization tax ID number that is displayed on the invoice. type: - object - 'null' required: - type - value properties: type: type: string description: Type of the tax ID number. enum: - eu-vat - other example: eu-vat value: type: string description: Value of the tax ID number. example: GB980780684 customerTaxIdNumber: description: Customer tax ID number that is displayed on the invoice. type: - object - 'null' required: - type - value properties: type: type: string description: Type of the tax ID number. enum: - eu-vat - other example: eu-vat value: type: string description: Value of the tax ID number. example: GB980780684 billingAddress: description: Billing address of the invoice. $ref: '#/components/schemas/ContactObject' deliveryAddress: description: Delivery address of the invoice. $ref: '#/components/schemas/ContactObject' poNumber: description: Purchase order number that is displayed on the invoice. type: - string - 'null' example: PO123456 maxLength: 50 notes: description: Notes for the customer that are displayed on the invoice. type: string maxLength: 65535 items: type: array description: Invoice items array. readOnly: true items: $ref: '#/components/schemas/InvoiceItem' discounts: type: array description: Discounts applied. readOnly: true items: type: object readOnly: true properties: couponId: type: string description: ID of the coupon. maxLength: 50 example: cpn_0YVCNKF81GD778N4YNVGDJK558 redemptionId: description: ID of the redemption. $ref: '#/components/schemas/ResourceId' amount: description: Total amount discounted by this coupon. type: number format: double description: type: string description: Description of the discount. context: $ref: '#/components/schemas/DiscountContext' autopayScheduledTime: description: Date and time when an automatic payment (autopay) is scheduled. type: - string - 'null' x-sortable: true format: date-time autopayRetryNumber: description: >- Number of times that an automatic payment (autopay) has been attempted on an invoice. readOnly: true type: integer x-sortable: true minimum: 0 default: 0 status: type: string description: Status of the invoice. x-basic: true readOnly: true enum: - draft - quotation - unpaid - paid - partially-paid - past-due - abandoned - voided - partially-refunded - refunded - disputed delinquentCollectionPeriod: type: integer description: >- Length of time, in days, between when the invoice is due and when the invoice is paid. x-sortable: true readOnly: true collectionPeriod: type: integer x-sortable: true description: >- Length of time, in days, between when the invoice is issued and when the invoice is paid. readOnly: true abandonedTime: description: Date and time when the invoice is abandoned. x-sortable: true type: - string - 'null' format: date-time readOnly: true voidedTime: description: Date and time when the invoice is voided. x-sortable: true type: - string - 'null' format: date-time readOnly: true paidTime: x-label: Payment Date x-sortable: true x-basic: true description: Date and time when the invoice is paid. type: - string - 'null' format: date-time readOnly: true dueTime: description: Date and time when the invoice is due for payment. type: string x-sortable: true format: date-time issuedTime: description: Date and time when the invoice is issued. x-label: Date Issued x-sortable: true x-basic: true $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' paymentFormUrl: type: - string - 'null' readOnly: true format: url description: |- URL where the customer is redirected to pay the invoice using one of the methods which are available to the customer. This is an alternative to creating a new transaction with empty `methods`. customerId: x-basic: true allOf: - $ref: '#/components/schemas/CustomerId' transactions: type: array description: Invoice transactions array. maxItems: 10 readOnly: true items: $ref: '#/components/schemas/Transaction' retryInstruction: description: >- Invoice payment retry instruction. This object specifies how to proceed if a payment related to the invoice fails. type: - object - 'null' properties: attempts: type: array description: Describes the retry instruction. minItems: 1 items: type: object properties: scheduleInstruction: $ref: '#/components/schemas/InvoiceRetryScheduleInstruction' amountAdjustmentInstruction: $ref: >- #/components/schemas/InvoiceRetryAmountAdjustmentInstruction tryBackupInstruments: description: >- Specifies whether to use backup payment instruments on an invoice payment retry. type: boolean default: false required: - scheduleInstruction afterAttemptPolicies: description: >- Describes the action to take when a payment attempt concludes, and payment is not collected. type: array items: type: string enum: - change-subscription-renewal-time afterRetryEndPolicies: description: >- Describes the action to take when all scheduled payment retries, in a retry instruction, have concluded and payment is not collected. type: array items: type: string enum: - abandon-invoice - cancel-subscription required: - attempts - afterAttemptPolicies - afterRetryEndPolicies revision: description: |- Number of times the invoice data has been modified. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation. type: integer readOnly: true type: description: Type of invoice. type: string enum: - initial - renewal - interim - cancellation - one-time - refund - charge - one-time-sale readOnly: true dueReminderTime: description: Date and time when a past due reminder event is triggered. type: - string - 'null' format: date-time readOnly: true dueReminderNumber: description: Number of past due reminder events that have been triggered. type: - integer - 'null' readOnly: true organizationId: readOnly: true allOf: - $ref: '#/components/schemas/OrganizationId' delinquencyTime: description: >- Date and time when the related order is considered delinquent, and is canceled. If this value is `null`, no delinquency time is configured. If the `dueTime` of the order becomes greater than the `delinquencyTime` value, the `delinquencyTime` value becomes equal to `dueTime`. If an invoice is not related to an order, this field can only be `null`. type: - string - 'null' format: date-time default: null _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - website - customer - organization - attachments - leadSource - transactionAllocations - recalculateInvoice - subscription _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object website: type: object organization: type: object leadSource: type: object shippingRate: type: object InvoiceIssue: type: object properties: issuedTime: description: >- Date and time when the invoice is issued. If this field is `null` or omitted, the invoice is issued immediately. type: - string - 'null' format: date-time dueTime: description: >- Date and time when the invoice is due for payment. If this field is `null` or omitted, this value is set to the `issuedTime` value. type: - string - 'null' format: date-time InvoiceReissue: type: object properties: dueTime: description: >- Date and time when the invoice is due for payment. If this field is `null` or omitted, this value is set to the current date-time. type: - string - 'null' format: date-time InvoiceTransactionAllocation: type: object properties: invoiceId: type: string description: Unique resource ID. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT transactionId: $ref: '#/components/schemas/TransactionId' amount: type: number format: double currency: $ref: '#/components/schemas/CurrencyCode' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - invoice - transaction InvoiceTransaction: type: object required: - transactionId properties: transactionId: description: ID of the transaction to apply to the invoice. $ref: '#/components/schemas/TransactionId' amount: description: >- Amount to be applied to the invoice. This value must not exceed the transaction amount. If omitted, the lesser of the unused transaction amount or the invoice due amount is used. type: number format: double InvoiceTimeline: type: object properties: id: type: string description: ID of the timeline message. readOnly: true maxLength: 50 example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC type: description: Type of timeline message. type: string readOnly: true enum: - coupon-applied - email-message-sent - invoice-abandoned - invoice-disputed - invoice-issued - invoice-paid - invoice-partially-paid - invoice-partially-refunded - invoice-past-due - invoice-refunded - invoice-reissued - invoice-renewal-payment-declined - invoice-revenue-recognized - invoice-tax-calculation-failed - invoice-voided - quickbooks-credit-memo-created - quickbooks-credit-memo-voided - quickbooks-invoice-created - quickbooks-invoice-task-failed - quickbooks-invoice-updated - quickbooks-invoice-voided - quickbooks-revenue-recognition-created - timeline-comment-created - transaction-abandoned - transaction-approved - transaction-canceled - transaction-declined - transaction-initiated - transaction-refunded - transaction-voided triggeredBy: description: Specifies who, or what, triggered the timeline event. type: string readOnly: true enum: - rebilly - app - direct-api message: description: Describes the message details. type: string extraData: $ref: '#/components/schemas/TimelineExtraData' occurredTime: description: Date and time when the timeline message occurred. readOnly: true $ref: '#/components/schemas/ServerTimestamp' _links: $ref: '#/components/schemas/SelfLink' CreditMemoTaxItem: type: object required: - amount - description properties: amount: description: Amount of the tax. type: number format: double description: type: string description: Description of the tax. rate: description: >- Overall sales tax rate which includes state, county, city and district tax. type: - number - 'null' format: double stateAmount: description: Amount of sales tax to collect for the state. type: - number - 'null' format: double example: 0.94 countyAmount: description: Amount of sales tax to collect for the county. type: - number - 'null' format: double example: 0.04 cityAmount: description: Amount of sales tax to collect for the city. type: - number - 'null' format: double example: 0 specialDistrictAmount: description: Amount of sales tax to collect for the special district. type: - number - 'null' format: double example: 0.38 stateRate: description: State sales tax rate for given location. type: - number - 'null' format: double countyRate: description: County sales tax rate for given location. type: - number - 'null' format: double cityRate: description: City sales tax rate for given location. type: - number - 'null' format: double specialDistrictRate: description: Special district sales tax rate for given location. type: - number - 'null' format: double jurisdictions: description: Jurisdiction names for the invoice. type: - object - 'null' properties: country: description: Two-letter ISO country code for the provided location. type: - string - 'null' example: US state: description: Postal abbreviated state name for the provided location. type: - string - 'null' example: CA county: description: County name for the provided location. type: - string - 'null' example: LOS ANGELES city: description: City name for the provided location. type: - string - 'null' example: LOS ANGELES CreditMemo: type: object description: Credit memo object. required: - customerId - currency properties: id: type: string description: ID of the credit memo. readOnly: true maxLength: 50 example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG number: description: >- Auto-incrementing number based on the sequence of credit memos for any particular customer. readOnly: true type: integer allocations: type: object description: Allocations reduce the unused amount of a credit memo. properties: transactions: type: array description: >- List of transactions (typically refunds, credits, and chargebacks) that are allocated to reduce the unused amount of a credit memo. - To delete transaction allocations, send an empty transaction allocation array in the request. - To modify transaction allocations, send a modified transaction allocation array in the request. - If you do not want to modify or delete transaction allocations, do not send a transaction allocation array in the request. items: type: object properties: transactionId: description: >- ID of the transaction to which the credit memo is allocated. $ref: '#/components/schemas/TransactionId' amount: description: >- Amount of credit that is allocated from the credit memo to the transaction. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the transaction amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The transaction amount. type: number format: double currency: readOnly: true $ref: '#/components/schemas/CurrencyCode' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' invoices: type: array description: >- List of invoices that the credit memo is allocated to. - To delete invoice allocations, send an empty invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be deleted. - To modify invoice allocations, send a modified invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be modified. - If you do not want to modify or delete invoice allocations, do not send an invoice allocation array in the request. items: type: object properties: invoiceId: type: string description: ID of invoice to which the credit memo is allocated. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT amount: description: >- Amount of credit that is allocated from the credit memo to the invoice. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the invoice due amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The invoice due amount. type: number format: double currency: readOnly: true $ref: '#/components/schemas/CurrencyCode' createdTime: description: Date and time at which a credit memo is allocated. $ref: '#/components/schemas/ServerTimestamp' updatedTime: $ref: '#/components/schemas/UpdatedTime' items: type: array description: Items of the credit memo. items: type: object required: - unitPrice - quantity properties: id: type: string description: ID of the credit memo item. readOnly: true maxLength: 50 example: crmm_itm_0YVCNN22TWC3G8H82QNPNVZCHG invoiceItemId: description: ID of the invoice item to which the credit item is referenced. type: - string - 'null' maxLength: 50 example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV description: description: Description of the credit memo item. type: string unitPrice: description: Price of the credit memo item. type: number format: double quantity: description: Quantity of the credit memo item. type: integer price: description: Total price of the credit memo item. type: number format: double readOnly: true productId: type: - string - 'null' description: ID of the related product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ planId: description: ID of the related plan. type: - string - 'null' maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X tax: description: Credit memo item tax. oneOf: - $ref: '#/components/schemas/CreditMemoTaxItem' - type: 'null' status: type: string description: Status of the credit memo. readOnly: true enum: - issued - applied - partially-applied - voided x-enumDescriptions: issued: The credit memo is available with a full amount to be applied. applied: >- The full amount of the credit memo has been applied. No more credit can be created from it. partially-applied: |- A partial amount of the credit memo has been applied. A credit can be created from the remaining amount. voided: Credit memo has been voided and cannot be used anymore. reason: description: Reason for the credit memo. type: string enum: - return - product-unsatisfactory - order-change - order-cancellation - chargeback - write-off - waiver - customer-credit - other description: type: string x-basic: true description: >- Public description, that is visible to customers, which describes the purpose of the credit memo. shippingAmount: description: Shipping amount of an invoice to credit. type: number format: double default: 0 x-type: Money taxAmount: description: Sum of items tax amount of an invoice to credit. readOnly: true type: number format: double default: 0 x-type: Money totalAmount: description: >- Total amount of all credits in the credit memo, including items, shipping, and tax. readOnly: true type: number format: double default: 0 x-type: Money unusedAmount: description: Unused credit memo amount that has not been allocated. readOnly: true type: number format: double default: 0 x-type: Money revision: type: integer readOnly: true description: Number of times the credit memo has been modified. customerId: readOnly: true $ref: '#/components/schemas/CustomerId' currency: readOnly: true $ref: '#/components/schemas/CurrencyCode' invoiceId: type: - string - 'null' description: ID of the invoice to which the credit memo is issued. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer - invoice PatchCreditMemo: type: object description: Patch credit memo object. properties: allocations: type: object description: Allocations reduce the unused amount of a credit memo. properties: transactions: type: array description: >- List of transactions (typically refunds, credits, and chargebacks) that are allocated to reduce the unused amount of a credit memo. - To delete transaction allocations, send an empty transaction allocation array in the request. - To modify transaction allocations, send a modified transaction allocation array in the request. - If you do not want to modify or delete transaction allocations, do not send a transaction allocation array in the request. items: type: object properties: transactionId: description: >- ID of the transaction to which the credit memo is allocated. $ref: '#/components/schemas/TransactionId' amount: description: >- Amount of credit that is allocated from the credit memo to the transaction. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the transaction amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The transaction amount. type: number format: double currency: readOnly: true $ref: '#/components/schemas/CurrencyCode' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' invoices: type: array description: >- List of invoices that the credit memo is allocated to. - To delete invoice allocations, send an empty invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be deleted. - To modify invoice allocations, send a modified invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be modified. - If you do not want to modify or delete invoice allocations, do not send an invoice allocation array in the request. items: type: object properties: invoiceId: type: string description: ID of invoice to which the credit memo is allocated. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT amount: description: >- Amount of credit that is allocated from the credit memo to the invoice. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the invoice due amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The invoice due amount. type: number format: double currency: readOnly: true $ref: '#/components/schemas/CurrencyCode' createdTime: description: Date and time at which a credit memo is allocated. $ref: '#/components/schemas/ServerTimestamp' updatedTime: $ref: '#/components/schemas/UpdatedTime' items: type: array description: Items of the credit memo. items: type: object required: - unitPrice - quantity properties: id: type: string description: ID of the credit memo item. readOnly: true maxLength: 50 example: crmm_itm_0YVCNN22TWC3G8H82QNPNVZCHG invoiceItemId: description: ID of the invoice item to which the credit item is referenced. type: - string - 'null' maxLength: 50 example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV description: description: Description of the credit memo item. type: string unitPrice: description: Price of the credit memo item. type: number format: double quantity: description: Quantity of the credit memo item. type: integer price: description: Total price of the credit memo item. type: number format: double readOnly: true productId: type: - string - 'null' description: ID of the related product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ planId: description: ID of the related plan. type: - string - 'null' maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X tax: description: Credit memo item tax. oneOf: - $ref: '#/components/schemas/CreditMemoTaxItem' - type: 'null' reason: description: Reason for the credit memo. type: string enum: - return - product-unsatisfactory - order-change - order-cancellation - chargeback - write-off - waiver - customer-credit - other description: type: string x-basic: true description: >- Public description, that is visible to customers, which describes the purpose of the credit memo. shippingAmount: description: Shipping amount of an invoice to credit. type: number format: double default: 0 x-type: Money CreditMemoTimeline: type: object properties: id: type: string description: ID of the timeline message. readOnly: true maxLength: 50 example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC type: description: Type of timeline message. type: string readOnly: true enum: - credit-memo-created - credit-memo-applied - credit-memo-partially-applied - credit-memo-voided triggeredBy: description: Specifies who, or what, triggered the timeline event. type: string readOnly: true enum: - rebilly - app - direct-api message: description: Content of the timeline message. type: string extraData: $ref: '#/components/schemas/TimelineExtraData' occurredTime: description: Date and time when the timeline message occurred. readOnly: true $ref: '#/components/schemas/ServerTimestamp' _links: $ref: '#/components/schemas/SelfLink' JournalAccount: type: object required: - name properties: id: type: string description: ID of the journal account. readOnly: true maxLength: 50 example: jrn_acc_0YVCXS791DD8JAK1WV3VHM70ZQ name: type: string description: Name of the journal account. example: Unearned revenue description: type: - string - 'null' createdTime: description: Date and time when the journal record is created. $ref: '#/components/schemas/ServerTimestamp' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' JournalEntry: type: object required: - period - currency properties: id: type: string description: ID of the journal entry. readOnly: true maxLength: 50 example: jrn_ent_0YVCXSFCF2DJX99NBBSJCEVETB period: type: object properties: startDate: type: string format: date example: '2022-09-01' endDate: type: string format: date example: '2022-09-30' currency: description: Currency of the journal record revenue. $ref: '#/components/schemas/CurrencyCode' description: type: string createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' JournalRecord: type: object required: - type - journalEntryId - customerId - invoiceId - invoiceItemId - debitAccountId - creditAccountId properties: id: type: string description: Unique resource ID. maxLength: 50 example: jrn_rec_0YVCXV2HE5DBT89QV7RXSJEZQ4 journalEntryId: description: ID of the journal entry. readOnly: true type: string customerId: description: ID of the customer. type: string maxLength: 50 example: cus_0YV7DDSDD1C8DA64KHH2W33CPF invoiceId: type: string description: ID of the invoice. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT invoiceItemId: type: string description: ID of the invoice item. maxLength: 50 example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV type: type: string readOnly: true enum: - automated - manual estimatedAmount: description: >- Amount of revenue estimated to be recognized at the schedule date. This value is ignored when updating a journal record with a `type` of `automated`. type: - number - 'null' format: double recognizedAmount: description: Amount of revenue recognized at the journal period end. type: - number - 'null' format: double debitAccountId: description: ID of the debit journal account. type: - string - 'null' creditAccountId: description: ID of the credit journal account. type: - string - 'null' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object invoice: type: object invoiceItem: type: object debitAccount: type: object creditAccount: type: object _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer - invoice - invoiceItem - journalEntry - creditAccount - debitAccount KycDocumentTypes: type: string enum: - identity-proof - address-proof - funds-proof - purchase-proof - credit-file-proof KycDocumentSubtypes: type: - string - 'null' enum: - passport - id-card - driver-license - birth-certificate - utility-bill - rental-receipt - lease-agreement - copy-credit-card - credit-card-statement - bank-statement - inheritance-documentation - tax-return - salary-slip - sale-of-assets - public-health-card - proof-of-age-card - reverse-of-id - public-service - ewallet-holder-details - ewallet-transaction-statement - marriage-certificate - firearms-license - insurance-letter - income-statement - debtors-letter - other - null KycRequestDocument: type: object required: - type properties: type: description: Type of document to request from the customer. $ref: '#/components/schemas/KycDocumentTypes' subtypes: description: Permitted document subtype. type: - array - 'null' items: $ref: '#/components/schemas/KycDocumentSubtypes' maxAttempts: description: |- Total number of allowed document upload attempts. Use `0` to allow unlimited upload attempts. type: integer default: 3 minimum: 0 maximum: 100 faceProofRequired: description: >- Specifies if the customer must upload a photo of their face (selfie) that matches a provided KYC document. type: boolean faceLivenessRequired: description: >- Specifies if the customer must use the face liveness feature when uploading a selfie. For more information, see [Facial recognition and identity verification](https://www.rebilly.com/docs/kyc-and-aml/kyc-and-aml/#facial-recognition-identity-verification). type: boolean KycRequest: type: object description: KYC request information. required: - customerId - documents properties: id: type: string readOnly: true description: ID of the KYC request. maxLength: 50 example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5 customerId: $ref: '#/components/schemas/CustomerId' documents: type: array description: Documents to request from the customer. minItems: 1 items: $ref: '#/components/schemas/KycRequestDocument' status: description: Status of the request. type: string readOnly: true enum: - gathering - attempted - partial - pending-review - fulfilled - failed - abandoned - expired x-enumDescriptions: gathering: |- No documents have been provided yet. This is a temporary state. attempted: >- At least one document has been provided but none were assigned the `accepted` status. This is a temporary state. partial: >- At least one requested document has the `accepted` status, but not all requested documents have been assigned the `accepted` status. This is a temporary state. pending-review: >- At least one requested document has the `pending` status, and no requested documents have been assigned the `accepted` status. This is a temporary state, until the document is reviewed, or another `accepted` document is provided. fulfilled: >- All requested documents are provided and have been assigned the `accepted` status. This is a permanent state. failed: >- At least one requested document has exhausted all attempts, and has not been assigned a `accepted`, `pending`, or `in-progress` status. This is a permanent state. abandoned: |- One or more documents provided but the request expired. This is a permanent state. expired: |- No documents were provided and the request expired. This is a permanent state. redirectUrl: description: >- URL where the customer is redirected when a KYC document upload is complete. When the customer is redirected, Rebilly appends an `info` query parameter that has one of the following values: - `back`: Customer clicked the `back to website` link. - `token_expired`: Customer's token expired. - `success`: Customer uploaded KYC documents that have been analyzed. - `manual`: Customer uploaded KYC documents that require a manual review. This is because the analyzer rejected the documents or could not process them. - `partial`: Some of the customer's KYC documents have been analyzed, but other documents have not. For example, this may occur when a proof of address document is analyzed but proof of ID is not. Example: `https://example.com?info=success`. type: - string - 'null' format: uri reason: description: Reason for uploading. example: spend limit type: - string - 'null' matchLevel: description: |- Tolerance level setting for document matches. The value of `1` is more tolerant and `2` is strict. type: integer minimum: 1 maximum: 2 default: 2 revision: description: >- Number of times the KYC request data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true expirationTime: description: |- Date and time when the request expires. The default value is one hour in the future. type: string format: date-time createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - documents - gatherer _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: documents: type: array KycDocumentRejectionReasonTypes: description: Reason the document is rejected. type: string enum: - document-unreadable - document-expired - document-not-matching - document-duplicate - document-invalid - document-not-open - underage-person - third-party-or-mismatch - expiration-date-missing - issue-date-missing - dob-mismatch - name-mismatch - critical-info-missing - old-address-on-id - tampered-document - other KycDocumentRejection: description: Reason the document is rejected. type: - object - 'null' readOnly: true properties: type: $ref: '#/components/schemas/KycDocumentRejectionReasonTypes' message: description: KYC document rejection message. type: string example: Provided document is unreadable KycIdentityMatches: type: object description: Matched identity data. properties: containsImage: description: Specifies if the document includes an image that contains a face. type: boolean example: true isIdentityDocument: description: Specifies if the document resembles an ID. type: boolean example: true isPublishedOnline: description: Specifies if an exact match of the document has been found online. type: boolean example: false matchingImages: description: URLs where matching images have been found online. type: array readOnly: true maxItems: 3 items: type: string firstName: description: |- First name of the customer. This value is null if no match is found. type: - string - 'null' example: John lastName: description: |- Last name of the customer. This value is null if no match is found. type: - string - 'null' example: Doe dateOfBirth: description: |- Date of birth detected on the document. This value is null if no match is detected. type: - string - 'null' format: date-time expirationDate: description: |- Expiration date detected on the document. This value is null if no expiration date is detected. type: - string - 'null' format: date-time issueDate: description: |- Issue date detected on the document. This value is null if no issue date is detected. type: - string - 'null' format: date-time hasMinimalAge: description: |- Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined. type: - boolean - 'null' readOnly: true example: true nationality: description: |- Nationality detected on a passport or citizenship document. This value is null if no nationality is detected. type: - string - 'null' example: US maxLength: 3 issuanceCountry: description: Country that issued the document. type: - string - 'null' example: CA minLength: 2 maxLength: 2 issuanceRegion: description: Region, state, province, or territory that issued the document. type: - string - 'null' example: Ontario documentNumber: description: |- Unique number on the identity document. This value may contain alphanumeric characters. type: - string - 'null' example: '1234567890' documentSubtype: description: Interpreted subtype of the uploaded document. type: - string - 'null' $ref: '#/components/schemas/KycDocumentSubtypes' hasMatchingFaceProof: description: Specifies if an identity document has matching face proof. type: boolean example: false isTampered: description: Specifies if an identity document has been tampered with. type: boolean example: false expiryDate: description: Use `expirationDate` field instead. type: - string - 'null' format: date-time deprecated: true KycSettingsIdentity: type: object description: Identity proof settings. properties: weights: type: object description: >- Property weights that are used for the KYC document verification process. All KYC documents start the verification process with a score of 100. If a check fails, the score is reduced by the corresponding weight. For example, if the `firstName` check weight is set to `5`, and the check fails, the KYC document score becomes `95`. properties: containsImage: type: integer minimum: 0 maximum: 100 description: >- Weight added if the document does not include an image that contains a face. isIdentityDocument: type: integer minimum: 0 maximum: 100 description: Weight added if the document does not resemble an ID. isPublishedOnline: type: integer minimum: 0 maximum: 100 description: >- Weight added if an exact match of the document is not found online. firstName: type: integer minimum: 0 maximum: 100 description: Weight added if the customer's first name is not matched. lastName: type: integer minimum: 0 maximum: 100 description: Weight added if the customer's last name is not matched. expirationDate: type: integer minimum: 0 maximum: 100 description: >- Weight added if an expiration date is not detected on the document. dateOfBirth: type: integer minimum: 0 maximum: 100 description: Weight added if a date of birth is not detected on the document. matchesDateOfBirth: type: integer minimum: 0 maximum: 100 description: >- Weight added if an identity document does not have a matching date of birth. issueDate: type: integer minimum: 0 maximum: 100 description: Weight added if an issue date is not detected on the document. hasMinimalAge: type: integer minimum: 0 maximum: 100 description: >- Weight added if the document does not verify the minimal age limit. Minimal age is 21+ the for USA and 18+ for all other countries. hasMatchingFaceProof: type: integer minimum: 0 maximum: 100 description: >- Weight added if an identity document does not have matching face proof. nationality: type: integer minimum: 0 maximum: 100 description: Weight added if a nationality is not detected on the document. documentSubtype: type: integer minimum: 0 maximum: 100 description: >- Weight added if the document is not one of the recognized document subtypes. isTampered: type: integer minimum: 0 maximum: 100 description: Weight added if the document has been tampered with. thresholds: type: object description: >- Pass and fail threshold definition for the document verification process. properties: rejectBelow: type: integer minimum: 0 maximum: 100 description: >- Overall score by which an identity proof document fails the verification process. acceptAbove: type: integer minimum: 0 maximum: 100 description: >- Overall score by which an identity proof document passes the verification process. ProofOfIdentityKycDocument: title: KYC documents. type: object required: - customerId - documentType - status - fileIds properties: id: type: string readOnly: true description: ID of the KYC document. maxLength: 50 example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8 fileIds: description: >- IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. type: array items: type: string maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N documentType: description: >- Document type submitted for validation. Only the `identity-proof` and `address-proof` types are analyzed automatically. $ref: '#/components/schemas/KycDocumentTypes' documentSubtype: description: Document subtype submitted for validation. $ref: '#/components/schemas/KycDocumentSubtypes' status: description: Status of the validation. type: string readOnly: true enum: - pending - in-progress - accepted - rejected - archived x-enumDescriptions: pending: Waiting to be reviewed or analyzed. in-progress: Being analyzed by the Rebilly AI. accepted: Accepted by AI or a human. rejected: Rejected by AI or a human. archived: Archived by the Rebilly AI. rejectionReason: $ref: '#/components/schemas/KycDocumentRejection' requestId: readOnly: true type: - string - 'null' description: ID of the KYC request. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' processedTime: description: Date and time when the KYC document is processed. type: - string - 'null' format: date-time readOnly: true customerId: $ref: '#/components/schemas/CustomerId' reviewerId: description: ID of the KYC document reviewer. type: - string - 'null' readOnly: true maxLength: 50 example: 44433322-2c4y-483z-a0a9-158621f77a21 reviewerName: description: First and last name of the KYC document reviewer. type: - string - 'null' readOnly: true reviewStartTime: description: Date and time when the manual review starts. type: - string - 'null' format: date-time readOnly: true reviewTime: description: Date and time of manual review. type: - string - 'null' format: date-time readOnly: true notes: description: Reviewer notes. type: - string - 'null' tags: description: List of KYC document tags. readOnly: true type: array items: $ref: '#/components/schemas/Tag' reason: description: Reason for uploading. type: - string - 'null' matchLevel: description: Tolerance level setting for document matches. type: integer minimum: 1 maximum: 2 example: 2 revision: description: >- Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true documentMatches: type: - object - 'null' readOnly: true description: Proof of identity document matches. properties: score: description: >- Calculated score that represents the percentage of confidence that this ID represents the customer. type: number format: double example: 0.75 data: $ref: '#/components/schemas/KycIdentityMatches' parsedData: type: - object - 'null' readOnly: true description: Parsed data. properties: score: description: >- Calculated score that represents the percentage of confidence that this ID represents the customer. type: number format: double example: 0.75 data: $ref: '#/components/schemas/KycIdentityMatches' settings: description: Settings used to score the document. readOnly: true oneOf: - $ref: '#/components/schemas/KycSettingsIdentity' - type: 'null' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object files: type: array maxItems: 3 description: Linked files. KycAddressMatches: type: object description: Matched address data. properties: firstName: description: |- First name of the customer. This value is null if no match is found. type: - string - 'null' example: John lastName: description: |- Last name of the customer. This value is null if no match is found. type: - string - 'null' example: Doe line1: description: |- Address of the customer's residence. This value is null if no match is found. type: - string - 'null' example: 36 Craven St city: description: |- Customer's city of residence. This value is null if no match is found. type: - string - 'null' example: London region: description: |- Customer's region of residence. This value is null if no match is found. type: - string - 'null' example: London postalCode: description: |- Postal code of the customer's residence. This value is null if no match is found. type: - string - 'null' example: WC2N 5NF wordCount: description: Total number of words in the document. type: integer example: 350 uniqueWords: description: Total number of unique words in the document. type: integer example: 175 date: description: |- Date detected on the document. Use this field to determine if the document is recent. type: - string - 'null' format: date example: '2021-01-01' phone: description: Phone number of the company or agency that issued the document. type: - string - 'null' example: (123) 456-7890 documentSubtype: description: Interpreted subtype of the uploaded document. type: - string - 'null' $ref: '#/components/schemas/KycDocumentSubtypes' isTampered: description: Specifies if an address proof document has been tampered with. type: boolean example: false KycSettingsAddress: type: object description: Address proof settings. properties: weights: type: object description: >- Property weights that are used for the KYC document verification process. All KYC documents start the verification process with a score of 100. If a check fails, the score is reduced by the corresponding weight. For example, if the `firstName` check weight is set to `5`, and the check fails, the KYC document score becomes `95`. properties: firstName: type: integer minimum: 0 maximum: 100 description: Weight added if the customer's first name is not matched. lastName: type: integer minimum: 0 maximum: 100 description: Weight added if the customer's last name is not matched. line1: type: integer minimum: 0 maximum: 100 description: Weight added if the customer's address is not matched. city: type: integer minimum: 0 maximum: 100 description: Weight added if the customer's city is not matched. region: type: integer minimum: 0 maximum: 100 description: Weight added if the customer's region is not matched. postalCode: type: integer minimum: 0 maximum: 100 description: Weight added if the customer's postal code is not matched. date: type: integer minimum: 0 maximum: 100 description: Weight added if a date is not detected on the document. phone: type: integer minimum: 0 maximum: 100 description: Weight added if a phone number is not detected on the document. documentSubtype: type: integer minimum: 0 maximum: 100 description: >- Weight added if the document is not one of the recognized document subtypes. isTampered: type: integer minimum: 0 maximum: 100 description: Weight added if the document has been tampered with. thresholds: type: object description: >- Pass and fail threshold definition for the document verification process. properties: rejectBelow: type: integer minimum: 0 maximum: 100 description: >- Overall score by which an identity proof document fails the verification process. acceptAbove: type: integer minimum: 0 maximum: 100 description: >- Overall score by which an identity proof document passes the verification process. ProofOfAddressKycDocument: title: KYC documents. type: object required: - customerId - documentType - status - fileIds properties: id: type: string readOnly: true description: ID of the KYC document. maxLength: 50 example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8 fileIds: description: >- IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. type: array items: type: string maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N documentType: description: >- Document type submitted for validation. Only the `identity-proof` and `address-proof` types are analyzed automatically. $ref: '#/components/schemas/KycDocumentTypes' documentSubtype: description: Document subtype submitted for validation. $ref: '#/components/schemas/KycDocumentSubtypes' status: description: Status of the validation. type: string readOnly: true enum: - pending - in-progress - accepted - rejected - archived x-enumDescriptions: pending: Waiting to be reviewed or analyzed. in-progress: Being analyzed by the Rebilly AI. accepted: Accepted by AI or a human. rejected: Rejected by AI or a human. archived: Archived by the Rebilly AI. rejectionReason: $ref: '#/components/schemas/KycDocumentRejection' requestId: readOnly: true type: - string - 'null' description: ID of the KYC request. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' processedTime: description: Date and time when the KYC document is processed. type: - string - 'null' format: date-time readOnly: true customerId: $ref: '#/components/schemas/CustomerId' reviewerId: description: ID of the KYC document reviewer. type: - string - 'null' readOnly: true maxLength: 50 example: 44433322-2c4y-483z-a0a9-158621f77a21 reviewerName: description: First and last name of the KYC document reviewer. type: - string - 'null' readOnly: true reviewStartTime: description: Date and time when the manual review starts. type: - string - 'null' format: date-time readOnly: true reviewTime: description: Date and time of manual review. type: - string - 'null' format: date-time readOnly: true notes: description: Reviewer notes. type: - string - 'null' tags: description: List of KYC document tags. readOnly: true type: array items: $ref: '#/components/schemas/Tag' reason: description: Reason for uploading. type: - string - 'null' matchLevel: description: Tolerance level setting for document matches. type: integer minimum: 1 maximum: 2 example: 2 revision: description: >- Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true documentMatches: type: - object - 'null' readOnly: true properties: score: description: >- Calculated score that represents the percentage of confidence that this proof of address represents the customer. type: number format: double example: 0.75 data: $ref: '#/components/schemas/KycAddressMatches' parsedData: type: - object - 'null' readOnly: true properties: score: description: >- Calculated score that represents the percentage of confidence that this proof of address represents the customer. type: number format: double example: 0.75 data: $ref: '#/components/schemas/KycAddressMatches' settings: description: Settings used to score the document. readOnly: true oneOf: - $ref: '#/components/schemas/KycSettingsAddress' - type: 'null' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object files: type: array maxItems: 3 description: Linked files. FundsMatches: type: object properties: firstName: description: |- First name of the customer. This value is null if no match is found. type: - string - 'null' example: John lastName: description: |- Last name of the customer. This value is null if no match is found. type: - string - 'null' example: Doe documentSubtype: description: Interpreted subtype of the uploaded document. type: - string - 'null' $ref: '#/components/schemas/KycDocumentSubtypes' ProofOfFundsKycDocument: title: KYC documents. type: object required: - customerId - documentType - status - fileIds properties: id: type: string readOnly: true description: ID of the KYC document. maxLength: 50 example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8 fileIds: description: >- IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. type: array items: type: string maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N documentType: description: >- Document type submitted for validation. Only the `identity-proof` and `address-proof` types are analyzed automatically. $ref: '#/components/schemas/KycDocumentTypes' documentSubtype: description: Document subtype submitted for validation. $ref: '#/components/schemas/KycDocumentSubtypes' status: description: Status of the validation. type: string readOnly: true enum: - pending - in-progress - accepted - rejected - archived x-enumDescriptions: pending: Waiting to be reviewed or analyzed. in-progress: Being analyzed by the Rebilly AI. accepted: Accepted by AI or a human. rejected: Rejected by AI or a human. archived: Archived by the Rebilly AI. rejectionReason: $ref: '#/components/schemas/KycDocumentRejection' requestId: readOnly: true type: - string - 'null' description: ID of the KYC request. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' processedTime: description: Date and time when the KYC document is processed. type: - string - 'null' format: date-time readOnly: true customerId: $ref: '#/components/schemas/CustomerId' reviewerId: description: ID of the KYC document reviewer. type: - string - 'null' readOnly: true maxLength: 50 example: 44433322-2c4y-483z-a0a9-158621f77a21 reviewerName: description: First and last name of the KYC document reviewer. type: - string - 'null' readOnly: true reviewStartTime: description: Date and time when the manual review starts. type: - string - 'null' format: date-time readOnly: true reviewTime: description: Date and time of manual review. type: - string - 'null' format: date-time readOnly: true notes: description: Reviewer notes. type: - string - 'null' tags: description: List of KYC document tags. readOnly: true type: array items: $ref: '#/components/schemas/Tag' reason: description: Reason for uploading. type: - string - 'null' matchLevel: description: Tolerance level setting for document matches. type: integer minimum: 1 maximum: 2 example: 2 settings: description: Settings used to score the document. type: - object - 'null' revision: description: >- Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true documentMatches: type: - object - 'null' readOnly: true description: Proof of funds document matches. properties: data: $ref: '#/components/schemas/FundsMatches' parsedData: type: - object - 'null' readOnly: true properties: data: $ref: '#/components/schemas/FundsMatches' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object files: type: array maxItems: 3 description: Linked files. PurchaseMatches: type: object properties: firstName: description: |- First name of the customer if it is matched. This value is null if no match is found. type: - string - 'null' example: John lastName: description: |- Last name of the customer if it is matched. This value is null if no match is found. type: - string - 'null' example: Doe paymentInstrumentId: type: - string - 'null' description: |- ID of the payment instrument related to the document. This value is null if no match is found. example: inst_0YVB8KPKNXCBR9EDX7JHSED75N documentSubtype: description: Interpreted subtype of the uploaded document. type: - string - 'null' $ref: '#/components/schemas/KycDocumentSubtypes' ProofOfPurchaseKycDocument: title: KYC documents. type: object required: - customerId - documentType - status - fileIds properties: id: type: string readOnly: true description: ID of the KYC document. maxLength: 50 example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8 fileIds: description: >- IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. type: array items: type: string maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N documentType: description: >- Document type submitted for validation. Only the `identity-proof` and `address-proof` types are analyzed automatically. $ref: '#/components/schemas/KycDocumentTypes' documentSubtype: description: Document subtype submitted for validation. $ref: '#/components/schemas/KycDocumentSubtypes' status: description: Status of the validation. type: string readOnly: true enum: - pending - in-progress - accepted - rejected - archived x-enumDescriptions: pending: Waiting to be reviewed or analyzed. in-progress: Being analyzed by the Rebilly AI. accepted: Accepted by AI or a human. rejected: Rejected by AI or a human. archived: Archived by the Rebilly AI. rejectionReason: $ref: '#/components/schemas/KycDocumentRejection' requestId: readOnly: true type: - string - 'null' description: ID of the KYC request. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' processedTime: description: Date and time when the KYC document is processed. type: - string - 'null' format: date-time readOnly: true customerId: $ref: '#/components/schemas/CustomerId' reviewerId: description: ID of the KYC document reviewer. type: - string - 'null' readOnly: true maxLength: 50 example: 44433322-2c4y-483z-a0a9-158621f77a21 reviewerName: description: First and last name of the KYC document reviewer. type: - string - 'null' readOnly: true reviewStartTime: description: Date and time when the manual review starts. type: - string - 'null' format: date-time readOnly: true reviewTime: description: Date and time of manual review. type: - string - 'null' format: date-time readOnly: true notes: description: Reviewer notes. type: - string - 'null' tags: description: List of KYC document tags. readOnly: true type: array items: $ref: '#/components/schemas/Tag' reason: description: Reason for uploading. type: - string - 'null' matchLevel: description: Tolerance level setting for document matches. type: integer minimum: 1 maximum: 2 example: 2 settings: description: Settings used to score the document. type: - object - 'null' revision: description: >- Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true documentMatches: type: - object - 'null' readOnly: true description: Proof of purchase document matches. properties: data: $ref: '#/components/schemas/PurchaseMatches' parsedData: type: - object - 'null' readOnly: true description: Parsed data. properties: data: $ref: '#/components/schemas/PurchaseMatches' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer - paymentInstrument _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object files: type: array maxItems: 3 description: Linked files. CreditFileCommonDecisionData: readOnly: true type: object properties: lastNameMatch: description: Last name match. type: string readOnly: true example: 'Y' firstNameMatch: description: First name match. type: string readOnly: true example: 'Y' civicNumberMatch: description: Civic number match. type: string readOnly: true example: 'Y' streetNameMatch: description: Street name match. type: string readOnly: true example: 'Y' cityMatch: description: City match. type: string readOnly: true example: 'Y' postalCodeMatch: description: Postal code match. type: string readOnly: true example: 'Y' provinceMatch: description: Province match. type: string readOnly: true example: 'Y' dateOfBirthMatch: description: Date of birth match. type: string readOnly: true example: 'Y' ageOfCreditFileThreeOrMoreYearsOld: description: Age of credit file is three or more years old. type: string readOnly: true example: 'Y' addressAsReported: description: Address as reported. type: string readOnly: true example: 'Y' nameAsReported: description: Name as reported. type: string readOnly: true example: 'Y' dateOfBirthAsReported: description: Date of birth as reported. type: string readOnly: true example: 'Y' CreditFileMatches: type: object properties: creditBureau: description: Credit bureau from which the credit file data is sourced. type: string readOnly: true enum: - equifax - experian - transunion - test-bureau creditFileNumber: description: Credit file number from the credit bureau. type: string readOnly: true name: description: Name of the person to consult about the credit file. type: string readOnly: true consultedDate: description: Date to consult with the credit bureau about the credit file. type: string format: date-time readOnly: true decision: description: >- Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision. type: string enum: - single-source - dual-source - other x-enumDescriptions: single-source: >- Credit file used as a single source of proof for an identity decisions. dual-source: >- Credit file used as a source of proof where the credit bureau agency found two reliable trade sources. At least two sources are required for a dual-source proof of identity decision. other: Credit file cannot be used for KYC decisions. readOnly: true trades: description: Contains information to support the dual process. type: array items: type: object properties: name: type: string description: Trade name. example: Rogers accountNumber: type: string example: 123-ABC-123 dateOpened: type: string format: date readOnly: true referenceData: description: Extra data from the credit bureau. readOnly: true type: object properties: singleSourceHit: description: Single source hit. type: string readOnly: true example: 'Y' dualSourceHit: description: Dual source hit. type: string readOnly: true example: 'Y' waterfallProcess: description: Waterfall process. type: string readOnly: true example: 'Y' creditFileCreatedDate: description: Date when the credit file is created. type: string readOnly: true numberOfTradesOnFile: description: Number of trades on file. type: string readOnly: true example: '001' singleDecision: description: Data related to a single source decision. type: object allOf: - $ref: '#/components/schemas/CreditFileCommonDecisionData' dualDecision: description: Data related to a dual source decision. type: - array - 'null' items: allOf: - $ref: '#/components/schemas/CreditFileCommonDecisionData' ProofOfCreditFileKycDocument: title: KYC documents. type: object required: - customerId - documentType - status - fileIds properties: id: type: string readOnly: true description: ID of the KYC document. maxLength: 50 example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8 fileIds: description: >- IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. type: array items: type: string maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N documentType: description: >- Document type submitted for validation. Only the `identity-proof` and `address-proof` types are analyzed automatically. $ref: '#/components/schemas/KycDocumentTypes' documentSubtype: description: Document subtype submitted for validation. $ref: '#/components/schemas/KycDocumentSubtypes' status: description: Status of the validation. type: string readOnly: true enum: - pending - in-progress - accepted - rejected - archived x-enumDescriptions: pending: Waiting to be reviewed or analyzed. in-progress: Being analyzed by the Rebilly AI. accepted: Accepted by AI or a human. rejected: Rejected by AI or a human. archived: Archived by the Rebilly AI. rejectionReason: $ref: '#/components/schemas/KycDocumentRejection' requestId: readOnly: true type: - string - 'null' description: ID of the KYC request. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' processedTime: description: Date and time when the KYC document is processed. type: - string - 'null' format: date-time readOnly: true customerId: $ref: '#/components/schemas/CustomerId' reviewerId: description: ID of the KYC document reviewer. type: - string - 'null' readOnly: true maxLength: 50 example: 44433322-2c4y-483z-a0a9-158621f77a21 reviewerName: description: First and last name of the KYC document reviewer. type: - string - 'null' readOnly: true reviewStartTime: description: Date and time when the manual review starts. type: - string - 'null' format: date-time readOnly: true reviewTime: description: Date and time of manual review. type: - string - 'null' format: date-time readOnly: true notes: description: Reviewer notes. type: - string - 'null' tags: description: List of KYC document tags. readOnly: true type: array items: $ref: '#/components/schemas/Tag' reason: description: Reason for uploading. type: - string - 'null' matchLevel: description: Tolerance level setting for document matches. type: integer minimum: 1 maximum: 2 example: 2 settings: description: Settings used to score the document. type: - object - 'null' revision: description: >- Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true documentMatches: description: Proof of credit document matches. type: - object - 'null' readOnly: true properties: data: $ref: '#/components/schemas/CreditFileMatches' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object files: type: array maxItems: 3 description: Linked files. KycDocument: type: object description: KYC document information. discriminator: propertyName: documentType mapping: identity-proof: '#/components/schemas/ProofOfIdentityKycDocument' address-proof: '#/components/schemas/ProofOfAddressKycDocument' funds-proof: '#/components/schemas/ProofOfFundsKycDocument' purchase-proof: '#/components/schemas/ProofOfPurchaseKycDocument' credit-file-proof: '#/components/schemas/ProofOfCreditFileKycDocument' oneOf: - $ref: '#/components/schemas/ProofOfIdentityKycDocument' - $ref: '#/components/schemas/ProofOfAddressKycDocument' - $ref: '#/components/schemas/ProofOfFundsKycDocument' - $ref: '#/components/schemas/ProofOfPurchaseKycDocument' - $ref: '#/components/schemas/ProofOfCreditFileKycDocument' KycSettings: type: object description: Settings for KYC score calculation. properties: identityProof: $ref: '#/components/schemas/KycSettingsIdentity' addressProof: $ref: '#/components/schemas/KycSettingsAddress' ResetPasswordToken: type: object required: - username properties: token: description: ID of the token. type: string readOnly: true username: description: Username associated with the token. type: string credentialId: description: Credential ID associated with the token. type: string readOnly: true expiredTime: description: Date and time when the password expires. type: - string - 'null' format: date-time _links: $ref: '#/components/schemas/SelfLink' PaymentCardBrand: description: Brand of payment card. type: string enum: - Visa - MasterCard - American Express - Discover - Maestro - Solo - Electron - JCB - Voyager - Diners Club - Switch - Laser - China UnionPay - AstroPay Card UseAsBackup: description: >- Specifies if this payment instrument can be used as a backup for invoice payment retries. type: boolean default: false PaymentCard: type: object description: Payment card information. title: Payment card required: - method properties: id: type: string description: ID of the payment instrument. readOnly: true maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N customerId: $ref: '#/components/schemas/CustomerId' method: description: Method of payment instrument. type: string readOnly: true enum: - payment-card status: type: string description: >- Status of the payment instrument. An `active` status means that a payment instrument has been used at least once for an approved transaction. To remove an instrument from use, set this value to `deactivated`. For more information, see [Deactivate a payment instrument](./PostPaymentInstrumentDeactivation). enum: - active - inactive - expired - deactivated - verification-needed fingerprint: description: |- Unique value that is used to identify the payment instrument. This value is generated from the `bin` and the `last4` values. This value contains alphanumeric characters. type: string readOnly: true bin: description: >- Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN). type: string format: bin readOnly: true last4: description: Last 4 digits of the associated Primary Account Number (PAN). type: string readOnly: true pan: description: Primary Account Number (PAN) of the payment card. type: string writeOnly: true expYear: description: Expiration year of the payment card. type: integer expMonth: description: Expiration month of the payment card. type: integer cvv: description: Card Verification Value (CVV) of the payment card. type: string writeOnly: true brand: readOnly: true allOf: - $ref: '#/components/schemas/PaymentCardBrand' bankCountry: description: Bank country of the payment instrument. type: - string - 'null' readOnly: true bankName: description: Bank name of the payment instrument. type: string readOnly: true billingAddress: description: Contact's billing address. $ref: '#/components/schemas/ContactObject' useAsBackup: $ref: '#/components/schemas/UseAsBackup' billingPortalUrl: description: URL of the billing portal where the card can be updated. type: string readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' customFields: $ref: '#/components/schemas/ResourceCustomFields' stickyGatewayAccountId: description: >- ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts). type: - string - 'null' readOnly: true expirationReminderTime: description: Date and time when an expiration reminder event is triggered. type: - string - 'null' format: date-time readOnly: true expirationReminderNumber: description: Number of expiration reminder events that have triggered. type: - integer - 'null' readOnly: true referenceData: description: Payment instrument reference data. type: object additionalProperties: type: string example: gatewayTransactionId: GAT123 digitalWallet: readOnly: true description: Digital wallet type. type: - string - 'null' enum: - Apple Pay - Google Pay - null riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' revision: description: >- Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer - authTransaction - approvalUrl _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: authTransaction: type: object customer: type: object BankAccount: type: object title: Bank account required: - method properties: id: type: string description: ID of the payment instrument. readOnly: true maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N customerId: $ref: '#/components/schemas/CustomerId' method: description: Method of payment instrument. type: string readOnly: true enum: - ach bankName: description: Name of the bank. type: string routingNumber: description: Bank routing number. type: string accountNumberType: description: >- Type of bank account number. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN). type: string default: BBAN enum: - BBAN - IBAN accountType: description: Type of bank account. type: string enum: - checking - savings - other bic: description: Bank Identifier Code (BIC). type: - string - 'null' billingAddress: description: Customer's billing address. $ref: '#/components/schemas/ContactObject' fingerprint: description: |- Unique value which identifies the bank account. This value contains alphanumeric characters. Depending on the type of bank account number, a bank account fingerprint is generated using one of the following: - BBAN: `last4` and `routingNumber` values. - IBAN: First 8 characters of the IBAN and the `last4` value. type: string readOnly: true last4: description: Last 4 digits of the bank account number. type: string readOnly: true status: description: Status of the bank account. type: string readOnly: true enum: - active - deactivated stickyGatewayAccountId: description: >- ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts). type: - string - 'null' readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' useAsBackup: $ref: '#/components/schemas/UseAsBackup' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' customFields: $ref: '#/components/schemas/ResourceCustomFields' revision: description: >- Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object PayPalAccount: type: object title: PayPal account required: - method - customerId - billingAddress properties: id: type: string description: ID of the payment instrument. readOnly: true maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N customerId: $ref: '#/components/schemas/CustomerId' method: description: Method of payment instrument. type: string enum: - paypal billingAddress: description: Billing address. $ref: '#/components/schemas/ContactObject' username: description: PayPal username. type: string readOnly: true status: description: PayPal account status. type: string readOnly: true enum: - inactive - active - deactivated useAsBackup: $ref: '#/components/schemas/UseAsBackup' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' customFields: $ref: '#/components/schemas/ResourceCustomFields' stickyGatewayAccountId: description: >- ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts). type: - string - 'null' readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' revision: description: >- Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer - authTransaction - approvalUrl _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: authTransaction: type: object customer: type: object KhelocardCard: type: object title: Khelocard card required: - method properties: id: type: string description: ID of the payment instrument. readOnly: true maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N customerId: $ref: '#/components/schemas/CustomerId' method: description: Method of payment instrument. type: string enum: - Khelocard fingerprint: description: >- Unique value which identifies the payment instrument. This value contains alphanumeric characters. This value is generated from the card number, CVV, and expiration date. type: string number: description: Khelocard card masked number. type: string last4: description: Last 4 digits of the number. type: string expYear: description: Khelocard card expiration year. type: integer expMonth: description: Khelocard card expiration month. type: integer billingAddress: description: Billing address. $ref: '#/components/schemas/ContactObject' status: description: Payment instrument status. type: string enum: - active - deactivated useAsBackup: $ref: '#/components/schemas/UseAsBackup' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' customFields: $ref: '#/components/schemas/ResourceCustomFields' stickyGatewayAccountId: description: >- ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts). type: - string - 'null' readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' revision: description: >- Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object AlternativePaymentMethods: type: string description: Payment method. enum: - cash - check - paypal - AdvCash - Aircash - Alfa-click - Alipay - AstroPay Card - AstroPay-GO - BankReferenced - bank-transfer - bank-transfer-2 - bank-transfer-3 - bank-transfer-4 - bank-transfer-5 - bank-transfer-6 - bank-transfer-7 - bank-transfer-8 - bank-transfer-9 - Baloto - Beeline - Belfius-direct-net - bitcoin - Bizum - Boleto - cash-deposit - CASHlib - CashToCode - China UnionPay - Cleo - CODVoucher - Conekta-oxxo - Cupon-de-pagos - cryptocurrency - domestic-cards - Directa24Card - echeck - ecoPayz - ecoVoucher - Efecty - EPS - ePay.bg - eZeeWallet - FasterPay - Flexepin - Giropay - Gpaysafe - Google Pay - iDebit - iDEAL - ING-homepay - INOVAPAY-pin - INOVAPAY-wallet - InstaDebit - instant-bank-transfer - InstantPayments - Interac - Interac-online - Interac-eTransfer - invoice - iWallet - Jeton - jpay - KakaoPay - Khelocard - Klarna - KNOT - loonie - Matrix - MaxiCash - Megafon - MercadoPago - MiFinity-eWallet - miscellaneous - MobilePay - Bancontact - Bancontact-mobile - MTS - MuchBetter - Multibanco - Neosurf - Netbanking - Neteller - Nordea-Solo - OchaPay - online-bank-transfer - Onlineueberweisen - oriental-wallet - OXXO - P24 - Pagadito - PagoEffectivo - Pagsmile-deposit-express - Pagsmile-lottery - PayCash - Payco - Payeer - PaymentAsia-crypto - Paymero - Perfect-money - Piastrix - PIX - plaid-account - PayTabs - Paysafecard - Paysafecash - Pay4Fun - Paynote - PinPay - phone - PhonePe - POLi - PostFinance-card - PostFinance-e-finance - QIWI - QPay - QQPay - rapyd-checkout - Resurs - SafetyPay - Samsung Pay - SEPA - Skrill - Skrill Rapid Transfer - SMSVoucher - Sofort - SparkPay - swift-dbt - Tele2 - Terminaly-RF - ToditoCash-card - Trustly - Tupay - UPayCard - UPI - USD-coin - VCreditos - VenusPoint - voucher - voucher-2 - voucher-3 - voucher-4 - Wallet88 - Webmoney - Webpay - Webpay-2 - Webpay Card - WeChat Pay - wire - XPay-P2P - XPay-QR - Yandex-money - Zotapay - Zimpler AlternativeInstrument: type: object title: Alternative instrument required: - method - customerId - billingAddress properties: id: type: string description: ID of the payment instrument. readOnly: true maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N customerId: $ref: '#/components/schemas/CustomerId' method: description: Payment method of the payment instrument. allOf: - $ref: '#/components/schemas/AlternativePaymentMethods' - not: enum: - payment-card - paypal - ach - echeck - Khelocard billingAddress: description: >- Billing address of the user that is associated with the payment instrument. $ref: '#/components/schemas/ContactObject' status: description: Payment instrument status. type: string readOnly: true enum: - active - deactivated useAsBackup: $ref: '#/components/schemas/UseAsBackup' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' customFields: $ref: '#/components/schemas/ResourceCustomFields' stickyGatewayAccountId: description: >- ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts). type: - string - 'null' readOnly: true referenceData: description: Payment instrument reference data. type: object additionalProperties: type: string example: gatewayTransactionId: GAT123 riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' revision: description: >- Number of times the payment instrument data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation. type: integer readOnly: true _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - customer _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object PaymentInstrument: discriminator: propertyName: method mapping: payment-card: '#/components/schemas/PaymentCard' ach: '#/components/schemas/BankAccount' paypal: '#/components/schemas/PayPalAccount' Khelocard: '#/components/schemas/KhelocardCard' cash: '#/components/schemas/AlternativeInstrument' check: '#/components/schemas/AlternativeInstrument' AdvCash: '#/components/schemas/AlternativeInstrument' Alfa-click: '#/components/schemas/AlternativeInstrument' Alipay: '#/components/schemas/AlternativeInstrument' AstroPay Card: '#/components/schemas/AlternativeInstrument' AstroPay-GO: '#/components/schemas/AlternativeInstrument' BankReferenced: '#/components/schemas/AlternativeInstrument' bank-transfer: '#/components/schemas/AlternativeInstrument' bank-transfer-2: '#/components/schemas/AlternativeInstrument' bank-transfer-3: '#/components/schemas/AlternativeInstrument' bank-transfer-4: '#/components/schemas/AlternativeInstrument' bank-transfer-5: '#/components/schemas/AlternativeInstrument' bank-transfer-6: '#/components/schemas/AlternativeInstrument' bank-transfer-7: '#/components/schemas/AlternativeInstrument' bank-transfer-8: '#/components/schemas/AlternativeInstrument' bank-transfer-9: '#/components/schemas/AlternativeInstrument' Baloto: '#/components/schemas/AlternativeInstrument' Beeline: '#/components/schemas/AlternativeInstrument' Belfius-direct-net: '#/components/schemas/AlternativeInstrument' bitcoin: '#/components/schemas/AlternativeInstrument' Bizum: '#/components/schemas/AlternativeInstrument' Boleto: '#/components/schemas/AlternativeInstrument' cash-deposit: '#/components/schemas/AlternativeInstrument' CASHlib: '#/components/schemas/AlternativeInstrument' CashToCode: '#/components/schemas/AlternativeInstrument' China UnionPay: '#/components/schemas/AlternativeInstrument' Cleo: '#/components/schemas/AlternativeInstrument' CODVoucher: '#/components/schemas/AlternativeInstrument' Conekta-oxxo: '#/components/schemas/AlternativeInstrument' Cupon-de-pagos: '#/components/schemas/AlternativeInstrument' cryptocurrency: '#/components/schemas/AlternativeInstrument' domestic-cards: '#/components/schemas/AlternativeInstrument' ecoPayz: '#/components/schemas/AlternativeInstrument' ecoVoucher: '#/components/schemas/AlternativeInstrument' Efecty: '#/components/schemas/AlternativeInstrument' EPS: '#/components/schemas/AlternativeInstrument' ePay.bg: '#/components/schemas/AlternativeInstrument' eZeeWallet: '#/components/schemas/AlternativeInstrument' FasterPay: '#/components/schemas/AlternativeInstrument' Flexepin: '#/components/schemas/AlternativeInstrument' Giropay: '#/components/schemas/AlternativeInstrument' Gpaysafe: '#/components/schemas/AlternativeInstrument' Google Pay: '#/components/schemas/AlternativeInstrument' iDebit: '#/components/schemas/AlternativeInstrument' iDEAL: '#/components/schemas/AlternativeInstrument' ING-homepay: '#/components/schemas/AlternativeInstrument' INOVAPAY-pin: '#/components/schemas/AlternativeInstrument' INOVAPAY-wallet: '#/components/schemas/AlternativeInstrument' InstaDebit: '#/components/schemas/AlternativeInstrument' instant-bank-transfer: '#/components/schemas/AlternativeInstrument' InstantPayments: '#/components/schemas/AlternativeInstrument' Interac: '#/components/schemas/AlternativeInstrument' Interac-online: '#/components/schemas/AlternativeInstrument' Interac-eTransfer: '#/components/schemas/AlternativeInstrument' invoice: '#/components/schemas/AlternativeInstrument' iWallet: '#/components/schemas/AlternativeInstrument' Jeton: '#/components/schemas/AlternativeInstrument' jpay: '#/components/schemas/AlternativeInstrument' Klarna: '#/components/schemas/AlternativeInstrument' KNOT: '#/components/schemas/AlternativeInstrument' loonie: '#/components/schemas/AlternativeInstrument' Matrix: '#/components/schemas/AlternativeInstrument' MaxiCash: '#/components/schemas/AlternativeInstrument' Megafon: '#/components/schemas/AlternativeInstrument' MiFinity-eWallet: '#/components/schemas/AlternativeInstrument' miscellaneous: '#/components/schemas/AlternativeInstrument' Bancontact: '#/components/schemas/AlternativeInstrument' Bancontact-mobile: '#/components/schemas/AlternativeInstrument' MTS: '#/components/schemas/AlternativeInstrument' MuchBetter: '#/components/schemas/AlternativeInstrument' Multibanco: '#/components/schemas/AlternativeInstrument' Neosurf: '#/components/schemas/AlternativeInstrument' Netbanking: '#/components/schemas/AlternativeInstrument' Neteller: '#/components/schemas/AlternativeInstrument' Nordea-Solo: '#/components/schemas/AlternativeInstrument' OchaPay: '#/components/schemas/AlternativeInstrument' online-bank-transfer: '#/components/schemas/AlternativeInstrument' Onlineueberweisen: '#/components/schemas/AlternativeInstrument' oriental-wallet: '#/components/schemas/AlternativeInstrument' OXXO: '#/components/schemas/AlternativeInstrument' P24: '#/components/schemas/AlternativeInstrument' Pagadito: '#/components/schemas/AlternativeInstrument' PagoEffectivo: '#/components/schemas/AlternativeInstrument' Pagsmile-deposit-express: '#/components/schemas/AlternativeInstrument' Pagsmile-lottery: '#/components/schemas/AlternativeInstrument' PayCash: '#/components/schemas/AlternativeInstrument' Payeer: '#/components/schemas/AlternativeInstrument' PaymentAsia-crypto: '#/components/schemas/AlternativeInstrument' Paymero: '#/components/schemas/AlternativeInstrument' Perfect-money: '#/components/schemas/AlternativeInstrument' Piastrix: '#/components/schemas/AlternativeInstrument' plaid-account: '#/components/schemas/AlternativeInstrument' PayTabs: '#/components/schemas/AlternativeInstrument' Paysafecard: '#/components/schemas/AlternativeInstrument' Paysafecash: '#/components/schemas/AlternativeInstrument' Pay4Fun: '#/components/schemas/AlternativeInstrument' Paynote: '#/components/schemas/AlternativeInstrument' PinPay: '#/components/schemas/AlternativeInstrument' phone: '#/components/schemas/AlternativeInstrument' PhonePe: '#/components/schemas/AlternativeInstrument' POLi: '#/components/schemas/AlternativeInstrument' PostFinance-card: '#/components/schemas/AlternativeInstrument' PostFinance-e-finance: '#/components/schemas/AlternativeInstrument' QIWI: '#/components/schemas/AlternativeInstrument' QPay: '#/components/schemas/AlternativeInstrument' QQPay: '#/components/schemas/AlternativeInstrument' rapyd-checkout: '#/components/schemas/AlternativeInstrument' Resurs: '#/components/schemas/AlternativeInstrument' SafetyPay: '#/components/schemas/AlternativeInstrument' SEPA: '#/components/schemas/AlternativeInstrument' Skrill: '#/components/schemas/AlternativeInstrument' Skrill Rapid Transfer: '#/components/schemas/AlternativeInstrument' SMSVoucher: '#/components/schemas/AlternativeInstrument' Sofort: '#/components/schemas/AlternativeInstrument' SparkPay: '#/components/schemas/AlternativeInstrument' swift-dbt: '#/components/schemas/AlternativeInstrument' Tele2: '#/components/schemas/AlternativeInstrument' Terminaly-RF: '#/components/schemas/AlternativeInstrument' ToditoCash-card: '#/components/schemas/AlternativeInstrument' Trustly: '#/components/schemas/AlternativeInstrument' UPayCard: '#/components/schemas/AlternativeInstrument' UPI: '#/components/schemas/AlternativeInstrument' USD-coin: '#/components/schemas/AlternativeInstrument' VCreditos: '#/components/schemas/AlternativeInstrument' VenusPoint: '#/components/schemas/AlternativeInstrument' voucher: '#/components/schemas/AlternativeInstrument' voucher-2: '#/components/schemas/AlternativeInstrument' voucher-3: '#/components/schemas/AlternativeInstrument' voucher-4: '#/components/schemas/AlternativeInstrument' Webmoney: '#/components/schemas/AlternativeInstrument' Webpay: '#/components/schemas/AlternativeInstrument' Webpay-2: '#/components/schemas/AlternativeInstrument' Webpay Card: '#/components/schemas/AlternativeInstrument' WeChat Pay: '#/components/schemas/AlternativeInstrument' XPay-P2P: '#/components/schemas/AlternativeInstrument' XPay-QR: '#/components/schemas/AlternativeInstrument' Yandex-money: '#/components/schemas/AlternativeInstrument' Zotapay: '#/components/schemas/AlternativeInstrument' Zimpler: '#/components/schemas/AlternativeInstrument' anyOf: - $ref: '#/components/schemas/PaymentCard' - $ref: '#/components/schemas/BankAccount' - $ref: '#/components/schemas/PayPalAccount' - $ref: '#/components/schemas/KhelocardCard' - $ref: '#/components/schemas/AlternativeInstrument' PaymentInstrumentCreateToken: title: Payment token type: object required: - customerId - token properties: customerId: $ref: '#/components/schemas/CustomerId' token: description: ID of the payment token. type: string customFields: $ref: '#/components/schemas/ResourceCustomFields' useAsBackup: $ref: '#/components/schemas/UseAsBackup' PaymentCardCreatePlain: title: Payment card type: object required: - method - customerId - pan - expYear - expMonth - billingAddress properties: method: description: Method of the payment instrument. type: string enum: - payment-card customerId: $ref: '#/components/schemas/CustomerId' pan: description: Primary Account Number (PAN) of the payment card. type: string writeOnly: true expYear: description: Expiration year of the payment card. type: integer expMonth: description: Expiration month of the payment card. type: integer cvv: description: Card Verification Value (CVV) of the payment card. type: string writeOnly: true billingAddress: description: Billing address. $ref: '#/components/schemas/ContactObject' customFields: $ref: '#/components/schemas/ResourceCustomFields' riskMetadata: $ref: '#/components/schemas/RiskMetadata' useAsBackup: $ref: '#/components/schemas/UseAsBackup' BankAccountCreatePlain: title: Bank account type: object required: - accountNumberType discriminator: propertyName: accountNumberType mapping: BBAN: '#/components/schemas/BBANType' IBAN: '#/components/schemas/IBANType' properties: accountNumberType: type: string enum: - IBAN - BBAN BBANType: type: object description: BBAN type object. required: - accountNumberType - method - customerId - accountNumber - routingNumber - accountType - billingAddress allOf: - $ref: '#/components/schemas/BankAccountCreatePlain' - properties: method: description: Payment method of the payment instrument. type: string enum: - ach customerId: $ref: '#/components/schemas/CustomerId' accountNumberType: description: >- Bank account number type. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN). type: string default: BBAN enum: - IBAN - BBAN accountNumber: description: >- Customer's bank account number. Detailed information on all ISO 13616-compliant national IBAN formats is available in the [SWIFT IBAN Registry](https://www.swift.com/standards/data-standards/iban). type: string pattern: ^[0-9]+$ routingNumber: description: Bank routing number. type: string pattern: ^[0-9]+$ accountType: description: Bank account type. type: string enum: - checking - savings - other bankName: description: Bank name. type: string bic: description: Bank Identifier Code (BIC). type: string billingAddress: description: Customer's billing address. $ref: '#/components/schemas/ContactObject' customFields: $ref: '#/components/schemas/ResourceCustomFields' riskMetadata: $ref: '#/components/schemas/RiskMetadata' useAsBackup: $ref: '#/components/schemas/UseAsBackup' IBANType: type: object required: - accountNumberType - method - customerId - accountNumber - billingAddress description: IBAN type object. allOf: - $ref: '#/components/schemas/BankAccountCreatePlain' - properties: method: description: Payment method of the payment instrument. type: string enum: - ach customerId: $ref: '#/components/schemas/CustomerId' accountNumberType: description: >- Customer's bank account number type. A valid value is a Basic Bank Account Number (BBAN) or an International Bank Account Number (IBAN). type: string default: BBAN enum: - IBAN - BBAN accountNumber: description: >- Customer's bank account number. Detailed information on all ISO 13616-compliant national IBAN formats is available in the [SWIFT IBAN Registry](https://www.swift.com/standards/data-standards/iban). type: string bankName: description: Bank name. type: string bic: description: Bank Identifier Code (BIC). type: string billingAddress: description: Customer's billing address. $ref: '#/components/schemas/ContactObject' customFields: $ref: '#/components/schemas/ResourceCustomFields' riskMetadata: $ref: '#/components/schemas/RiskMetadata' useAsBackup: $ref: '#/components/schemas/UseAsBackup' PaymentInstrumentUpdateToken: type: object properties: token: description: ID of the payment token. type: string billingAddress: description: >- Customer's billing address. If this value is supplied it overrides the billing address that is supplied with the token. $ref: '#/components/schemas/ContactObject' stickyGatewayAccountId: description: >- ID of the sticky gateway account. All future payments are processed by this gateway account. To remove the sticky gateway account from a payment instrument, set this value to `null`. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts). type: - string - 'null' maxLength: 50 example: gw_acc_0YVCXMF26DDNKAERE5NW727S34 customFields: $ref: '#/components/schemas/ResourceCustomFields' useAsBackup: $ref: '#/components/schemas/UseAsBackup' PaymentCardUpdatePlain: type: object properties: cvv: description: Card Verification Value (CVV) of the payment card. type: string expMonth: description: Expiration month of the payment card. type: integer expYear: description: Expiration year of the payment card. type: integer billingAddress: description: Billing address. $ref: '#/components/schemas/ContactObject' stickyGatewayAccountId: description: >- ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts). $ref: '#/components/schemas/ResourceId' customFields: $ref: '#/components/schemas/ResourceCustomFields' useAsBackup: $ref: '#/components/schemas/UseAsBackup' BankAccountUpdatePlain: type: object properties: bankName: description: Name of the bank. type: string accountType: description: Bank account type. type: string enum: - checking - savings - other billingAddress: description: Billing address. $ref: '#/components/schemas/ContactObject' stickyGatewayAccountId: description: >- ID of the sticky gateway account. All future payments are processed by this gateway account. For more information, see [Gateway routing](https://www.rebilly.com/docs/settings/intelligent-payment-routing/#sticky-gateway-accounts). $ref: '#/components/schemas/ResourceId' customFields: $ref: '#/components/schemas/ResourceCustomFields' useAsBackup: $ref: '#/components/schemas/UseAsBackup' PlanFormulaFixedFee: title: Fixed-fee description: >- Fixed-fee pricing details. Use this formula for subscriptions that involve the same price, number of units, and reoccur over a fixed period of time. For more information, see [Fixed-fee per period](https://www.rebilly.com/docs/settings/pricing-formulas/#fixed-fee-per-period). type: object required: - price - formula properties: formula: type: string description: >- Price formula that determines which algorithm is used to calculate the invoice price based on the following factors: - Quantity in the order. This value may be variable if you are charging based on usage. If you are not charging based on usage, this value is determined when an order is created. - Price of the quantity range. Some formulas set a price based on defined product quantity ranges. For more information, see [Price formulas](https://www.rebilly.com/docs/billing/pricing-formulas/). enum: - fixed-fee price: description: >- Use this formula to charge for subscriptions that have a fixed price, number of units, and reoccur over a fixed period of time, such as every: day, week, month, year, or number of years. For example, a streaming company charges customers $13.99 each month for subscription period that is 6 months in duration. The quantity of movies that a customer streams each month does not impact the price. type: number format: double example: 99.95 PlanFormulaFlatRate: title: Flat rate description: >- Flat rate pricing details. Use this formula to charge a flat fee per unit. For example, $0.10 per transaction or $4 per unit. For more information, see [Flat rate pricing](https://www.rebilly.com/docs/billing/pricing-formulas/#flat-rate-pricing). type: object required: - price - formula properties: formula: type: string description: >- Price formula that determines which algorithm is used to calculate the invoice price based on the following factors: - Quantity in the order. This value may be variable if you are charging based on usage. If you are not charging based on usage, this value is determined when an order is created. - Price of the quantity range. Some formulas set a price based on defined product quantity ranges. For more information, see [Price formulas](https://www.rebilly.com/docs/billing/pricing-formulas/). enum: - flat-rate price: description: |- Use this formula to charge a flat fee per unit. For example, $0.10 for each transaction or $4 per unit. If the value of this field is `0`, the product is free. type: number format: double example: 99.95 minQuantity: description: |- Minimum permitted unit quantity. If this value is `null`, no limit is in place. type: - integer - 'null' default: null example: 1 minimum: 1 maximum: 65535 maxQuantity: description: |- Maximum permitted unit quantity. If this value is `null`, no limit is in place. type: - integer - 'null' example: 1 minimum: 1 maximum: 65535 PlanFormulaStairstep: title: Stair-step description: >- Stair-step pricing details. Use this formula to charge for units that are sold in specific quantities. For more information, see [Stair-step](https://www.rebilly.com/docs/billing/pricing-formulas/#stair-step). type: object required: - brackets - formula properties: formula: type: string description: >- Price formula that determines which algorithm is used to calculate the invoice price based on the following factors: - Quantity in the order. This value may be variable if you are charging based on usage. If you are not charging based on usage, this value is determined when an order is created. - Price of the quantity range. Some formulas set a price based on defined product quantity ranges. For more information, see [Price formulas](https://www.rebilly.com/docs/billing/pricing-formulas/). enum: - stairstep brackets: description: >- Use this formula to charge for units that are sold in specific quantity ranges. For example, a bank charges a merchant based on the number of transactions they complete each month. Price total | Max quantity | Description ------------|--------------|------------ $50 | 1000 | Up to 1000 transactions $100 | 1500 | Between 1000 and 1500 transactions $200 | 3000 | Between 1500 and 3000 transactions $500 | null | More than 3000 transactions - If the merchant completes 900 transaction in a month, they are charged $50. - If the merchant completes 1001 transaction in a month, they are charged $100. - If the merchant completes 2500 transaction in a month, they are charged $200. - If the merchant completes more than 3000 transaction in a month, they are charged $500. type: array minItems: 1 items: type: object properties: price: description: |- Price of the quantity range. If the value of this field is `0`, the product is free. type: number format: double example: 99.95 maxQuantity: description: |- Maximum permitted unit quantity. If this value is `null`, no limit is in place. This value starts from the end of the previous quantity range. If there are no previous quantity ranges, this value starts at 1. type: - integer - 'null' example: 1 minimum: 1 maximum: 65535 minQuantity: description: |- Minimum permitted unit quantity. If this value is `null`, no limit is in place. type: - integer - 'null' default: null example: 1 minimum: 1 maximum: 65535 PlanFormulaTiered: title: Tiered description: >- Tiered pricing details. Use this formula to charge for units that are sold within defined quantity ranges, or tiers. For more information, see [Tiered](https://www.rebilly.com/docs/settings/pricing-formulas/#tiered). type: object required: - brackets - formula properties: formula: type: string description: >- Price formula that determines which algorithm is used to calculate the invoice price based on the following factors: - Quantity in the order. This value may be variable if you are charging based on usage. If you are not charging based on usage, this value is determined when an order is created. - Price of the quantity range. Some formulas set a price based on defined product quantity ranges. For more information, see [Price formulas](https://www.rebilly.com/docs/billing/pricing-formulas/). enum: - tiered brackets: description: >- Use this formula to charge for units that are sold within defined quantity ranges, or tiers. If a customer buys a number of units that span more than one tier, the total cost is calculated based on the cost of the units in each tier. For example, a software company sells user licenses based on the following: Tier | Price per user | Max quantity | Description -----|----------------|--------------|------------ 1 | $40 | 3 | 1 to 3 user licenses 2 | $30 | 5 | 5 to 8 user licenses 3 | $15 | null | 9 or more user licenses If a customer buys 10 user licenses, the pricing is as follows: - 3 licenses at tier 1 (3 x $40) is 120 - 5 licenses at tier 2 (5 x $30) is 150 - 2 licenses at tier 3 (2 x $15) is 30 Total cost = $330 Formula: `(price for the tier x quantity within the tier)` + `(price for next tier x quantity in next tier)` + `...` = final price. type: array minItems: 1 items: type: object properties: price: description: |- Price of the quantity range. If the value of this field is `0`, the product is free. type: number format: double example: 99.95 maxQuantity: description: |- Maximum permitted unit quantity. If this value is `null`, no limit is in place. This value starts from the end of the previous quantity range. If there are no previous quantity ranges, this value starts at 1. type: - integer - 'null' example: 1 minimum: 1 maximum: 65535 minQuantity: description: |- Minimum permitted unit quantity. If this value is `null`, no limit is in place. type: - integer - 'null' default: null example: 1 minimum: 1 maximum: 65535 PlanFormulaVolume: title: Volume description: >- Volume pricing details. Use this formula to charge for units that are sold in bulk, or volume ranges. In general, this formula means that a customer pays less per unit when they buy a large volume of units. For more information, see [Volume](https://www.rebilly.com/docs/settings/pricing-formulas/#volume). type: object required: - brackets - formula properties: formula: type: string description: >- Price formula that determines which algorithm is used to calculate the invoice price based on the following factors: - Quantity in the order. This value may be variable if you are charging based on usage. If you are not charging based on usage, this value is determined when an order is created. - Price of the quantity range. Some formulas set a price based on defined product quantity ranges. For more information, see [Price formulas](https://www.rebilly.com/docs/billing/pricing-formulas/). enum: - volume brackets: description: >- Use this formula to charge for units that are sold in bulk, or volume ranges. This formula enables customers to pays less per unit when they buy a large volume of units. Unit cost is based on the highest volume range, and does not include lower volume range pricing. For example, a company sells t-shirts in the following volume ranges: Price per unit| Max quantity | Description --------------|--------------|------------ $10 | 1 | 1 t-shirt $8 | 5 | 2 to 5 t-shirts $4 | null | 6 or more t-shirts - If a customer buys 1 unit, they pay $10. - If a customer buys 3 units, they pay $24 per unit, which is $8 per unit. - If a customer buys 10 units, they pay $40, which is $4 per unit. type: array minItems: 1 items: type: object properties: price: description: |- Price of the quantity range. If the value of this field is `0`, the product is free. type: number format: double example: 99.95 maxQuantity: description: |- Maximum permitted unit quantity. If this value is `null`, no limit is in place. This value starts from the end of the previous quantity range. If there are no previous quantity ranges, this value starts at 1. type: - integer - 'null' example: 1 minimum: 1 maximum: 65535 minQuantity: description: |- Minimum permitted unit quantity. If this value is `null`, no limit is in place. type: - integer - 'null' default: null example: 1 minimum: 1 maximum: 65535 PlanPriceFormula: description: Pricing details. type: object discriminator: propertyName: formula mapping: fixed-fee: '#/components/schemas/PlanFormulaFixedFee' flat-rate: '#/components/schemas/PlanFormulaFlatRate' stairstep: '#/components/schemas/PlanFormulaStairstep' tiered: '#/components/schemas/PlanFormulaTiered' volume: '#/components/schemas/PlanFormulaVolume' oneOf: - $ref: '#/components/schemas/PlanFormulaFixedFee' - $ref: '#/components/schemas/PlanFormulaFlatRate' - $ref: '#/components/schemas/PlanFormulaStairstep' - $ref: '#/components/schemas/PlanFormulaTiered' - $ref: '#/components/schemas/PlanFormulaVolume' PlanSetup: type: - object - 'null' description: Set up information of the plan. required: - price properties: price: description: |- Price of setting up the plan. If your service charges a set up fee, specify it here. To charge no set up fee, set this value to `0`. type: number format: double OneTimeSalePlan: type: object description: >- Details of the one-time sale plan. Use this plan for non-recurring, one-time, sales. required: - name - currency - productId - pricing properties: name: description: |- Name of the plan. This name is displayed on invoices and receipts. type: string maxLength: 255 description: type: string description: |- Plain-text description of the plan. This field accepts plain-text only. maxLength: 65535 richDescription: type: string description: >- Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks. maxLength: 65535 productId: type: string description: ID of the related product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ productOptions: type: - object - 'null' description: Name-value pairs that specify the product options. additionalProperties: type: string example: color: red size: xxl currency: $ref: '#/components/schemas/CurrencyCode' currencySign: description: Currency sign. readOnly: true type: string pricing: $ref: '#/components/schemas/PlanPriceFormula' setup: $ref: '#/components/schemas/PlanSetup' customFields: $ref: '#/components/schemas/ResourceCustomFields' isActive: type: boolean description: Specifies if the plan is active. default: true revision: type: integer readOnly: true description: >- Number of times the plan is modified. Compare this value with materialized subscription item revision values. isTrialOnly: type: boolean description: >- Specifies if a plan is a trial that does not have recurring instructions. readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - attachments ServicePeriodAnchorInstruction: type: object description: |- Instruction for calculating the service period anchor. The service period anchor is used, in conjunction with the subscription start time, to calculate when the service period starts and ends. discriminator: propertyName: method mapping: day-of-month: '#/components/schemas/SchedulingMethodDayOfMonth' day-of-week: '#/components/schemas/SchedulingMethodDayOfWeek' immediately: '#/components/schemas/SchedulingMethodImmediately' default: method: immediately anyOf: - $ref: '#/components/schemas/SchedulingMethodDayOfMonth' - $ref: '#/components/schemas/SchedulingMethodDayOfWeek' - $ref: '#/components/schemas/SchedulingMethodImmediately' PlanTrial: type: - object required: - price - period properties: price: description: |- Price of setting up a trial. If your service charges a fee for a trial, specify it here. To charge no trial fee, set this value to `0`. type: number format: double period: type: object description: Period information. required: - unit - length properties: unit: description: Unit of time. type: string enum: - day - week - month - year length: description: Length of time. type: integer minimum: 1 InvoiceTimeShift: type: - object - 'null' description: >- Use invoice time shift to control the billing time. Invoice time shift adjusts the invoice issue and due date when billing must occur before the service period changes. Use invoice time shift in conjunction with `billingTiming` to: - Bill immediately when the service period starts. - Bill immediately after the service period ends. - Bill at an interval of time before the service period starts. - Bill at an interval of time after the service period starts. - Bill at an interval of time before the service period ends. - Bill at an interval of time after the service period ends. properties: issueTimeShift: type: object description: >- Calculation instruction of the billing time. This is used in conjunction with the service period anchor to calculate the time at which the invoice is issued. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/concepts/#service-period-anchor-and-billing-timing-and-invoice-time-shift). required: - chronology - duration - unit properties: chronology: type: string description: >- Sequential order of the billing time relative to the start of the service period. enum: - before duration: type: integer description: Amount of time by which to move the invoice issue time or date. minimum: 1 unit: description: Unit of time. oneOf: - $ref: '#/components/schemas/TimeUnit' - $ref: '#/components/schemas/TimePluralUnit' dueTimeShift: type: object required: - duration - unit description: >- Calculation instruction of the invoice due time. This is used in conjunction with the billing anchor to calculate when an invoice is due for payment. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/concepts/#service-period-anchor-and-billing-timing-and-invoice-time-shift). The sequential order of due time shift is always after the due date. default: duration: 1 unit: hour properties: duration: type: integer description: Amount of time by which to move the invoice due time or date. minimum: 1 unit: description: Unit of time. oneOf: - $ref: '#/components/schemas/TimeUnit' - $ref: '#/components/schemas/TimePluralUnit' SubscriptionPlan: description: >- Details of the subscription order plan. Use this plan for subscriptions or sales that reoccur over a period of time. type: object required: - name - currency - productId - pricing - recurringInterval properties: name: description: |- Name of the plan. This name is displayed on invoices and receipts. type: string maxLength: 255 description: type: string description: |- Plain-text description of the plan. This field accepts plain-text only. maxLength: 65535 richDescription: type: string description: >- Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks. maxLength: 65535 productId: type: string description: ID of the related product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ productOptions: type: - object - 'null' description: Name-value pairs that specify the product options. additionalProperties: type: string example: color: red size: xxl currency: $ref: '#/components/schemas/CurrencyCode' currencySign: description: Currency sign. readOnly: true type: string pricing: $ref: '#/components/schemas/PlanPriceFormula' setup: $ref: '#/components/schemas/PlanSetup' customFields: $ref: '#/components/schemas/ResourceCustomFields' isActive: type: boolean description: Specifies if the plan is active. default: true revision: type: integer readOnly: true description: >- Number of times the plan is modified. Compare this value with materialized subscription item revision values. isTrialOnly: type: boolean description: >- Specifies if a plan is a trial that does not have recurring instructions. readOnly: true recurringInterval: description: |- Service interval settings. For a one-time sale, set this value to `null`. type: object properties: periodAnchorInstruction: $ref: '#/components/schemas/ServicePeriodAnchorInstruction' unit: description: Unit of time. type: string enum: - day - week - month - year length: description: Length of time. type: integer minimum: 1 limit: description: >- Number of invoices the subscription order generates. If this value is `1`, only the initial order creation is generated. Example: For a 1 year contract that is billed monthly, where the `periodUnit` is `month` and the `periodDuration` is `1`, set this field to `12`. type: - integer - 'null' minimum: 1 maximum: 65535 billingTiming: type: string default: prepaid description: >- Billing timing in relation to the service period. For `prepaid` plans the customer pays when the service period starts, whereas, for `postpaid` plans, the customer pays when the service period ends. enum: - prepaid - postpaid trial: description: |- Trial configuration setting. If you do not want to offer a trial, set this value to `null`. oneOf: - $ref: '#/components/schemas/PlanTrial' - type: 'null' meteredBilling: type: - object - 'null' required: - strategy description: >- Use metered billing when an exact quantity is unknown. Report usage during a service period and charge customers afterwards. Metered billing plans must be postpaid. properties: strategy: type: string enum: - sum - last x-enumDescriptions: sum: Total amount of reported invoice item quantity usage. last: Last reported invoice item quantity usage. min: description: >- Minimum quantity that is charged at the end of a service period regardless of reported usage. type: - number - 'null' format: float minimum: 0.01 max: description: >- Maximum quantity that is charged at the end of a service period regardless of reported usage. type: - number - 'null' format: float minimum: 0.01 invoiceTimeShift: $ref: '#/components/schemas/InvoiceTimeShift' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - attachments TrialOnlyPlan: description: |- Details of the trial-only plan. Use this plan for limited-time product trials. Trials may have a reduced fee, or may be free. type: object required: - name - currency - productId - pricing - trial properties: name: description: |- Name of the plan. This name is displayed on invoices and receipts. type: string maxLength: 255 description: type: string description: |- Plain-text description of the plan. This field accepts plain-text only. maxLength: 65535 richDescription: type: string description: >- Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks. maxLength: 65535 productId: type: string description: ID of the related product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ productOptions: type: - object - 'null' description: Name-value pairs that specify the product options. additionalProperties: type: string example: color: red size: xxl currency: $ref: '#/components/schemas/CurrencyCode' currencySign: description: Currency sign. readOnly: true type: string pricing: $ref: '#/components/schemas/PlanPriceFormula' setup: $ref: '#/components/schemas/PlanSetup' customFields: $ref: '#/components/schemas/ResourceCustomFields' isActive: type: boolean description: Specifies if the plan is active. default: true revision: type: integer readOnly: true description: >- Number of times the plan is modified. Compare this value with materialized subscription item revision values. isTrialOnly: type: boolean description: >- Specifies if a plan is a trial that does not have recurring instructions. readOnly: true trial: description: Trial configuration settings. $ref: '#/components/schemas/PlanTrial' invoiceTimeShift: description: >- Use invoice time shift to adjust the invoice issue and due date when billing must occur before the service period changes. For example, rent must be paid in advance, so the invoice must be in advance of the billing date. For more information, see [Service period anchor, and billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/concepts/#service-period-anchor-and-billing-timing-and-invoice-time-shift). $ref: '#/components/schemas/InvoiceTimeShift' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - attachments Plan: allOf: - type: object properties: id: type: string description: ID of the plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X readOnly: true - anyOf: - $ref: '#/components/schemas/OneTimeSalePlan' - $ref: '#/components/schemas/SubscriptionPlan' - $ref: '#/components/schemas/TrialOnlyPlan' Product: type: object required: - name description: >- Products are the items that your business sells. Products include digital goods, services, and physical goods. Products appear on invoice line items. If you set a tax category identifier, taxes are calculated at invoice generation. If the product is shippable, shipping costs are calculated at invoice generation. Pricing and variations are set within plans. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/). properties: id: type: string description: ID of the product. readOnly: true maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ name: description: Name of the product. type: string maxLength: 255 example: Premium membership unitLabel: description: Unit label, such as per `seat` or per `unit`. type: string maxLength: 50 example: seat default: unit description: description: Description of the product. type: - string - 'null' maxLength: 512 requiresShipping: description: |- Specifies if the product requires shipping. If this value is `true`, shipping calculations are applied. type: boolean example: false default: false options: description: >- Product options such as color, size, and so forth. Product option values are defined in plans. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/). type: array items: type: string taxCategoryId: description: >- Tax category of the product. For a complete list of supported tax categories, see [TaxJar sales tax API reference](https://developers.taxjar.com/api/reference/#get-list-tax-categories). If none of the tax categories from the list are applicable for your product, use the general tax category `00000`. type: - string - 'null' example: '00000' accountingCode: description: Accounting code of the product. type: - string - 'null' example: '4010' recognition: type: - object - 'null' properties: debitAccountId: description: ID of the debit journal account. type: - string - 'null' creditAccountId: description: ID of the credit journal account. type: - string - 'null' customFields: $ref: '#/components/schemas/ResourceCustomFields' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' OriginalPlan: type: object description: >- Use an existing plan without changes for the current order. To create a new plan, see [Create a plan](https://www.rebilly.com/catalog/all/plans/postplan). required: - id properties: id: description: ID of the plan. $ref: '#/components/schemas/ResourceId' FlexiblePlan: allOf: - type: object required: - id properties: id: type: string description: ID of the plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X - anyOf: - $ref: '#/components/schemas/OneTimeSalePlan' - $ref: '#/components/schemas/SubscriptionPlan' - $ref: '#/components/schemas/TrialOnlyPlan' QuoteCreateOrder: type: object title: QuoteCreateOrder required: - websiteId - customerId - items - action properties: id: readOnly: true description: ID of the quote. type: string maxLength: 50 example: qt_0YV7DES3WPC5J8JD8QTVNZBZNZ type: description: |- Specifies the type of the quote. A quote can be a subscription or a one-time purchase. type: string readOnly: true enum: - subscription-order - one-time-order action: description: >- Action of the quote. When a quote is accepted, a new order is created. The `subscriptionId` value is filled with a new generated value from the order. type: string enum: - create example: create acceptanceConditions: type: array writeOnly: true description: >- Conditions that must be met for the quote to be automatically accepted. items: type: string enum: - customer - payment x-enumDescriptions: customer: Quote can be accepted by customer. payment: Related invoice must be paid in full. example: - payment default: - customer acceptanceFulfillment: type: array readOnly: true description: List of `acceptanceConditions` with fulfillment status. items: type: object properties: condition: type: string enum: - customer - payment - organization isFulfilled: type: boolean subscriptionId: description: ID of the related subscription or one-time purchase. readOnly: true type: - string - 'null' maxLength: 50 example: ord_0YV7DES3WPC5J8JD8QTVNZBZNZ invoiceId: type: string description: ID of the payment invoice. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT status: description: Status of the quote. type: string readOnly: true enum: - draft - issued - accepted - rejected - canceled - expired x-enumDescriptions: draft: Quote can be edited. This quote cannot be sent to a customer. issued: Quote cannot be edited. This quote can be sent to a customer. accepted: Customer accepted the quote and created an order. rejected: Customer rejected the quote. canceled: Organization canceled the quote. expired: Expired before customer or organization interaction. websiteId: $ref: '#/components/schemas/WebsiteId' customerId: $ref: '#/components/schemas/CustomerId' items: type: array description: Items included in the quote. minItems: 1 items: type: object required: - plan - quantity properties: id: description: ID of the quote item. readOnly: true type: string example: qti_0YV7DES3WPC5J8JD8QTVNZBZNZ quantity: description: Number of product units in the specified plan. type: integer minimum: 1 plan: description: Plan details. oneOf: - $ref: '#/components/schemas/OriginalPlan' - $ref: '#/components/schemas/FlexiblePlan' description: type: string description: Description of the quote item. example: Charge per approved transaction with DCC default: '' maxLength: 255 priceDescription: type: string description: |- Price description of the quote item. This value is only used for metered billing items. example: 50% of the markup for approved transactions default: '' maxLength: 255 usageLimits: type: - object - 'null' default: null description: >- Specifies the soft and hard usage limit thresholds for an item with a metered billing plan. This value is ignored when the plan is not metered. properties: softLimit: type: object description: >- Defines thresholds for notification purposes. For example, to notify the customer that their usage is near the hard limit of their metered billing plan. This notification informs the customer so that they can upgrade their plan before the hard limit is reached. When the reported usage reaches 75%, 90%, and 100% of the configured limit a specific event is fired. To notify the customer, a webhook and notification can be configured for this event. This field is useful for accounting and customer success purposes. The usage of metered billing plans can still be reported if the soft limit is reached. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 hardLimit: type: object description: >- Defines a limit where the customer can no longer use the service. Hard limits are used in addition to soft limits. When a soft limit is reached, a customer may receive a notification but the service can still be provided up to the hard limit value so that the customer can upgrade their plan. When the reported usage reaches the configured limit, a specific event is triggered. To notify the customer in the merchant system, or block a service, a webhook and notification can be configured for this event. When the total usage reaches the hard limit quantity, or amount values, metered billing plan usages can no longer be reported. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _embedded: type: object description: >- Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: product: type: object deliveryAddress: description: Delivery address of the order. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' billingAddress: description: Billing address of the order. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' invoicePreview: type: object description: Preview of the quote invoice. readOnly: true properties: currency: description: Currency of the invoice. $ref: '#/components/schemas/CurrencyCode' initialAmounts: type: object description: Total amounts of the initial invoice. properties: amount: description: Amount of the invoice. type: number x-type: Money format: double subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double shippingAmount: description: Shipping amount that is applied to the invoice. type: number x-type: Money format: double taxAmount: description: Tax amount that is applied to the invoice. type: number x-type: Money format: double recurringAmounts: type: - object - 'null' description: >- Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`. properties: amount: description: Amount of the invoice. type: number x-type: Money format: double subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double shippingAmount: description: Shipping amount that is applied to the invoice. type: number x-type: Money format: double taxAmount: description: Tax amount that is applied to the invoice. type: number x-type: Money format: double items: type: array description: Invoice items. items: type: object properties: quoteItemId: description: ID of the related quote item. type: string example: qti_0YV7DES3WPC5J8JD8QTVNZBZNZ type: type: string description: Type of the invoice item. x-basic: true enum: - debit - credit name: description: Name of the invoice item. type: string maxLength: 1000 description: description: Description of the invoice item. type: string example: Charge per approved transaction with DCC maxLength: 255 priceDescription: type: string description: Price description of the invoice item. example: 50% of the markup for approved transactions maxLength: 255 unitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double quantity: description: Quantity of the invoice item. type: integer period: description: Date interval of the invoice item. type: - string - 'null' setupUnitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double trialUnitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double trialPeriod: description: Date interval of the invoice item trial. type: - string - 'null' taxAmount: description: Tax amount of the invoice item. type: - number - 'null' format: double setupTaxAmount: description: Tax amount of the setup that is applied to the invoice. type: - number - 'null' format: double trialTaxAmount: description: Tax amount of the trial that is applied to the invoice. type: - number - 'null' format: double autopay: type: boolean default: false description: >- Specifies if payment attempts for the related subscription are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription. paymentTerms: description: Payment terms for the customer which are displayed on the quote. type: string expirationTime: description: >- Date and time when the quote expires. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`. type: - string - 'null' format: date-time issuedTime: description: Date and time when the quote is issued. type: - string - 'null' readOnly: true format: date-time acceptedTime: description: Date and time when the quote is accepted. type: - string - 'null' readOnly: true format: date-time rejectedTime: description: Date and time when the quote is rejected. type: - string - 'null' readOnly: true format: date-time canceledTime: description: Date and time when the quote is canceled. type: - string - 'null' readOnly: true format: date-time redirectUrl: description: |- URL to redirect the customer to when a quote is rejected. The default value is the website URL. type: string format: uri signature: type: object description: Written signature and printed organization name. properties: showWrittenSignatureLines: type: boolean default: false description: Specifies whether to show written signature lines. organizationPrintedName: type: - string - 'null' description: Printed name of the organization. default: null shipping: $ref: '#/components/schemas/Shipping' tax: $ref: '#/components/schemas/Taxes' couponIds: type: - array - 'null' description: >- List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). items: type: string description: Coupon ID. _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: >- Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer. type: string enum: - self - quoteAcceptanceFormUrl - invoicePaymentFormUrl _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object website: type: object subscription: type: object invoice: type: object QuoteChangeOrder: type: object title: QuoteChangeOrder required: - websiteId - customerId - items - action - subscriptionId properties: id: readOnly: true description: ID of the quote. type: string maxLength: 50 example: qt_0YV7DES3WPC5J8JD8QTVNZBZNZ type: description: |- Specifies the type of the quote. A quote can be a subscription or a one-time purchase. type: string readOnly: true enum: - subscription-order - one-time-order action: description: >- Action of the quote for change order items. When a quote is accepted, quote items are applied to the related order. type: string enum: - change example: change acceptanceConditions: type: array writeOnly: true description: >- Conditions that must be met for the quote to be automatically accepted. items: type: string enum: - customer - payment x-enumDescriptions: customer: Quote can be accepted by customer. payment: Related invoice must be paid in full. example: - payment default: - customer acceptanceFulfillment: type: array readOnly: true description: List of `acceptanceConditions` with fulfillment status. items: type: object properties: condition: type: string enum: - customer - payment - organization isFulfilled: type: boolean subscriptionId: description: ID of the related subscription. type: string maxLength: 50 example: ord_0YV7DES3WPC5J8JD8QTVNZBZNZ invoiceId: type: string description: ID of the payment invoice. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT status: description: Status of the quote. type: string readOnly: true enum: - draft - issued - accepted - rejected - canceled - expired x-enumDescriptions: draft: Quote can be edited. This quote cannot be sent to a customer. issued: Quote cannot be edited. This quote can be sent to a customer. accepted: >- Customer accepted the quote and the related order item changes are applied. rejected: Customer rejected the quote. canceled: Organization canceled the quote. expired: Expired before customer or organization interaction. websiteId: $ref: '#/components/schemas/WebsiteId' customerId: $ref: '#/components/schemas/CustomerId' items: type: array description: Items included in the quote. minItems: 1 items: type: object required: - plan - quantity properties: id: description: ID of the quote item. readOnly: true type: string example: qti_0YV7DES3WPC5J8JD8QTVNZBZNZ quantity: description: Number of product units in the specified plan. type: integer minimum: 1 plan: description: Plan details. oneOf: - $ref: '#/components/schemas/OriginalPlan' - $ref: '#/components/schemas/FlexiblePlan' description: type: string description: Description of the quote item. example: Charge per approved transaction with DCC default: '' maxLength: 255 priceDescription: type: string description: |- Price description of the quote item. This value is only used for metered billing items. example: 50% of the markup for approved transactions default: '' maxLength: 255 usageLimits: type: - object - 'null' default: null description: >- Specifies the soft and hard usage limit thresholds for an item with a metered billing plan. This value is ignored when the plan is not metered. properties: softLimit: type: object description: >- Defines thresholds for notification purposes. For example, to notify the customer that their usage is near the hard limit of their metered billing plan. This notification informs the customer so that they can upgrade their plan before the hard limit is reached. When the reported usage reaches 75%, 90%, and 100% of the configured limit a specific event is fired. To notify the customer, a webhook and notification can be configured for this event. This field is useful for accounting and customer success purposes. The usage of metered billing plans can still be reported if the soft limit is reached. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 hardLimit: type: object description: >- Defines a limit where the customer can no longer use the service. Hard limits are used in addition to soft limits. When a soft limit is reached, a customer may receive a notification but the service can still be provided up to the hard limit value so that the customer can upgrade their plan. When the reported usage reaches the configured limit, a specific event is triggered. To notify the customer in the merchant system, or block a service, a webhook and notification can be configured for this event. When the total usage reaches the hard limit quantity, or amount values, metered billing plan usages can no longer be reported. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _embedded: type: object description: >- Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: product: type: object renewalPolicy: description: >- Specifies if the subscription retains its current `renewalTime` or resets it to a newly calculated `renewalTime`. type: string enum: - reset - retain prorated: description: >- Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retain`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period length. type: boolean effectiveTime: description: >- Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the time of quote acceptance. type: - string - 'null' format: date-time keepTrial: description: |- Specifies if the subscription order must retain its active trial. This field is only applicable if `renewalPolicy` is set to `retain`. type: boolean default: false interimOnly: type: boolean default: true description: |- Specifies if the quotation invoice must include interim items only. If this value is set to `false`, all upcoming items are included. usageSettings: type: array default: [] description: Usage settings for items with metered billing. items: type: object properties: planId: type: string description: ID of the plan from which usages are transferred. example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X policy: type: string enum: - reset - transfer description: Policy for removed items that have a metered billing plan. x-enumDescriptions: reset: Delete existing usages. transfer: >- Transfer usages from removed plans to existing plans that are in the same subscription, using the `transferTo` field. transferTo: type: - string - 'null' default: null description: >- ID of the plan to which usages are transferred. If an item with a specified plan does not exist, or does not have a metered billing plan, this transfer is ignored. example: plan_0YV7DENSVGDBW9S71XZNNYYQ0Y invoicePreview: type: object description: Preview of the quote invoice. readOnly: true properties: currency: description: Currency of the invoice. $ref: '#/components/schemas/CurrencyCode' initialAmounts: type: object description: Total amounts of the initial invoice. properties: amount: description: Amount of the invoice. type: number x-type: Money format: double subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double shippingAmount: description: Shipping amount that is applied to the invoice. type: number x-type: Money format: double taxAmount: description: Tax amount that is applied to the invoice. type: number x-type: Money format: double recurringAmounts: type: - object - 'null' description: >- Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`. properties: amount: description: Amount of the invoice. type: number x-type: Money format: double subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double shippingAmount: description: Shipping amount that is applied to the invoice. type: number x-type: Money format: double taxAmount: description: Tax amount that is applied to the invoice. type: number x-type: Money format: double items: type: array description: Invoice items. items: type: object properties: quoteItemId: description: ID of the related quote item. type: string example: qti_0YV7DES3WPC5J8JD8QTVNZBZNZ type: type: string description: Type of the invoice item. x-basic: true enum: - debit - credit name: description: Name of the invoice item. type: string maxLength: 1000 description: description: Description of the invoice item. type: string example: Charge per approved transaction with DCC maxLength: 255 priceDescription: type: string description: Price description of the invoice item. example: 50% of the markup for approved transactions maxLength: 255 unitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double quantity: description: Quantity of the invoice item. type: integer period: description: Date interval of the invoice item. type: - string - 'null' setupUnitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double trialUnitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double trialPeriod: description: Date interval of the invoice item trial. type: - string - 'null' taxAmount: description: Tax amount of the invoice item. type: - number - 'null' format: double setupTaxAmount: description: Tax amount of the setup that is applied to the invoice. type: - number - 'null' format: double trialTaxAmount: description: Tax amount of the trial that is applied to the invoice. type: - number - 'null' format: double autopay: type: - boolean - 'null' description: >- Specifies if payment attempts for the related subscription are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription. paymentTerms: description: Payment terms for the customer which are displayed on the quote. type: string expirationTime: description: >- Date and time when the quote expires. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`. type: - string - 'null' format: date-time issuedTime: description: Date and time when the quote is issued. type: - string - 'null' readOnly: true format: date-time acceptedTime: description: Date and time when the quote is accepted. type: - string - 'null' readOnly: true format: date-time rejectedTime: description: Date and time when the quote is rejected. type: - string - 'null' readOnly: true format: date-time canceledTime: description: Date and time when the quote is canceled. type: - string - 'null' readOnly: true format: date-time redirectUrl: description: |- URL to redirect the customer to when a quote is rejected. The default value is the website URL. type: string format: uri signature: type: object description: Written signature and printed organization name. properties: showWrittenSignatureLines: type: boolean default: false description: Specifies whether to show written signature lines. organizationPrintedName: type: - string - 'null' description: Printed name of the organization. default: null shipping: $ref: '#/components/schemas/Shipping' tax: $ref: '#/components/schemas/Taxes' couponIds: type: - array - 'null' description: >- List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). items: type: string description: Coupon ID. _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: >- Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer. type: string enum: - self - quoteAcceptanceFormUrl - invoicePaymentFormUrl _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object website: type: object subscription: type: object invoice: type: object QuoteReactivateOrder: type: object title: QuoteReactivateOrder required: - websiteId - customerId - items - action - subscriptionId properties: id: readOnly: true description: ID of the quote. type: string maxLength: 50 example: qt_0YV7DES3WPC5J8JD8QTVNZBZNZ type: description: |- Specifies the type of the quote. A quote can be a subscription or a one-time purchase. type: string readOnly: true enum: - subscription-order - one-time-order action: description: >- Action of the quote for churned or canceled order reactivation. When a quote is accepted, quote items are applied to the order and order is reactivated. type: string enum: - reactivate example: reactivate acceptanceConditions: type: array writeOnly: true description: >- Conditions that must be met for the quote to be automatically accepted. items: type: string enum: - customer - payment x-enumDescriptions: customer: Quote can be accepted by customer. payment: Related invoice must be paid in full. example: - payment default: - customer acceptanceFulfillment: type: array readOnly: true description: List of `acceptanceConditions` with fulfillment status. items: type: object properties: condition: type: string enum: - customer - payment - organization isFulfilled: type: boolean subscriptionId: description: ID of the related subscription. type: string maxLength: 50 example: ord_0YV7DES3WPC5J8JD8QTVNZBZNZ invoiceId: type: string description: ID of the payment invoice. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT status: description: Status of the quote. type: string readOnly: true enum: - draft - issued - accepted - rejected - canceled - expired x-enumDescriptions: draft: Quote can be edited. This quote cannot be sent to a customer. issued: Quote cannot be edited. This quote can be sent to a customer. accepted: Customer accepted the quote and the related order is reactivated. rejected: Customer rejected the quote. canceled: Organization canceled the quote. expired: Expired before customer or organization interaction. websiteId: $ref: '#/components/schemas/WebsiteId' customerId: $ref: '#/components/schemas/CustomerId' items: type: array description: Items included in the quote. minItems: 1 items: type: object required: - plan - quantity properties: id: description: ID of the quote item. readOnly: true type: string example: qti_0YV7DES3WPC5J8JD8QTVNZBZNZ quantity: description: Number of product units in the specified plan. type: integer minimum: 1 plan: description: Plan details. oneOf: - $ref: '#/components/schemas/OriginalPlan' - $ref: '#/components/schemas/FlexiblePlan' description: type: string description: Description of the quote item. example: Charge per approved transaction with DCC default: '' maxLength: 255 priceDescription: type: string description: |- Price description of the quote item. This value is only used for metered billing items. example: 50% of the markup for approved transactions default: '' maxLength: 255 usageLimits: type: - object - 'null' default: null description: >- Specifies the soft and hard usage limit thresholds for an item with a metered billing plan. This value is ignored when the plan is not metered. properties: softLimit: type: object description: >- Defines thresholds for notification purposes. For example, to notify the customer that their usage is near the hard limit of their metered billing plan. This notification informs the customer so that they can upgrade their plan before the hard limit is reached. When the reported usage reaches 75%, 90%, and 100% of the configured limit a specific event is fired. To notify the customer, a webhook and notification can be configured for this event. This field is useful for accounting and customer success purposes. The usage of metered billing plans can still be reported if the soft limit is reached. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 hardLimit: type: object description: >- Defines a limit where the customer can no longer use the service. Hard limits are used in addition to soft limits. When a soft limit is reached, a customer may receive a notification but the service can still be provided up to the hard limit value so that the customer can upgrade their plan. When the reported usage reaches the configured limit, a specific event is triggered. To notify the customer in the merchant system, or block a service, a webhook and notification can be configured for this event. When the total usage reaches the hard limit quantity, or amount values, metered billing plan usages can no longer be reported. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _embedded: type: object description: >- Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: product: type: object effectiveTime: description: |- Date and time when the service period starts, unless the subscription is canceled but still active. If the subscription is still active, the subscription continues for the current service period. If this field is omitted, this value defaults to the current time. type: - string - 'null' format: date-time renewalTime: description: >- Date and time of the next subscription renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the subscription is canceled but still active, it is ignored and the next renewal occurs as scheduled. type: - string - 'null' format: date-time paymentInstrumentId: description: >- ID of the payment instrument. If this field is omitted, the subscription payment instrument remains unchanged. type: - string - 'null' maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 invoicePreview: type: object description: Preview of the quote invoice. readOnly: true properties: currency: description: Currency of the invoice. $ref: '#/components/schemas/CurrencyCode' initialAmounts: type: object description: Total amounts of the initial invoice. properties: amount: description: Amount of the invoice. type: number x-type: Money format: double subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double shippingAmount: description: Shipping amount that is applied to the invoice. type: number x-type: Money format: double taxAmount: description: Tax amount that is applied to the invoice. type: number x-type: Money format: double recurringAmounts: type: - object - 'null' description: >- Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`. properties: amount: description: Amount of the invoice. type: number x-type: Money format: double subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double shippingAmount: description: Shipping amount that is applied to the invoice. type: number x-type: Money format: double taxAmount: description: Tax amount that is applied to the invoice. type: number x-type: Money format: double items: type: array description: Invoice items. items: type: object properties: quoteItemId: description: ID of the related quote item. type: string example: qti_0YV7DES3WPC5J8JD8QTVNZBZNZ type: type: string description: Type of the invoice item. x-basic: true enum: - debit - credit name: description: Name of the invoice item. type: string maxLength: 1000 description: description: Description of the invoice item. type: string example: Charge per approved transaction with DCC maxLength: 255 priceDescription: type: string description: Price description of the invoice item. example: 50% of the markup for approved transactions maxLength: 255 unitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double quantity: description: Quantity of the invoice item. type: integer period: description: Date interval of the invoice item. type: - string - 'null' setupUnitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double trialUnitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double trialPeriod: description: Date interval of the invoice item trial. type: - string - 'null' taxAmount: description: Tax amount of the invoice item. type: - number - 'null' format: double setupTaxAmount: description: Tax amount of the setup that is applied to the invoice. type: - number - 'null' format: double trialTaxAmount: description: Tax amount of the trial that is applied to the invoice. type: - number - 'null' format: double autopay: type: - boolean - 'null' description: >- Specifies if payment attempts for the related subscription are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription. paymentTerms: description: Payment terms for the customer which are displayed on the quote. type: string expirationTime: description: >- Date and time when the quote expires. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`. type: - string - 'null' format: date-time issuedTime: description: Date and time when the quote is issued. type: - string - 'null' readOnly: true format: date-time acceptedTime: description: Date and time when the quote is accepted. type: - string - 'null' readOnly: true format: date-time rejectedTime: description: Date and time when the quote is rejected. type: - string - 'null' readOnly: true format: date-time canceledTime: description: Date and time when the quote is canceled. type: - string - 'null' readOnly: true format: date-time redirectUrl: description: |- URL to redirect the customer to when a quote is rejected. The default value is the website URL. type: string format: uri signature: type: object description: Written signature and printed organization name. properties: showWrittenSignatureLines: type: boolean default: false description: Specifies whether to show written signature lines. organizationPrintedName: type: - string - 'null' description: Printed name of the organization. default: null shipping: $ref: '#/components/schemas/Shipping' tax: $ref: '#/components/schemas/Taxes' couponIds: type: - array - 'null' description: >- List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). items: type: string description: Coupon ID. _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: >- Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer. type: string enum: - self - quoteAcceptanceFormUrl - invoicePaymentFormUrl _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object website: type: object subscription: type: object invoice: type: object QuoteTrialConversionOrder: type: object title: QuoteTrialConversionOrder required: - websiteId - customerId - items - action - subscriptionId properties: id: readOnly: true description: ID of the quote. type: string maxLength: 50 example: qt_0YV7DES3WPC5J8JD8QTVNZBZNZ type: description: |- Specifies the type of the quote. A quote can be a subscription or a one-time purchase. type: string readOnly: true enum: - subscription-order - one-time-order action: description: |- Action of the quote for an ended trial-only subscription. When a quote is accepted, the related order is activated. type: string enum: - trial-only-conversion example: trial-only-conversion acceptanceConditions: type: array writeOnly: true description: >- Conditions that must be met for the quote to be automatically accepted. items: type: string enum: - customer - payment x-enumDescriptions: customer: Quote can be accepted by customer. payment: Related invoice must be paid in full. example: - payment default: - customer acceptanceFulfillment: type: array readOnly: true description: List of `acceptanceConditions` with fulfillment status. items: type: object properties: condition: type: string enum: - customer - payment - organization isFulfilled: type: boolean subscriptionId: description: ID of the related order. type: string maxLength: 50 example: ord_0YV7DES3WPC5J8JD8QTVNZBZNZ invoiceId: type: string description: ID of the payment invoice. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT status: description: Status of the quote. type: string readOnly: true enum: - draft - issued - accepted - rejected - canceled - expired x-enumDescriptions: draft: Quote can be edited. This quote cannot be sent to a customer. issued: Quote cannot be edited. This quote can be sent to a customer. accepted: >- Customer accepted the quote and the related order item changes are applied. rejected: Customer rejected the quote. canceled: Organization canceled the quote. expired: Expired before customer or organization interaction. websiteId: $ref: '#/components/schemas/WebsiteId' customerId: $ref: '#/components/schemas/CustomerId' items: type: array description: Items included in the quote. minItems: 1 items: type: object required: - plan - quantity properties: id: description: ID of the quote item. readOnly: true type: string example: qti_0YV7DES3WPC5J8JD8QTVNZBZNZ quantity: description: Number of product units in the specified plan. type: integer minimum: 1 plan: description: Plan details. oneOf: - $ref: '#/components/schemas/OriginalPlan' - $ref: '#/components/schemas/FlexiblePlan' description: type: string description: Description of the quote item. example: Charge per approved transaction with DCC default: '' maxLength: 255 priceDescription: type: string description: |- Price description of the quote item. This value is only used for metered billing items. example: 50% of the markup for approved transactions default: '' maxLength: 255 usageLimits: type: - object - 'null' default: null description: >- Specifies the soft and hard usage limit thresholds for an item with a metered billing plan. This value is ignored when the plan is not metered. properties: softLimit: type: object description: >- Defines thresholds for notification purposes. For example, to notify the customer that their usage is near the hard limit of their metered billing plan. This notification informs the customer so that they can upgrade their plan before the hard limit is reached. When the reported usage reaches 75%, 90%, and 100% of the configured limit a specific event is fired. To notify the customer, a webhook and notification can be configured for this event. This field is useful for accounting and customer success purposes. The usage of metered billing plans can still be reported if the soft limit is reached. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 hardLimit: type: object description: >- Defines a limit where the customer can no longer use the service. Hard limits are used in addition to soft limits. When a soft limit is reached, a customer may receive a notification but the service can still be provided up to the hard limit value so that the customer can upgrade their plan. When the reported usage reaches the configured limit, a specific event is triggered. To notify the customer in the merchant system, or block a service, a webhook and notification can be configured for this event. When the total usage reaches the hard limit quantity, or amount values, metered billing plan usages can no longer be reported. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _embedded: type: object description: >- Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: product: type: object invoicePreview: type: object description: Preview of the quote invoice. readOnly: true properties: currency: description: Currency of the invoice. $ref: '#/components/schemas/CurrencyCode' initialAmounts: type: object description: Total amounts of the initial invoice. properties: amount: description: Amount of the invoice. type: number x-type: Money format: double subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double shippingAmount: description: Shipping amount that is applied to the invoice. type: number x-type: Money format: double taxAmount: description: Tax amount that is applied to the invoice. type: number x-type: Money format: double recurringAmounts: type: - object - 'null' description: >- Total amounts of the recurring invoice. This includes recurring items only. If the quote does not have recurring items, the value of this field is `null`. properties: amount: description: Amount of the invoice. type: number x-type: Money format: double subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double shippingAmount: description: Shipping amount that is applied to the invoice. type: number x-type: Money format: double taxAmount: description: Tax amount that is applied to the invoice. type: number x-type: Money format: double items: type: array description: Invoice items. items: type: object properties: quoteItemId: description: ID of the related quote item. type: string example: qti_0YV7DES3WPC5J8JD8QTVNZBZNZ type: type: string description: Type of the invoice item. x-basic: true enum: - debit - credit name: description: Name of the invoice item. type: string maxLength: 1000 description: description: Description of the invoice item. type: string example: Charge per approved transaction with DCC maxLength: 255 priceDescription: type: string description: Price description of the invoice item. example: 50% of the markup for approved transactions maxLength: 255 unitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double quantity: description: Quantity of the invoice item. type: integer period: description: Date interval of the invoice item. type: - string - 'null' setupUnitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double trialUnitPrice: description: Unit price of the invoice item. type: - number - 'null' format: double trialPeriod: description: Date interval of the invoice item trial. type: - string - 'null' taxAmount: description: Tax amount of the invoice item. type: - number - 'null' format: double setupTaxAmount: description: Tax amount of the setup that is applied to the invoice. type: - number - 'null' format: double trialTaxAmount: description: Tax amount of the trial that is applied to the invoice. type: - number - 'null' format: double autopay: type: - boolean - 'null' description: >- Specifies if payment attempts for the related subscription are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription. paymentTerms: description: Payment terms for the customer which are displayed on the quote. type: string expirationTime: description: >- Date and time when the quote expires. The default expiration time is one month from the time the quote is issued. In a `draft` state, this field may be `null`. type: - string - 'null' format: date-time issuedTime: description: Date and time when the quote is issued. type: - string - 'null' readOnly: true format: date-time acceptedTime: description: Date and time when the quote is accepted. type: - string - 'null' readOnly: true format: date-time rejectedTime: description: Date and time when the quote is rejected. type: - string - 'null' readOnly: true format: date-time canceledTime: description: Date and time when the quote is canceled. type: - string - 'null' readOnly: true format: date-time redirectUrl: description: |- URL to redirect the customer to when a quote is rejected. The default value is the website URL. type: string format: uri signature: type: object description: Written signature and printed organization name. properties: showWrittenSignatureLines: type: boolean default: false description: Specifies whether to show written signature lines. organizationPrintedName: type: - string - 'null' description: Printed name of the organization. default: null shipping: $ref: '#/components/schemas/Shipping' tax: $ref: '#/components/schemas/Taxes' couponIds: type: - array - 'null' description: >- List of coupons to redeem on the customer and apply to the related invoice. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). items: type: string description: Coupon ID. _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: >- Type of link. If the quote is issued, a customer can be redirected to the `invoicePaymentFormUrl` value to pay the related invoice using one of the methods which are available to the customer. type: string enum: - self - quoteAcceptanceFormUrl - invoicePaymentFormUrl _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object website: type: object order: type: object invoice: type: object Quote: discriminator: propertyName: action mapping: create: '#/components/schemas/QuoteCreateOrder' change: '#/components/schemas/QuoteChangeOrder' reactivate: '#/components/schemas/QuoteReactivateOrder' trial-only-conversion: '#/components/schemas/QuoteTrialConversionOrder' oneOf: - $ref: '#/components/schemas/QuoteCreateOrder' - $ref: '#/components/schemas/QuoteChangeOrder' - $ref: '#/components/schemas/QuoteReactivateOrder' - $ref: '#/components/schemas/QuoteTrialConversionOrder' PatchQuote: type: object description: Patch quote object. properties: tax: $ref: '#/components/schemas/Taxes' QuoteTimeline: type: object properties: id: type: string description: ID of the timeline message. readOnly: true maxLength: 50 example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC type: description: Type of timeline message. type: string readOnly: true enum: - quote-created - quote-issued - quote-accepted - quote-rejected - quote-canceled - quote-recalled - quote-updated - quote-expired - quote-order-attached triggeredBy: description: Specifies who, or what, triggered the timeline message. type: string readOnly: true enum: - rebilly - app - direct-api message: description: Contents of the timeline message. type: string extraData: $ref: '#/components/schemas/TimelineExtraData' occurredTime: description: Date and time when the timeline message occurred. readOnly: true $ref: '#/components/schemas/ServerTimestamp' _links: $ref: '#/components/schemas/SelfLink' ReadyToPayAmount: type: object title: With amount required: - websiteId - currency - amount - riskMetadata properties: websiteId: $ref: '#/components/schemas/WebsiteId' currency: $ref: '#/components/schemas/CurrencyCode' amount: description: Amount to pay. type: number format: double billingAddress: description: Billing address. writeOnly: true $ref: '#/components/schemas/ContactObject' riskMetadata: $ref: '#/components/schemas/RiskMetadata' ReadyToPayItems: type: object title: With items required: - websiteId - items - riskMetadata properties: websiteId: $ref: '#/components/schemas/WebsiteId' items: type: array minItems: 1 items: type: object required: - planId - quantity properties: planId: type: string description: ID of the plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X quantity: description: Number of product units in the specified plan. type: integer billingAddress: description: Billing address. writeOnly: true $ref: '#/components/schemas/ContactObject' riskMetadata: $ref: '#/components/schemas/RiskMetadata' ReadyToPay: type: object oneOf: - $ref: '#/components/schemas/ReadyToPayAmount' - $ref: '#/components/schemas/ReadyToPayItems' PostReadyToPay: allOf: - type: object properties: customerId: $ref: '#/components/schemas/CustomerId' - $ref: '#/components/schemas/ReadyToPay' Country: description: >- ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/). type: string pattern: ^[A-Z]{2}$ example: US ApplePayFeature: type: object title: Apple Pay Digital Wallet properties: name: type: string description: Name of the feature. enum: - Apple Pay displayName: description: >- String of 64 or fewer UTF-8 characters containing the canonical name for your store, that is suitable for display. Do not localize the name. type: string example: Test Merchant country: $ref: '#/components/schemas/Country' GooglePayFeature: type: object title: Google Pay Digital Wallet properties: name: type: string description: Name of the feature. enum: - Google Pay merchantName: description: Merchant name in Google Pay. type: string example: Test Merchant merchantOrigin: description: Merchant origin in Google Pay. The fully qualified domain name. type: string example: www.example.com country: $ref: '#/components/schemas/Country' PaymentCardFeature: type: object discriminator: propertyName: name mapping: Apple Pay: '#/components/schemas/ApplePayFeature' Google Pay: '#/components/schemas/GooglePayFeature' oneOf: - $ref: '#/components/schemas/ApplePayFeature' - $ref: '#/components/schemas/GooglePayFeature' ReadyToPayMethodFilters: type: array description: >- For the method to be applicable, one or more of the following filters must match. If no filters are sent, no restrictions are applied. For more information, see [Using filters](https://www.rebilly.com/docs/dev-docs/search-filters). items: type: string ReadyToPayPaymentCardMethod: type: object title: Payment card required: - method properties: method: type: string description: Payment method. enum: - payment-card feature: description: |- Specific feature of this method. For example, a digital wallet. If the method does not have any features, this value is null. oneOf: - $ref: '#/components/schemas/PaymentCardFeature' - type: 'null' brands: type: array description: List of supported brands. minItems: 1 items: $ref: '#/components/schemas/PaymentCardBrand' filters: $ref: '#/components/schemas/ReadyToPayMethodFilters' AchPlaidFeature: type: object title: Plaid required: - name - linkToken - expirationTime properties: name: type: string description: Name of the feature. enum: - Plaid linkToken: type: string description: Plaid `linkToken` for frontend integrations. expirationTime: type: string format: date-time description: Date and time when the `linkToken` expires. ReadyToPayAchMethod: type: object title: ACH required: - method properties: method: type: string description: Payment method. enum: - ach feature: description: |- Specific feature of this method. For example, a digital wallet or a processor. If the method does not have any features, this value is null. oneOf: - $ref: '#/components/schemas/AchPlaidFeature' - type: 'null' filters: $ref: '#/components/schemas/ReadyToPayMethodFilters' ReadyToPayGenericMethod: type: object title: Generic required: - method properties: method: $ref: '#/components/schemas/AlternativePaymentMethods' filters: $ref: '#/components/schemas/ReadyToPayMethodFilters' PayPalBillingAgreementFeature: type: object title: Billing agreement required: - name - paypalMerchantId - paypalClientId - billingAgreementToken - expirationTime properties: name: type: string description: Name of the feature. enum: - PayPal billing agreement paypalMerchantId: type: string description: ID of the PayPal merchant. paypalClientId: type: string description: ID of the PayPal client. billingAgreementToken: type: string description: PayPal billing agreement token. expirationTime: type: string format: date-time description: Date and time when the billing agreement token expires. ReadyToPayPayPalMethod: type: object title: PayPal required: - method properties: method: type: string description: Payment method. enum: - paypal feature: description: Specific features of PayPal. oneOf: - $ref: '#/components/schemas/PayPalBillingAgreementFeature' - type: 'null' filters: $ref: '#/components/schemas/ReadyToPayMethodFilters' KlarnaFeature: type: object title: Klarna required: - name - clientToken - sessionId properties: name: type: string description: Name of the feature. enum: - Klarna clientToken: type: string description: Klarna client token. sessionId: type: string description: Klarna session token. ReadyToPayKlarnaMethod: type: object title: Klarna required: - method properties: method: type: string description: Payment method. enum: - Klarna feature: description: |- Specific feature of this method. For example, a digital wallet or a processor. If the method does not have any features, this value is null. oneOf: - $ref: '#/components/schemas/KlarnaFeature' - type: 'null' filters: $ref: '#/components/schemas/ReadyToPayMethodFilters' ReadyToPayMethods: type: object discriminator: propertyName: method mapping: payment-card: '#/components/schemas/ReadyToPayPaymentCardMethod' ach: '#/components/schemas/ReadyToPayAchMethod' cash: '#/components/schemas/ReadyToPayGenericMethod' check: '#/components/schemas/ReadyToPayGenericMethod' paypal: '#/components/schemas/ReadyToPayPayPalMethod' AdvCash: '#/components/schemas/ReadyToPayGenericMethod' Alfa-click: '#/components/schemas/ReadyToPayGenericMethod' Alipay: '#/components/schemas/ReadyToPayGenericMethod' AstroPay Card: '#/components/schemas/ReadyToPayGenericMethod' AstroPay-GO: '#/components/schemas/ReadyToPayGenericMethod' BankReferenced: '#/components/schemas/ReadyToPayGenericMethod' bank-transfer: '#/components/schemas/ReadyToPayGenericMethod' bank-transfer-2: '#/components/schemas/ReadyToPayGenericMethod' bank-transfer-3: '#/components/schemas/ReadyToPayGenericMethod' bank-transfer-4: '#/components/schemas/ReadyToPayGenericMethod' bank-transfer-5: '#/components/schemas/ReadyToPayGenericMethod' bank-transfer-6: '#/components/schemas/ReadyToPayGenericMethod' bank-transfer-7: '#/components/schemas/ReadyToPayGenericMethod' bank-transfer-8: '#/components/schemas/ReadyToPayGenericMethod' bank-transfer-9: '#/components/schemas/ReadyToPayGenericMethod' Baloto: '#/components/schemas/ReadyToPayGenericMethod' Beeline: '#/components/schemas/ReadyToPayGenericMethod' Belfius-direct-net: '#/components/schemas/ReadyToPayGenericMethod' bitcoin: '#/components/schemas/ReadyToPayGenericMethod' Bizum: '#/components/schemas/ReadyToPayGenericMethod' Boleto: '#/components/schemas/ReadyToPayGenericMethod' cash-deposit: '#/components/schemas/ReadyToPayGenericMethod' CASHlib: '#/components/schemas/ReadyToPayGenericMethod' CashToCode: '#/components/schemas/ReadyToPayGenericMethod' China UnionPay: '#/components/schemas/ReadyToPayGenericMethod' Cleo: '#/components/schemas/ReadyToPayGenericMethod' CODVoucher: '#/components/schemas/ReadyToPayGenericMethod' Conekta-oxxo: '#/components/schemas/ReadyToPayGenericMethod' Cupon-de-pagos: '#/components/schemas/ReadyToPayGenericMethod' cryptocurrency: '#/components/schemas/ReadyToPayGenericMethod' domestic-cards: '#/components/schemas/ReadyToPayGenericMethod' echeck: '#/components/schemas/ReadyToPayGenericMethod' ecoPayz: '#/components/schemas/ReadyToPayGenericMethod' ecoVoucher: '#/components/schemas/ReadyToPayGenericMethod' Efecty: '#/components/schemas/ReadyToPayGenericMethod' EPS: '#/components/schemas/ReadyToPayGenericMethod' ePay.bg: '#/components/schemas/ReadyToPayGenericMethod' eZeeWallet: '#/components/schemas/ReadyToPayGenericMethod' FasterPay: '#/components/schemas/ReadyToPayGenericMethod' Flexepin: '#/components/schemas/ReadyToPayGenericMethod' Giropay: '#/components/schemas/ReadyToPayGenericMethod' Gpaysafe: '#/components/schemas/ReadyToPayGenericMethod' Google Pay: '#/components/schemas/ReadyToPayGenericMethod' iDebit: '#/components/schemas/ReadyToPayGenericMethod' iDEAL: '#/components/schemas/ReadyToPayGenericMethod' ING-homepay: '#/components/schemas/ReadyToPayGenericMethod' INOVAPAY-pin: '#/components/schemas/ReadyToPayGenericMethod' INOVAPAY-wallet: '#/components/schemas/ReadyToPayGenericMethod' InstaDebit: '#/components/schemas/ReadyToPayGenericMethod' instant-bank-transfer: '#/components/schemas/ReadyToPayGenericMethod' InstantPayments: '#/components/schemas/ReadyToPayGenericMethod' Interac: '#/components/schemas/ReadyToPayGenericMethod' Interac-online: '#/components/schemas/ReadyToPayGenericMethod' Interac-eTransfer: '#/components/schemas/ReadyToPayGenericMethod' invoice: '#/components/schemas/ReadyToPayGenericMethod' iWallet: '#/components/schemas/ReadyToPayGenericMethod' Jeton: '#/components/schemas/ReadyToPayGenericMethod' jpay: '#/components/schemas/ReadyToPayGenericMethod' Khelocard: '#/components/schemas/ReadyToPayGenericMethod' Klarna: '#/components/schemas/ReadyToPayKlarnaMethod' KNOT: '#/components/schemas/ReadyToPayGenericMethod' loonie: '#/components/schemas/ReadyToPayGenericMethod' Matrix: '#/components/schemas/ReadyToPayGenericMethod' MaxiCash: '#/components/schemas/ReadyToPayGenericMethod' Megafon: '#/components/schemas/ReadyToPayGenericMethod' MiFinity-eWallet: '#/components/schemas/ReadyToPayGenericMethod' miscellaneous: '#/components/schemas/ReadyToPayGenericMethod' Bancontact: '#/components/schemas/ReadyToPayGenericMethod' Bancontact-mobile: '#/components/schemas/ReadyToPayGenericMethod' MTS: '#/components/schemas/ReadyToPayGenericMethod' MuchBetter: '#/components/schemas/ReadyToPayGenericMethod' Multibanco: '#/components/schemas/ReadyToPayGenericMethod' Neosurf: '#/components/schemas/ReadyToPayGenericMethod' Netbanking: '#/components/schemas/ReadyToPayGenericMethod' Neteller: '#/components/schemas/ReadyToPayGenericMethod' Nordea-Solo: '#/components/schemas/ReadyToPayGenericMethod' OchaPay: '#/components/schemas/ReadyToPayGenericMethod' online-bank-transfer: '#/components/schemas/ReadyToPayGenericMethod' Onlineueberweisen: '#/components/schemas/ReadyToPayGenericMethod' oriental-wallet: '#/components/schemas/ReadyToPayGenericMethod' OXXO: '#/components/schemas/ReadyToPayGenericMethod' P24: '#/components/schemas/ReadyToPayGenericMethod' Pagadito: '#/components/schemas/ReadyToPayGenericMethod' PagoEffectivo: '#/components/schemas/ReadyToPayGenericMethod' Pagsmile-deposit-express: '#/components/schemas/ReadyToPayGenericMethod' Pagsmile-lottery: '#/components/schemas/ReadyToPayGenericMethod' PayCash: '#/components/schemas/ReadyToPayGenericMethod' Payeer: '#/components/schemas/ReadyToPayGenericMethod' PaymentAsia-crypto: '#/components/schemas/ReadyToPayGenericMethod' Paymero: '#/components/schemas/ReadyToPayGenericMethod' Perfect-money: '#/components/schemas/ReadyToPayGenericMethod' Piastrix: '#/components/schemas/ReadyToPayGenericMethod' plaid-account: '#/components/schemas/ReadyToPayGenericMethod' PayTabs: '#/components/schemas/ReadyToPayGenericMethod' Paysafecard: '#/components/schemas/ReadyToPayGenericMethod' Paysafecash: '#/components/schemas/ReadyToPayGenericMethod' Pay4Fun: '#/components/schemas/ReadyToPayGenericMethod' Paynote: '#/components/schemas/ReadyToPayGenericMethod' PinPay: '#/components/schemas/ReadyToPayGenericMethod' phone: '#/components/schemas/ReadyToPayGenericMethod' PhonePe: '#/components/schemas/ReadyToPayGenericMethod' POLi: '#/components/schemas/ReadyToPayGenericMethod' PostFinance-card: '#/components/schemas/ReadyToPayGenericMethod' PostFinance-e-finance: '#/components/schemas/ReadyToPayGenericMethod' QIWI: '#/components/schemas/ReadyToPayGenericMethod' QPay: '#/components/schemas/ReadyToPayGenericMethod' QQPay: '#/components/schemas/ReadyToPayGenericMethod' rapyd-checkout: '#/components/schemas/ReadyToPayGenericMethod' Resurs: '#/components/schemas/ReadyToPayGenericMethod' SafetyPay: '#/components/schemas/ReadyToPayGenericMethod' SEPA: '#/components/schemas/ReadyToPayGenericMethod' Skrill: '#/components/schemas/ReadyToPayGenericMethod' Skrill Rapid Transfer: '#/components/schemas/ReadyToPayGenericMethod' SMSVoucher: '#/components/schemas/ReadyToPayGenericMethod' Sofort: '#/components/schemas/ReadyToPayGenericMethod' SparkPay: '#/components/schemas/ReadyToPayGenericMethod' swift-dbt: '#/components/schemas/ReadyToPayGenericMethod' Tele2: '#/components/schemas/ReadyToPayGenericMethod' Terminaly-RF: '#/components/schemas/ReadyToPayGenericMethod' ToditoCash-card: '#/components/schemas/ReadyToPayGenericMethod' Trustly: '#/components/schemas/ReadyToPayGenericMethod' UPayCard: '#/components/schemas/ReadyToPayGenericMethod' UPI: '#/components/schemas/ReadyToPayGenericMethod' USD-coin: '#/components/schemas/ReadyToPayGenericMethod' VCreditos: '#/components/schemas/ReadyToPayGenericMethod' VenusPoint: '#/components/schemas/ReadyToPayGenericMethod' voucher: '#/components/schemas/ReadyToPayGenericMethod' voucher-2: '#/components/schemas/ReadyToPayGenericMethod' voucher-3: '#/components/schemas/ReadyToPayGenericMethod' voucher-4: '#/components/schemas/ReadyToPayGenericMethod' Webmoney: '#/components/schemas/ReadyToPayGenericMethod' Webpay: '#/components/schemas/ReadyToPayGenericMethod' Webpay-2: '#/components/schemas/ReadyToPayGenericMethod' Webpay Card: '#/components/schemas/ReadyToPayGenericMethod' WeChat Pay: '#/components/schemas/ReadyToPayGenericMethod' XPay-P2P: '#/components/schemas/ReadyToPayGenericMethod' XPay-QR: '#/components/schemas/ReadyToPayGenericMethod' Yandex-money: '#/components/schemas/ReadyToPayGenericMethod' Zotapay: '#/components/schemas/ReadyToPayGenericMethod' Zimpler: '#/components/schemas/ReadyToPayGenericMethod' anyOf: - $ref: '#/components/schemas/ReadyToPayPaymentCardMethod' - $ref: '#/components/schemas/ReadyToPayAchMethod' - $ref: '#/components/schemas/ReadyToPayGenericMethod' - $ref: '#/components/schemas/ReadyToPayPayPalMethod' - $ref: '#/components/schemas/ReadyToPayKlarnaMethod' SubscriptionOrOneTimeSaleItem: type: object required: - plan properties: id: type: string description: ID of the order item. readOnly: true maxLength: 50 planId: description: ID of the plan. deprecated: true x-basic: true type: string maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X quantity: description: Number of product units in the specified plan. type: integer quantityFilled: description: Number of filled product units. type: integer plan: anyOf: - $ref: '#/components/schemas/OriginalPlan' - $ref: '#/components/schemas/FlexiblePlan' usageLimits: type: object description: >- Specifies the soft and hard usage limit thresholds for an item with a metered billing plan. This value is ignored when the plan is not metered. properties: softLimit: type: object description: >- Defines thresholds for notification purposes. For example, to notify the customer that their usage is near the hard limit of their metered billing plan. This notification informs the customer so that they can upgrade their plan before the hard limit is reached. When the reported usage reaches 75%, 90%, and 100% of the configured limit a specific event is fired. To notify the customer, a webhook and notification can be configured for this event. This field is useful for accounting and customer success purposes. The usage of metered billing plans can still be reported if the soft limit is reached. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 hardLimit: type: object description: >- Defines a limit where the customer can no longer use the service. Hard limits are used in addition to soft limits. When a soft limit is reached, a customer may receive a notification but the service can still be provided up to the hard limit value so that the customer can upgrade their plan. When the reported usage reaches the configured limit, a specific event is triggered. To notify the customer in the merchant system, or block a service, a webhook and notification can be configured for this event. When the total usage reaches the hard limit quantity, or amount values, metered billing plan usages can no longer be reported. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 revision: type: integer readOnly: true description: >- Revision number that increments with each overriding change to this specific plan item. isModified: type: boolean readOnly: true description: Specifies if the plan information is modified for this subscription. isGrandfathered: type: boolean readOnly: true description: >- Specifies if the current plan revision number is greater than the plan item revision number. _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: product: type: object Subscription: type: object required: - orderType - customerId - websiteId - items properties: id: type: string description: ID of the order. readOnly: true maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 orderId: type: string description: ID of the order (experimental). readOnly: true maxLength: 50 example: ord_01GYJPRKHBD6ZYHH897QCJMBS4 orderType: description: |- Specifies the type of order. An order may be a subscription or a one-time purchase. type: string x-basic: true enum: - subscription-order customerId: $ref: '#/components/schemas/CustomerId' renewalReminderTime: description: Date and time when the renewal reminder event triggers. type: - string - 'null' format: date-time readOnly: true renewalReminderNumber: description: Number of triggered renewal reminder events. type: - integer - 'null' readOnly: true trialReminderTime: description: Date and time when the trial reminder event triggers. type: - string - 'null' format: date-time readOnly: true trialReminderNumber: description: Number of triggered trial reminder events. type: - integer - 'null' readOnly: true abandonReminderTime: description: Date and time when the abandon order reminder event triggers. type: - string - 'null' format: date-time readOnly: true abandonReminderNumber: description: Number of abandon order reminder events that are triggered. type: - integer - 'null' readOnly: true organizationId: readOnly: true allOf: - $ref: '#/components/schemas/OrganizationId' status: description: >- Status of the subscription service. A subscription starts in the `pending` status, and becomes `active` when the service period begins. type: string readOnly: true enum: - pending - active - abandoned - canceled - churned - paused - voided - completed - trial-ended inTrial: description: Specifies if the subscription is currently in a trial period. type: boolean readOnly: true trial: type: object description: >- Trial details. To use plan defaults do not send the `trial` key, or send a `null` value. properties: enabled: description: |- Specifies if there is a trial for this subscription. Plans without trial prices are free trials. type: boolean endTime: description: >- Time and date when the trial ends. If a trial is enabled on this subscription, a value must be provided. type: - string - 'null' format: date-time isTrialOnly: description: |- Specifies if a subscription ends after a trial period. If this value is `true`, recurring settings are ignored. type: boolean default: false isTrialConverted: description: >- Specifies if a subscription had trial conversion. Trial conversion is when at least one successful payment is made on the subscription after a trial. type: boolean readOnly: true example: true invoiceTimeShift: description: |- Shifts issue time and due time of invoices for this subscription. This setting overrides plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same billing period, this property enables the customer to subscribe to different plans. example: null oneOf: - $ref: '#/components/schemas/InvoiceTimeShift' - type: 'null' recurringInterval: type: - object - 'null' description: |- Recurring interval to override plan settings. To use plan settings, set this value to `null`. To use multiple plans in one subscription, all plans must have the same recurring period length. example: null properties: periodAnchorInstruction: $ref: '#/components/schemas/ServicePeriodAnchorInstruction' autopay: description: >- Specifies if payment attempts are made automatically. If autopay is enabled, the payment is retrieved from the customer on the renewal date using the payment instrument that is set at `paymentInstrumentId`, or the default payment instrument on the subscription. type: boolean default: true startTime: description: |- Date and time when the subscription starts. If this value is `null`, the current time is used. This value cannot be more than one service period in the past. type: - string - 'null' x-sortable: true x-basic: true example: null format: date-time churnTime: description: Date and time when the subscription is deactivated. x-sortable: true type: - string - 'null' format: date-time readOnly: true renewalTime: description: Date and time when the subscription renews. type: - string - 'null' x-sortable: true x-basic: true format: date-time rebillNumber: description: Current billing period number. type: - integer - 'null' readOnly: true x-sortable: true lineItems: description: >- Subscription line items which queue until the next renewal, or interim, invoice is issued for the subscription. readOnly: true type: array deprecated: true items: type: object description: >- Invoice line item. Use the `isInterim` property of upcoming invoice items instead. deprecated: true properties: type: description: Type of invoice line item. type: string enum: - debit - credit description: description: Description of the line item. type: string maxLength: 1000 unitPriceAmount: description: Unit price of the line item. type: number format: double example: 49.95 unitPriceCurrency: $ref: '#/components/schemas/CurrencyCode' quantity: description: Quantity of the line item. type: integer example: 1 periodStartTime: description: Date and time when the service period begins for this item. type: string format: date-time periodEndTime: description: Date and time when the service period ends for this item. type: string format: date-time createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' lineItemSubtotal: type: object readOnly: true description: |- Subtotal of line items in this subscription (signed value). If credits exceed debits, this value is a negative number. properties: currency: $ref: '#/components/schemas/CurrencyCode' amount: type: number x-type: Money x-sortable: true description: Amount of the subtotal. format: double example: 49.95 paymentInstrumentId: type: - string - 'null' description: >- ID of the payment instrument to use for autopay. If this value is not provided, or if the payment instrument is inactive, the customer's default payment instrument is used. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N billingStatus: description: >- Billing status of the most recent invoice. This value may help you to determine if you should change the service status of the service, such as suspending the service. type: string readOnly: true enum: - draft - unpaid - past-due - abandoned - paid - voided - refunded - disputed - partially-refunded - partially-paid websiteId: x-sortable: true x-basic: true allOf: - $ref: '#/components/schemas/WebsiteId' currency: description: Currency of the order. readOnly: true $ref: '#/components/schemas/CurrencyCode' initialInvoiceId: description: ID of the initial invoice. readOnly: true type: - string - 'null' maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT recentInvoiceId: description: |- ID of the most recently issued invoice. The invoice might not be `paid` yet. readOnly: true type: - string - 'null' maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT items: description: Details of items in the order. type: array minItems: 1 items: $ref: '#/components/schemas/SubscriptionOrOneTimeSaleItem' deliveryAddress: description: Delivery address of the order. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' billingAddress: description: Billing address of the order. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' activationTime: description: Date and time when the order is activated. x-sortable: true type: - string - 'null' format: date-time readOnly: true voidTime: description: Date and time when the order is voided. type: - string - 'null' format: date-time readOnly: true abandonTime: type: - string - 'null' description: >- Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value. format: date-time delinquencyPeriod: type: - string - 'null' description: >- Length of time, in ISO-8601 durations format, which is added to the due time of the order when setting the delinquency time for all related invoices. When the delinquency time of an invoice is reached, the order is automatically canceled. If the provided value is `null`, the order does not change state. example: P7D default: null couponIds: type: - array - 'null' description: >- List of coupons to redeem on the customer and restrict to this order. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). This parameter uses the following logic: - If this parameter is not supplied, applied coupons are not changed. - If an empty array is supplied, all applied coupon redemptions are canceled. - If a list of coupons is supplied, unapplied coupons in the list are applied. Coupons that have already been applied do not change state. Applied coupons that are not supplied in list are canceled. If the list of applied coupons on a pending order is changed by this parameter during an order update, the invoice for the order is reissued. writeOnly: true items: type: string description: ID of the coupon. poNumber: description: Purchase order number displayed on the issued invoices. type: - string - 'null' example: PO123456 shipping: $ref: '#/components/schemas/Shipping' notes: description: Notes for the customer displayed on the order invoice. type: string canceledBy: description: Specifies who initiated the cancellation. type: - string - 'null' readOnly: true enum: - merchant - customer - rebilly - null cancelCategory: description: Category of the cancellation. type: - string - 'null' readOnly: true enum: - billing-failure - did-not-use - did-not-want - missing-features - bugs-or-problems - do-not-remember - risk-warning - contract-expired - too-expensive - never-started - switched-plan - other - null cancelDescription: description: Description of the cancellation reason in free form. type: - string - 'null' readOnly: true maxLength: 255 revision: description: >- Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation. type: integer readOnly: true riskMetadata: type: - object - 'null' example: null description: >- Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token. allOf: - $ref: '#/components/schemas/RiskMetadata' billingPortalToken: description: >- Customer JWT to access billing portal. This field is presented only if billing portal exists. This is an experimental field and can be changed or removed in the future. type: - string - 'null' readOnly: true x-badges: - name: Experimental customFields: $ref: '#/components/schemas/ResourceCustomFields' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - website - customer - initialInvoice - recentInvoice - approvalUrl - attachments _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: recentInvoice: type: object initialInvoice: type: object customer: type: object website: type: object leadSource: type: object shippingRate: type: object paymentInstrument: type: object upcomingInvoice: type: object OneTimeSale: type: object required: - orderType - customerId - websiteId - items properties: id: type: string description: ID of the one-time sale. readOnly: true maxLength: 50 example: ots_01HRF27SATGE4Z6PBJE6PD8328 orderId: type: string description: ID of the order (experimental). readOnly: true maxLength: 50 example: ord_01GYJPRKHBD6ZYHH897QCJMBS4 orderType: description: |- Specifies the type of order. An order may be a subscription or a one-time purchase. type: string x-basic: true enum: - one-time-order customerId: $ref: '#/components/schemas/CustomerId' organizationId: deprecated: true readOnly: true allOf: - $ref: '#/components/schemas/OrganizationId' status: description: Status of the one-time order. type: string readOnly: true enum: - pending - abandoned - completed - canceled billingStatus: description: >- Billing status of the most recent invoice. This value may help you to determine if you should change the service status of the service, such as suspending the service. type: string readOnly: true enum: - draft - unpaid - past-due - abandoned - paid - voided - refunded - disputed - partially-refunded - partially-paid websiteId: x-sortable: true x-basic: true allOf: - $ref: '#/components/schemas/WebsiteId' currency: description: Currency of the order. readOnly: true $ref: '#/components/schemas/CurrencyCode' initialInvoiceId: description: ID of the initial invoice (`null` for one-time orders). readOnly: true type: - string - 'null' maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT recentInvoiceId: description: |- ID of the most recently issued invoice. The invoice might not be `paid` yet. readOnly: true type: - string - 'null' maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT items: description: Details of items in the order. type: array minItems: 1 items: $ref: '#/components/schemas/SubscriptionOrOneTimeSaleItem' deliveryAddress: description: Delivery address of the order. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' billingAddress: description: Billing address of the order. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' activationTime: description: Date and time when the order is activated. x-sortable: true type: - string - 'null' format: date-time readOnly: true voidTime: description: Date and time when the order is voided. type: - string - 'null' format: date-time readOnly: true abandonTime: type: - string - 'null' description: >- Date and time when the pending order is automatically abandoned. If this value is not passed during order creation, a [pending order TTL](https://www.rebilly.com/catalog/all/organizations/patchorganization/#!t=request&path=settings/billing/pendingOrderTtl) setting is used to calculate the value. format: date-time couponIds: type: - array - 'null' description: >- List of coupons to redeem on the customer and restrict to this order. For more information, see [Coupons](https://www.rebilly.com/docs/settings/coupons-and-discounts/). This parameter uses the following logic: - If this parameter is not supplied, applied coupons are not changed. - If an empty array is supplied, all applied coupon redemptions are canceled. - If a list of coupons is supplied, unapplied coupons in the list are applied. Coupons that have already been applied do not change state. Applied coupons that are not supplied in list are canceled. If the list of applied coupons on a pending order is changed by this parameter during an order update, the invoice for the order is reissued. writeOnly: true items: type: string description: ID of the coupon. poNumber: description: Purchase order number displayed on the issued invoices. type: - string - 'null' example: PO123456 shipping: $ref: '#/components/schemas/Shipping' notes: description: Notes for the customer displayed on the order invoice. type: string revision: description: >- Number of times the order data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation. type: integer readOnly: true riskMetadata: example: null description: >- Risk metadata. If this value is `null`, this field uses risk metadata that is captured when creating the payment token. oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' customFields: $ref: '#/components/schemas/ResourceCustomFields' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - website - customer - initialInvoice - recentInvoice - approvalUrl - attachments _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: recentInvoice: type: object customer: type: object website: type: object leadSource: type: object shippingRate: type: object paymentInstrument: type: object SubscriptionOrOneTimeSale: type: object description: Subscription details. discriminator: propertyName: orderType mapping: subscription-order: '#/components/schemas/Subscription' one-time-order: '#/components/schemas/OneTimeSale' oneOf: - $ref: '#/components/schemas/Subscription' - $ref: '#/components/schemas/OneTimeSale' Search: type: object properties: customers: description: List of returned customers. readOnly: true type: array items: $ref: '#/components/schemas/Customer' invoices: description: List of returned invoices. readOnly: true type: array items: $ref: '#/components/schemas/Invoice' orders: description: List of returned orders. readOnly: true type: array items: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' transactions: description: List of returned transactions. readOnly: true type: array items: $ref: '#/components/schemas/Transaction' searched: description: |- Names of searched resources. Includes all searched resources. readOnly: true type: array items: type: string ShippingOption: type: object required: - name - price - currency properties: id: type: string description: ID of the shipping rate. readOnly: true maxLength: 50 example: ship_rate_0YVDN408G4DQE9G1RV1QCFHJ3P name: type: string description: Name of the shipping rate. description: type: - string - 'null' description: Description of the shipping rate. price: description: |- Price of the shipping rate. If `price` is `0`, shipping is free. type: number format: double currency: $ref: '#/components/schemas/CurrencyCode' ShippingRate: allOf: - $ref: '#/components/schemas/ShippingOption' - properties: filter: type: string description: >- Filter based on invoice properties that is used to determine when the rate is applicable. If no filters are used, the rate is always applicable. default: '' example: deliveryAddress.country:US,CA,RU;amount:100..1000 status: description: |- Status of the shipping rate. If `status` is `inactive` the shipping rate is not applied. type: string enum: - active - inactive default: active createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' SubscriptionChange: type: object required: - items - renewalPolicy - prorated properties: items: description: Details of items in the order. type: array minItems: 1 items: type: object description: >- New set of items for the subscription. To remove an item, include the items array and exclude the items you want to remove. required: - plan properties: plan: description: Plan details. oneOf: - $ref: '#/components/schemas/OriginalPlan' - $ref: '#/components/schemas/FlexiblePlan' quantity: description: Number of units of the product on the given plan. type: integer usageLimits: type: object description: >- Specifies the soft and hard usage limit thresholds for an item with a metered billing plan. This value is ignored when the plan is not metered. properties: softLimit: type: object description: >- Defines thresholds for notification purposes. For example, to notify the customer that their usage is near the hard limit of their metered billing plan. This notification informs the customer so that they can upgrade their plan before the hard limit is reached. When the reported usage reaches 75%, 90%, and 100% of the configured limit a specific event is fired. To notify the customer, a webhook and notification can be configured for this event. This field is useful for accounting and customer success purposes. The usage of metered billing plans can still be reported if the soft limit is reached. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 hardLimit: type: object description: >- Defines a limit where the customer can no longer use the service. Hard limits are used in addition to soft limits. When a soft limit is reached, a customer may receive a notification but the service can still be provided up to the hard limit value so that the customer can upgrade their plan. When the reported usage reaches the configured limit, a specific event is triggered. To notify the customer in the merchant system, or block a service, a webhook and notification can be configured for this event. When the total usage reaches the hard limit quantity, or amount values, metered billing plan usages can no longer be reported. minProperties: 1 maxProperties: 1 properties: quantity: type: integer description: Usage limit quantity. minimum: 1 amount: type: number format: double description: Usage limit amount in the currency of the order. minimum: 0.01 renewalPolicy: description: >- Specifies if the subscription retains its current `renewalTime` or resets it to a newly calculated `renewalTime`. type: string enum: - reset - retain prorated: description: >- Specifies whether to give a pro rata credit for the amount of time remaining between the `effectiveTime` and the end of the current period. In addition, if the `renewalTime` is retained, by setting the `renewalPolicy` to `retain`, a pro rata debit occurs for the amount between the `effectiveTime` and the `renewalTime` as a percentage of the normal period size. type: boolean effectiveTime: description: >- Date from which the renewal time for `reset` operations and proration calculations are made. If this field is omitted, this value defaults to the current time. type: string format: date-time preview: description: |- Specifies if changes to the subscription can be previewed. Subscriptions cannot be changed in preview. type: boolean default: false keepTrial: description: |- Specifies if the subscription order must retain its active trial. This field is only applicable if `renewalPolicy` is set to `retain`. type: boolean default: false SubscriptionItemUpdate: type: object required: - quantityFilled properties: quantityFilled: x-badges: - name: Experimental description: Filled quantity of the subscription item (experimental property). type: integer SubscriptionInvoice: type: object properties: transactionId: description: >- If present, applies a payment to the invoice created. If the payment is for the invoice total, it would be marked as paid. $ref: '#/components/schemas/TransactionId' SubscriptionPause: type: object description: Subscription pause details. required: - subscriptionId properties: id: type: string description: ID of the subscription pause. readOnly: true maxLength: 50 example: sub_pau_01H085J3ZR1WKD120D73D7N4C9 subscriptionId: type: string description: ID of the paused subscription. maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 status: description: Status of the subscription pause. type: string readOnly: true enum: - pending - ongoing - revoked - finished pausedBy: description: Specifies who initiated the pause. type: string default: customer enum: - merchant - customer description: description: Description of the pause reason in free form. type: - string - 'null' maxLength: 255 effectiveTime: description: >- Date and time when the service period pauses. This time must be later than the current time. If this time is earlier then the current time, the current time is used. If this field is omitted, this value defaults to the current time. type: - string - 'null' format: date-time endTime: description: >- Date and time when the pause ends and the subscription resumes billing. To resume a subscription from this point in time, use the current time or an earlier time. If `endTime` is earlier then the current time, the current time is used. If this field is empty, the subscription is indefinitely paused. type: - string - 'null' format: date-time timeRemaining: description: >- Amount of time between the pause end time and the renewal time in ISO-8601 durations format. By default, this value is computed as the time between the pause and the renewal. Example: A $30 per month subscription on a 30-day month is paused on day 20 of the subscription. There are 10 unused days on the subscription. Therefore, the subscription renews in 10 days after it is resumed. The upcoming invoice does not change the amount for the invoiced period, it remains at $30. If the subscription uses a billing anchor, the renewal time after a pause shift behaves as though the renewal time is moved forward by an [Order API operation](../../tag/Orders), and the billing anchor is ignored for that period. For more information, see [Service period anchor, billing timing, and invoice time shift](https://www.rebilly.com/docs/dev-docs/concepts/#service-period-anchor-and-billing-timing-and-invoice-time-shift). type: - string - 'null' example: P3600S createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' SubscriptionCancellation: type: object required: - subscriptionId - churnTimePolicy properties: id: type: string description: ID of the cancellation. readOnly: true maxLength: 50 example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV subscriptionId: type: string description: ID of the canceled subscription order. maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 proratedInvoiceId: type: - string - 'null' description: ID of the invoice on which the cancellation proration is calculated. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT appliedInvoiceId: type: - string - 'null' description: >- ID of the invoice on which the cancellation fees or credits are applied. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT canceledBy: description: Specifies who initiated the cancellation. type: string default: customer enum: - merchant - customer - rebilly reason: description: Reason for the cancellation. type: string default: other enum: - did-not-use - did-not-want - missing-features - bugs-or-problems - do-not-remember - risk-warning - contract-expired - too-expensive - other - billing-failure description: description: Description of the cancellation reason in free form. type: string maxLength: 255 prorated: description: >- Specifies if the customer gets a pro-rata credit for the time remaining between `churnTime` and subscription next renewal time. type: boolean default: false status: description: Status of the subscription order. type: string default: confirmed enum: - draft - confirmed - completed - revoked x-enumDescriptions: draft: >- Creates a daft cancellation so that the cancellation and charge can be previewed. confirmed: |- Confirms a subscription cancellation. Sets the subscription to cancel when the `churnTime` is reached. completed: >- Marks a subscription cancellation as completed. This is a read-only status that is set when the `churnTime` is reached. The cancellation may not be changed or deleted when the status is `completed`. revoked: Revokes a subscription cancellation. canceledTime: description: >- Date and time when a subscription is cancelled. By default, this occurs when `status` is `confirmed`, unless `draft` is specified. type: - string - 'null' format: date-time readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' churnTime: description: Date and time when the subscription is deactivated. type: string format: date-time churnTimePolicy: description: >- Specifies when the subscription is to be deactivated. The `churnTimePolicy` takes precedence over the `churnTime` in request. type: - string - 'null' enum: - 'null' - now - at-next-renewal lineItems: description: |- Items to be added to the new invoice. Proration item is generated and added automatically. type: array items: type: object description: Invoice line item. required: - type - unitPriceAmount - unitPriceCurrency - quantity properties: type: description: Type of invoice line item. type: string enum: - debit - credit description: description: Description of the line item. type: string maxLength: 1000 unitPriceAmount: description: Unit price of the line item. type: number format: double example: 49.95 unitPriceCurrency: $ref: '#/components/schemas/CurrencyCode' quantity: description: Quantity of the line item. type: integer example: 1 periodStartTime: description: Date and time when the period begins for this item. type: string format: date-time periodEndTime: description: Date and time when the period ends for this item. type: string format: date-time createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' lineItemSubtotal: description: >- Subtotal of the line items added after the subscription cancellation. readOnly: true type: object properties: amount: type: number description: Subtotal amount of the line items. example: 49.95 currency: $ref: '#/components/schemas/CurrencyCode' _links: $ref: '#/components/schemas/SelfLink' SubscriptionReactivation: type: object required: - subscriptionId properties: id: type: string description: ID of the reactivation. readOnly: true maxLength: 50 example: sub_rct_0YVJ62AF5XCFCA6EBFAAA3Z7E0 subscriptionId: type: string description: ID of the reactivated subscription. maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 cancellationId: type: string description: ID of the related cancellation. readOnly: true maxLength: 50 example: sub_cnl_0YVJ5XVQM9CDP8248ZQX0RDMKV description: description: Description of the reactivation reason in free form. type: - string - 'null' maxLength: 255 effectiveTime: description: |- Date and time when the service period starts, unless the subscription is canceled but still active. If the subscription is still active, the subscription continues for the current service period. If this field is omitted, this value defaults to the current time. type: string format: date-time writeOnly: true renewalTime: description: >- Date and time of the next subscription renewal. If this field is omitted, this value is computed from the `effectiveTime` field. If the subscription is canceled but still active, it is ignored and the next renewal occurs as scheduled. type: string format: date-time paymentInstrumentId: writeOnly: true description: >- ID of the payment instrument. If this field is omitted, the subscription payment instrument remains unchanged. type: - string - 'null' maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' UpcomingInvoiceItem: type: object readOnly: true properties: id: type: string description: ID of the upcoming invoice item. maxLength: 50 example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV isInterim: description: Specifies if the line item is added to an interim invoice. type: boolean description: description: Description of the upcoming invoice item. type: string maxLength: 1000 unitPrice: description: Unit price of the upcoming invoice item. type: number format: double quantity: description: Quantity of the upcoming invoice item. type: integer price: description: Total price of the upcoming invoice item. type: number format: double productId: type: - string - 'null' description: ID of the product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ planId: type: - string - 'null' description: ID of the plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X subscriptionId: type: string description: ID of the order. maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 periodStartTime: description: Date and time when the billing period starts. type: string format: date-time periodEndTime: description: Date and time when the billing period ends. type: string format: date-time periodNumber: description: >- Billing period number that is associated with the invoice item. For example, an invoice item for a service is included in billing period number 3. The invoice item is only applied to billing period number 3. type: integer createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' tax: description: Invoice item tax. $ref: '#/components/schemas/TaxItem' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - product - plan - subscription _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. properties: product: type: object plan: type: object UpcomingInvoice: type: object readOnly: true properties: id: description: >- ID of the upcoming invoice, which is persisted in the future renewal invoice. type: string readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT websiteId: $ref: '#/components/schemas/WebsiteId' subscriptionId: description: ID of the related subscription order. type: string readOnly: true maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 currency: x-sortable: true x-basic: true $ref: '#/components/schemas/CurrencyCode' customerId: x-basic: true allOf: - $ref: '#/components/schemas/CustomerId' revision: description: |- Number of times the upcoming invoice data has changed. Use the revision number when analyzing webhook data to determine if a change should take precedence over the current representation. type: integer organizationId: allOf: - $ref: '#/components/schemas/OrganizationId' items: type: array description: Upcoming invoice items array. items: $ref: '#/components/schemas/UpcomingInvoiceItem' amount: description: Amount of the invoice. type: number x-type: Money x-sortable: true x-basic: true format: double readOnly: true amountDue: description: Amount that is due on the invoice. type: number x-type: Money x-sortable: true format: double readOnly: true subtotalAmount: description: Subtotal amount of the invoice. type: number x-type: Money format: double readOnly: true discountAmount: description: Discount amount that is applied to the invoice. type: number x-type: Money format: double readOnly: true shipping: $ref: '#/components/schemas/Shipping' tax: $ref: '#/components/schemas/Taxes' billingAddress: description: Billing address of the invoice. $ref: '#/components/schemas/ContactObject' deliveryAddress: description: Delivery address of the invoice. $ref: '#/components/schemas/ContactObject' poNumber: description: Purchase order number that is displayed on the invoice. type: - string - 'null' example: PO123456 notes: description: Notes for the customer that are displayed on the invoice. type: string discounts: type: array description: Discounts applied. readOnly: true items: type: object readOnly: true properties: couponId: type: string description: ID of the coupon. maxLength: 50 example: cpn_0YVCNKF81GD778N4YNVGDJK558 redemptionId: description: ID of the redemption. $ref: '#/components/schemas/ResourceId' amount: description: Total amount discounted by this coupon. type: number format: double description: type: string description: Description of the discount. context: $ref: '#/components/schemas/DiscountContext' dueTime: description: Date and time when the invoice is due for payment. type: string x-sortable: true format: date-time issuedTime: description: Date and time when the invoice is issued. x-label: Date Issued x-sortable: true x-basic: true $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - website - customer - organization - subscription - attachments - leadSource _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. properties: customer: type: object website: type: object organization: type: object leadSource: type: object OrderTimeline: type: object properties: id: type: string description: ID of the timeline message. readOnly: true maxLength: 50 example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC type: description: Type of timeline message. type: string readOnly: true enum: - coupon-applied - email-message-sent - invoice-abandoned - invoice-disputed - invoice-issued - invoice-paid - invoice-partially-paid - invoice-partially-refunded - invoice-past-due - invoice-refunded - invoice-reissued - invoice-renewal-payment-declined - invoice-voided - order-activated - order-autopay-changed - order-billing-address-changed - order-billing-anchor-changed - order-canceled - order-churned - order-completed - order-custom-fields-changed - order-delivery-address-changed - order-downgraded - order-items-changed - order-paid-early - order-quantity-changed - order-reactivated - order-recurring-interval-changed - order-renewal-time-changed - order-renewed - order-risk-metadata-changed - order-upgraded - order-voided - order-abandoned - subscription-paused - subscription-pause-created - subscription-pause-modified - subscription-pause-revoked - subscription-resumed - subscription-trial-end-changed - timeline-comment-created triggeredBy: description: Specifies who, or what, triggered the timeline event. type: string readOnly: true enum: - rebilly - app - direct-api message: description: Contents of the timeline message. type: string extraData: $ref: '#/components/schemas/TimelineExtraData' occurredTime: description: Date and time when the timeline message occurred. readOnly: true $ref: '#/components/schemas/ServerTimestamp' _links: $ref: '#/components/schemas/SelfLink' Usage: type: object required: - subscriptionId - planId - quantity properties: id: type: string readOnly: true description: ID of the usage record. maxLength: 50 example: sub_usg_0YVJ636B95DNA9M3B1638HXBCQ subscriptionId: type: string description: ID of the subscription for which a usage is reported. maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 planId: type: string description: ID of the plan for which a usage is reported. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X invoiceId: type: - string - 'null' description: >- ID of the invoice to which usage is applied. This value is populated when the invoice is issued. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT invoiceItemId: description: >- ID of the invoice item to which usage is applied. This value is populated when the invoice is issued. readOnly: true type: - string - 'null' maxLength: 50 example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV quantity: description: |- Number of used product units of a plan. Products are the goods and services that your business sells. Plans describe how the customer must pay for products. type: number format: float minimum: 0.01 usageTime: description: >- Date and time, in ISO 8601 format, when a usage occurred. If this value is not provided or is empty, the date and time of the request is used. type: string format: date-time createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' PaymentCardToken: type: object title: Payment card token description: >- Creates a payment card token. A payment card token is a string that represents a customer's payment card details. It can be used once, and expires upon first use or within 30 minutes of token creation. To generate a full payment card token, you must provide the `billingAddress`. If `billingAddress` is not provided, the token can not be used for payments. required: - method - paymentInstrument properties: method: description: Payment method of the token. type: string enum: - payment-card paymentInstrument: description: Payment card instrument details. type: object required: - expMonth - expYear properties: pan: description: |- Primary Account Number (PAN) of the payment card. This value is required to perform a payment. type: string writeOnly: true cvv: description: Card Verification Value (CVV/CVC) of the payment card. type: string writeOnly: true expMonth: description: Expiration month of the payment card. type: integer expYear: description: Expiration year of the payment card. type: integer bin: description: |- Bank Identification Number (BIN) of the payment card. This value is the first 6 digits of the payment card number. type: - string - 'null' format: bin readOnly: true last4: description: >- Last 4 digits of the Primary Account Number (PAN) of the payment card. type: - string - 'null' readOnly: true brand: readOnly: true allOf: - $ref: '#/components/schemas/PaymentCardBrand' billingAddress: description: |- Billing address object. This value is required to perform payments. For payment-card updates, `billingAddress` can be ignored. $ref: '#/components/schemas/ContactObject' id: description: ID of the token. readOnly: true $ref: '#/components/schemas/ResourceId' isUsed: description: Specifies if the token has been used. type: boolean default: false readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' leadSource: allOf: - $ref: '#/components/schemas/LeadSource' writeOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' usageTime: description: Date and time when the token is used. type: - string - 'null' format: date-time readOnly: true expirationTime: description: Date and time when the token expired. type: - string - 'null' format: date-time readOnly: true _links: $ref: '#/components/schemas/SelfLink' PayPalToken: type: object title: PayPal token required: - method - paymentInstrument properties: method: description: Payment method of the token. type: string enum: - paypal paymentInstrument: description: Paypal instrument details required for express checkout. type: object required: - billingAgreementToken - paypalMerchantId properties: paypalMerchantId: description: ID of the PayPal merchant. type: string billingAgreementToken: description: PayPal billing agreement token. type: string billingAddress: description: Billing address object. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' id: description: ID of the token. readOnly: true $ref: '#/components/schemas/ResourceId' isUsed: description: Specifies if the token is already used. type: boolean default: false readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' leadSource: allOf: - $ref: '#/components/schemas/LeadSource' writeOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' usageTime: description: Date and time when the token is used. type: - string - 'null' format: date-time readOnly: true expirationTime: description: Date and time when the token expires. type: - string - 'null' format: date-time readOnly: true _links: $ref: '#/components/schemas/SelfLink' BBANInstrument: description: Bank account BBAN instrument. type: object required: - accountNumberType - accountNumber - routingNumber - accountType properties: accountNumberType: description: >- Bank account number type. A valid value is basic bank account number (BBAN) or international bank account number (IBAN). type: string enum: - BBAN accountNumber: description: Customer's bank account number. type: string pattern: ^[0-9]+$ writeOnly: true routingNumber: description: Bank routing number. type: string pattern: ^[0-9]+$ accountType: description: Bank account type. type: string enum: - checking - savings - other bic: description: Bank Identifier Code (BIC). type: string bankName: description: Bank name. type: string last4: description: Last 4 digits of the bank account number. type: string readOnly: true IBANInstrument: description: Bank account IBAN instrument. type: object required: - accountNumberType - accountNumber properties: accountNumberType: description: >- Bank account number type. A valid value is basic bank account number (BBAN) or international bank account number (IBAN). type: string enum: - IBAN accountNumber: description: >- Bank account number. Detailed information about all ISO 13616-compliant national IBAN formats is available in the [SWIFT IBAN Registry](https://www.swift.com/standards/data-standards/iban). type: string writeOnly: true bic: description: Bank Identifier Code (BIC). type: string bankName: description: Bank name. type: string last4: description: Last 4 digits of the bank account number. type: string readOnly: true BankAccountInstrument: type: object description: Bank account BBAN or IBAN instrument. discriminator: propertyName: accountNumberType mapping: BBAN: '#/components/schemas/BBANInstrument' IBAN: '#/components/schemas/IBANInstrument' anyOf: - $ref: '#/components/schemas/BBANInstrument' - $ref: '#/components/schemas/IBANInstrument' BankAccountToken: type: object title: Bank account token required: - method - paymentInstrument - billingAddress properties: method: description: Payment method of the token. type: string enum: - ach - echeck paymentInstrument: $ref: '#/components/schemas/BankAccountInstrument' billingAddress: description: Billing address object. $ref: '#/components/schemas/ContactObject' id: description: ID of the token. readOnly: true $ref: '#/components/schemas/ResourceId' isUsed: description: Specifies if the token is already used. type: boolean default: false readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' leadSource: allOf: - $ref: '#/components/schemas/LeadSource' writeOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' usageTime: description: Date and time when the token is used. type: - string - 'null' format: date-time readOnly: true expirationTime: description: Date and time when the token expired. type: - string - 'null' format: date-time readOnly: true _links: $ref: '#/components/schemas/SelfLink' DigitalWalletToken: type: object title: Digital wallet token required: - method - paymentInstrument properties: method: description: Payment method of the token. type: string enum: - digital-wallet paymentInstrument: description: Payment instrument details. type: object required: - type - amount - currency - descriptor - payload properties: type: description: Type of digital wallet. type: string enum: - Apple Pay - Google Pay amount: description: Authorized for the digital wallet amount. type: number format: double currency: description: Authorized for the digital wallet currency. $ref: '#/components/schemas/CurrencyCode' descriptor: description: Descriptor for a payment. type: string bin: description: >- Bank Identification Number (BIN) of the payment card. This value is the same as the first 6 digits of the associated Primary Account Number (PAN). type: - string - 'null' format: bin readOnly: true last4: description: >- Last 4 digits of the Primary Account Number (PAN) of the payment card. type: string readOnly: true brand: readOnly: true allOf: - $ref: '#/components/schemas/PaymentCardBrand' expMonth: readOnly: true description: Payment card expiration month. type: integer expYear: readOnly: true description: Payment card expiration year. type: integer payload: writeOnly: true description: |- Digital wallet encoded data. This field may contain the digital wallet billing address. type: object billingAddress: readOnly: true description: Billing address object. $ref: '#/components/schemas/ContactObject' id: description: ID of the token. readOnly: true $ref: '#/components/schemas/ResourceId' isUsed: description: Specifies if the token is already used. type: boolean default: false readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' leadSource: allOf: - $ref: '#/components/schemas/LeadSource' writeOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' usageTime: description: Date and time when the token is used. type: - string - 'null' format: date-time readOnly: true expirationTime: description: Date and time when the token expired. type: - string - 'null' format: date-time readOnly: true _links: $ref: '#/components/schemas/SelfLink' PlaidAccountToken: type: object title: Plaid account token required: - method - billingAddress - paymentInstrument properties: method: description: Payment method of the token. type: string enum: - plaid-account paymentInstrument: description: Plaid payment instrument details. type: object required: - linkToken - publicToken - accountId properties: linkToken: type: string description: Plaid link token. writeOnly: true publicToken: type: string description: Plaid public token. accountId: type: string description: ID of the Plaid account. billingAddress: description: Billing address object. $ref: '#/components/schemas/ContactObject' id: description: ID of the token. readOnly: true $ref: '#/components/schemas/ResourceId' isUsed: description: Specifies if the token is already used. type: boolean default: false readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' leadSource: allOf: - $ref: '#/components/schemas/LeadSource' writeOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' usageTime: description: Date and time when the token is used. type: - string - 'null' format: date-time readOnly: true expirationTime: description: Date and time when the token expired. type: - string - 'null' format: date-time readOnly: true _links: $ref: '#/components/schemas/SelfLink' KhelocardCardToken: type: object title: Khelocard card token required: - method - billingAddress - paymentInstrument properties: method: description: Payment method of the token. type: string enum: - Khelocard paymentInstrument: description: Token instrument details. type: object required: - number - cvv - expYear - expMonth properties: number: description: Khelocard card number. type: string writeOnly: true cvv: description: Khelocard Card Verification Value (CVV). type: string writeOnly: true last4: description: Last 4 digits of the Khelocard card number. type: string readOnly: true expMonth: description: Khelocard card expiration month. type: integer expYear: description: Khelocard card expiration year. type: integer billingAddress: description: Billing address object. $ref: '#/components/schemas/ContactObject' id: description: ID of the token. readOnly: true $ref: '#/components/schemas/ResourceId' isUsed: description: Specifies if the token is already used. type: boolean default: false readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' leadSource: allOf: - $ref: '#/components/schemas/LeadSource' writeOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' usageTime: description: Date and time when the token is used. type: - string - 'null' format: date-time readOnly: true expirationTime: description: Date and time when the token expired. type: - string - 'null' format: date-time readOnly: true _links: $ref: '#/components/schemas/SelfLink' KlarnaToken: type: object title: Klarna token required: - method - paymentInstrument properties: method: description: Payment method of the token. type: string enum: - Klarna paymentInstrument: description: Klarna instrument details required for express checkout. type: object required: - klarnaAuthorizationToken - klarnaSessionId properties: klarnaAuthorizationToken: description: Klarna authorization token. type: string klarnaSessionId: description: ID of the Klarna session. type: string billingAddress: description: Billing address object. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' id: description: ID of the token. readOnly: true $ref: '#/components/schemas/ResourceId' isUsed: description: Specifies if the token is already used. type: boolean default: false readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' leadSource: allOf: - $ref: '#/components/schemas/LeadSource' writeOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' usageTime: description: Date and time when the token is used. type: - string - 'null' format: date-time readOnly: true expirationTime: description: Date and time when the token expired. type: - string - 'null' format: date-time readOnly: true _links: $ref: '#/components/schemas/SelfLink' AlternativePaymentToken: type: object title: Alternative payment token required: - method - billingAddress properties: method: description: Payment method of the token. type: string allOf: - $ref: '#/components/schemas/AlternativePaymentMethods' - not: enum: - payment-card - paypal - ach - echeck - digital-wallet - plaid-account - Khelocard - Klarna billingAddress: description: Billing address object. $ref: '#/components/schemas/ContactObject' id: description: ID of the token. readOnly: true $ref: '#/components/schemas/ResourceId' isUsed: description: Specifies if the token is already used. type: boolean default: false readOnly: true riskMetadata: oneOf: - $ref: '#/components/schemas/RiskMetadata' - type: 'null' leadSource: allOf: - $ref: '#/components/schemas/LeadSource' writeOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' usageTime: description: Date and time when the token is used. type: - string - 'null' format: date-time readOnly: true expirationTime: description: Date and time when the token expired. type: - string - 'null' format: date-time readOnly: true _links: $ref: '#/components/schemas/SelfLink' CompositeToken: type: object discriminator: propertyName: method mapping: payment-card: '#/components/schemas/PaymentCardToken' paypal: '#/components/schemas/PayPalToken' ach: '#/components/schemas/BankAccountToken' echeck: '#/components/schemas/BankAccountToken' digital-wallet: '#/components/schemas/DigitalWalletToken' plaid-account: '#/components/schemas/PlaidAccountToken' Khelocard: '#/components/schemas/KhelocardCardToken' Klarna: '#/components/schemas/KlarnaToken' cash: '#/components/schemas/AlternativePaymentToken' check: '#/components/schemas/AlternativePaymentToken' AdvCash: '#/components/schemas/AlternativePaymentToken' Alfa-click: '#/components/schemas/AlternativePaymentToken' Alipay: '#/components/schemas/AlternativePaymentToken' AstroPay Card: '#/components/schemas/AlternativePaymentToken' AstroPay-GO: '#/components/schemas/AlternativePaymentToken' BankReferenced: '#/components/schemas/AlternativePaymentToken' bank-transfer: '#/components/schemas/AlternativePaymentToken' bank-transfer-2: '#/components/schemas/AlternativePaymentToken' bank-transfer-3: '#/components/schemas/AlternativePaymentToken' bank-transfer-4: '#/components/schemas/AlternativePaymentToken' bank-transfer-5: '#/components/schemas/AlternativePaymentToken' bank-transfer-6: '#/components/schemas/AlternativePaymentToken' bank-transfer-7: '#/components/schemas/AlternativePaymentToken' bank-transfer-8: '#/components/schemas/AlternativePaymentToken' bank-transfer-9: '#/components/schemas/AlternativePaymentToken' Baloto: '#/components/schemas/AlternativePaymentToken' Beeline: '#/components/schemas/AlternativePaymentToken' Belfius-direct-net: '#/components/schemas/AlternativePaymentToken' bitcoin: '#/components/schemas/AlternativePaymentToken' Bizum: '#/components/schemas/AlternativePaymentToken' Boleto: '#/components/schemas/AlternativePaymentToken' cash-deposit: '#/components/schemas/AlternativePaymentToken' CASHlib: '#/components/schemas/AlternativePaymentToken' CashToCode: '#/components/schemas/AlternativePaymentToken' China UnionPay: '#/components/schemas/AlternativePaymentToken' Cleo: '#/components/schemas/AlternativePaymentToken' CODVoucher: '#/components/schemas/AlternativePaymentToken' Conekta-oxxo: '#/components/schemas/AlternativePaymentToken' Cupon-de-pagos: '#/components/schemas/AlternativePaymentToken' cryptocurrency: '#/components/schemas/AlternativePaymentToken' domestic-cards: '#/components/schemas/AlternativePaymentToken' ecoPayz: '#/components/schemas/AlternativePaymentToken' ecoVoucher: '#/components/schemas/AlternativePaymentToken' Efecty: '#/components/schemas/AlternativePaymentToken' EPS: '#/components/schemas/AlternativePaymentToken' ePay.bg: '#/components/schemas/AlternativePaymentToken' eZeeWallet: '#/components/schemas/AlternativePaymentToken' FasterPay: '#/components/schemas/AlternativePaymentToken' Flexepin: '#/components/schemas/AlternativePaymentToken' Giropay: '#/components/schemas/AlternativePaymentToken' Gpaysafe: '#/components/schemas/AlternativePaymentToken' Google Pay: '#/components/schemas/AlternativePaymentToken' iDebit: '#/components/schemas/AlternativePaymentToken' iDEAL: '#/components/schemas/AlternativePaymentToken' ING-homepay: '#/components/schemas/AlternativePaymentToken' INOVAPAY-pin: '#/components/schemas/AlternativePaymentToken' INOVAPAY-wallet: '#/components/schemas/AlternativePaymentToken' InstaDebit: '#/components/schemas/AlternativePaymentToken' instant-bank-transfer: '#/components/schemas/AlternativePaymentToken' InstantPayments: '#/components/schemas/AlternativePaymentToken' Interac: '#/components/schemas/AlternativePaymentToken' Interac-online: '#/components/schemas/AlternativePaymentToken' Interac-eTransfer: '#/components/schemas/AlternativePaymentToken' invoice: '#/components/schemas/AlternativePaymentToken' iWallet: '#/components/schemas/AlternativePaymentToken' Jeton: '#/components/schemas/AlternativePaymentToken' jpay: '#/components/schemas/AlternativePaymentToken' KNOT: '#/components/schemas/AlternativePaymentToken' loonie: '#/components/schemas/AlternativePaymentToken' Matrix: '#/components/schemas/AlternativePaymentToken' MaxiCash: '#/components/schemas/AlternativePaymentToken' Megafon: '#/components/schemas/AlternativePaymentToken' MiFinity-eWallet: '#/components/schemas/AlternativePaymentToken' miscellaneous: '#/components/schemas/AlternativePaymentToken' Bancontact: '#/components/schemas/AlternativePaymentToken' Bancontact-mobile: '#/components/schemas/AlternativePaymentToken' MTS: '#/components/schemas/AlternativePaymentToken' MuchBetter: '#/components/schemas/AlternativePaymentToken' Multibanco: '#/components/schemas/AlternativePaymentToken' Neosurf: '#/components/schemas/AlternativePaymentToken' Netbanking: '#/components/schemas/AlternativePaymentToken' Neteller: '#/components/schemas/AlternativePaymentToken' Nordea-Solo: '#/components/schemas/AlternativePaymentToken' OchaPay: '#/components/schemas/AlternativePaymentToken' online-bank-transfer: '#/components/schemas/AlternativePaymentToken' Onlineueberweisen: '#/components/schemas/AlternativePaymentToken' oriental-wallet: '#/components/schemas/AlternativePaymentToken' OXXO: '#/components/schemas/AlternativePaymentToken' P24: '#/components/schemas/AlternativePaymentToken' Pagadito: '#/components/schemas/AlternativePaymentToken' PagoEffectivo: '#/components/schemas/AlternativePaymentToken' Pagsmile-deposit-express: '#/components/schemas/AlternativePaymentToken' Pagsmile-lottery: '#/components/schemas/AlternativePaymentToken' PayCash: '#/components/schemas/AlternativePaymentToken' Payeer: '#/components/schemas/AlternativePaymentToken' PaymentAsia-crypto: '#/components/schemas/AlternativePaymentToken' Paymero: '#/components/schemas/AlternativePaymentToken' Perfect-money: '#/components/schemas/AlternativePaymentToken' Piastrix: '#/components/schemas/AlternativePaymentToken' PayTabs: '#/components/schemas/AlternativePaymentToken' Paysafecard: '#/components/schemas/AlternativePaymentToken' Paysafecash: '#/components/schemas/AlternativePaymentToken' Pay4Fun: '#/components/schemas/AlternativePaymentToken' Paynote: '#/components/schemas/AlternativePaymentToken' PinPay: '#/components/schemas/AlternativePaymentToken' phone: '#/components/schemas/AlternativePaymentToken' PhonePe: '#/components/schemas/AlternativePaymentToken' POLi: '#/components/schemas/AlternativePaymentToken' PostFinance-card: '#/components/schemas/AlternativePaymentToken' PostFinance-e-finance: '#/components/schemas/AlternativePaymentToken' QIWI: '#/components/schemas/AlternativePaymentToken' QPay: '#/components/schemas/AlternativePaymentToken' QQPay: '#/components/schemas/AlternativePaymentToken' rapyd-checkout: '#/components/schemas/AlternativePaymentToken' Resurs: '#/components/schemas/AlternativePaymentToken' SafetyPay: '#/components/schemas/AlternativePaymentToken' SEPA: '#/components/schemas/AlternativePaymentToken' Skrill: '#/components/schemas/AlternativePaymentToken' Skrill Rapid Transfer: '#/components/schemas/AlternativePaymentToken' SMSVoucher: '#/components/schemas/AlternativePaymentToken' Sofort: '#/components/schemas/AlternativePaymentToken' SparkPay: '#/components/schemas/AlternativePaymentToken' swift-dbt: '#/components/schemas/AlternativePaymentToken' Tele2: '#/components/schemas/AlternativePaymentToken' Terminaly-RF: '#/components/schemas/AlternativePaymentToken' ToditoCash-card: '#/components/schemas/AlternativePaymentToken' Trustly: '#/components/schemas/AlternativePaymentToken' UPayCard: '#/components/schemas/AlternativePaymentToken' UPI: '#/components/schemas/AlternativePaymentToken' USD-coin: '#/components/schemas/AlternativePaymentToken' VCreditos: '#/components/schemas/AlternativePaymentToken' VenusPoint: '#/components/schemas/AlternativePaymentToken' voucher: '#/components/schemas/AlternativePaymentToken' voucher-2: '#/components/schemas/AlternativePaymentToken' voucher-3: '#/components/schemas/AlternativePaymentToken' voucher-4: '#/components/schemas/AlternativePaymentToken' Webmoney: '#/components/schemas/AlternativePaymentToken' Webpay: '#/components/schemas/AlternativePaymentToken' Webpay-2: '#/components/schemas/AlternativePaymentToken' Webpay Card: '#/components/schemas/AlternativePaymentToken' WeChat Pay: '#/components/schemas/AlternativePaymentToken' XPay-P2P: '#/components/schemas/AlternativePaymentToken' XPay-QR: '#/components/schemas/AlternativePaymentToken' Yandex-money: '#/components/schemas/AlternativePaymentToken' Zotapay: '#/components/schemas/AlternativePaymentToken' Zimpler: '#/components/schemas/AlternativePaymentToken' anyOf: - $ref: '#/components/schemas/PaymentCardToken' - $ref: '#/components/schemas/PayPalToken' - $ref: '#/components/schemas/BankAccountToken' - $ref: '#/components/schemas/DigitalWalletToken' - $ref: '#/components/schemas/PlaidAccountToken' - $ref: '#/components/schemas/KhelocardCardToken' - $ref: '#/components/schemas/KlarnaToken' - $ref: '#/components/schemas/AlternativePaymentToken' DigitalWalletValidation: type: object required: - type discriminator: propertyName: type mapping: Apple Pay: '#/components/schemas/ApplePayValidation' properties: type: description: Type of digital wallet to validate. type: string enum: - Apple Pay ApplePayValidation: description: Apple Pay session validation. allOf: - $ref: '#/components/schemas/DigitalWalletValidation' - type: object required: - validationRequest properties: type: type: string validationRequest: description: Validation request. type: object properties: validationUrl: type: string description: Apple Pay SDK URL that is used to perform validation. domainName: type: string description: >- Domain where the client code, such as [FramePay](https://docs.rebilly.com/docs/developer-docs/framepay/), is executed. The domain name must be registered in the Apple Pay console. For more information, see [Register a domain for Apple Pay](./PostDigitalWalletOnboardingApplePay). example: www.example.com displayName: type: string description: Display name of your store. example: My Store writeOnly: true validationResponse: description: Apple Pay SDK validation response. type: object readOnly: true PaymentInstructionToken: type: object title: Payment token required: - token properties: token: description: Token ID of the payment. type: string PaymentInstructionInstrument: type: object title: Payment instrument required: - paymentInstrumentId properties: paymentInstrumentId: type: string description: ID of the payment instrument. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N PaymentInstructionMethods: type: object title: Payment Methods properties: methods: type: array description: >- List of available payment methods. Only payment methods with at least one active gateway account are allowed. If not specified all available payment methods are displayed. Customer can choose any of those as well as the payment instrument for them. Additional steps occur via a redirect to `approvalUrl`. items: $ref: '#/components/schemas/PaymentMethod' receivedBy: description: Cash receiver's name. Available only for `cash` payment method. type: string reference: description: Check reference data. Available only for `check` payment method. type: string PaymentInstruction: oneOf: - $ref: '#/components/schemas/PaymentInstructionToken' - $ref: '#/components/schemas/PaymentInstructionInstrument' - $ref: '#/components/schemas/PaymentInstructionMethods' - $ref: '#/components/schemas/PaymentCardCreatePlain' - $ref: '#/components/schemas/BankAccountCreatePlain' TransactionQuery: type: object properties: transactionId: $ref: '#/components/schemas/TransactionId' result: description: Result of the transaction. type: string readOnly: true enum: - abandoned - approved - canceled - declined - unknown status: description: Status of the transaction. type: string readOnly: true enum: - completed - conn-error - disputed - never-sent - offsite - partially-refunded - pending - refunded - sending - suspended - timeout - voided - waiting-approval - waiting-capture - waiting-gateway - waiting-refund amount: description: Amount of the transaction. type: number format: double readOnly: true currency: readOnly: true $ref: '#/components/schemas/CurrencyCode' TransactionUpdate: type: object description: >- Updates the status of a transaction to `completed` with a specified `result` and optional currency and amount values. required: - result properties: result: description: Result of the transaction. type: string enum: - abandoned - approved - canceled - declined amount: description: Amount of the transaction. type: number format: double currency: description: Currency of the transaction. $ref: '#/components/schemas/CurrencyCode' TransactionRefund: type: object required: - amount properties: amount: description: Amount of the refund. type: number format: double description: description: Description of the refund. type: string maxLength: 255 isProcessedOutside: description: Specifies if the refund is processed outside of Rebilly. type: boolean default: false TransactionTimeline: type: object properties: id: type: string description: ID of the timeline message. readOnly: true maxLength: 50 example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC type: description: Type of timeline message. type: string readOnly: true enum: - amount-adjusted - blocklist-matched - bump-offer-accepted - bump-offer-presented - bump-offer-rejected - customer-redirected-offsite - customer-returned - dcc-offer-accepted - dcc-offer-forced - dcc-offer-presented - dcc-offer-rejected - dispute-changed - dispute-created - dispute-forfeited - dispute-lost - dispute-responded - dispute-won - gateway-connection-failed - gateway-connection-timed-out - gateway-response-received - offsite-transaction-completed - quickbooks-payment-created - quickbooks-refund-receipt-created - quickbooks-transaction-task-failed - risk-score-changed - timeline-comment-created - transaction-abandoned - transaction-amount-discrepancy-found - transaction-approved - transaction-canceled - transaction-capture-delayed - transaction-captured - transaction-declined - transaction-discrepancy-found - transaction-disputed - transaction-initiated - transaction-payment-method-changed - transaction-process-requested - transaction-processed - transaction-queried - transaction-reconciled - transaction-refunded - transaction-retried - transaction-rules-processed - transaction-scheduled-time-changed - transaction-timeout-resolved - transaction-updated - transaction-voided - transaction-waiting-gateway - transaction-waiting-gateway-completed triggeredBy: description: Specifies who, or what, triggered the timeline message. type: string readOnly: true enum: - rebilly - app - direct-api message: description: Contents of the timeline message. type: string extraData: $ref: '#/components/schemas/TimelineExtraData' occurredTime: description: Date and time when the timeline message occurred. readOnly: true $ref: '#/components/schemas/ServerTimestamp' _links: $ref: '#/components/schemas/SelfLink' FixedFeeFormula: type: object required: - type - currency - amount properties: type: description: Type of fee. type: string enum: - fixed-fee currency: $ref: '#/components/schemas/CurrencyCode' amount: description: Amount of the fee. type: number format: double example: 10 x-type: Money Bips: type: number description: 'Basis points. Example: 100 bips = 1%, 1 bip = 0.01%.' format: integer minimum: 0 maximum: 100000 example: 100 PercentageFeeFormula: type: object required: - type - currency - bips properties: type: description: Type of fee. type: string enum: - percentage currency: $ref: '#/components/schemas/CurrencyCode' bips: $ref: '#/components/schemas/Bips' minAmount: description: >- Minimum fee amount. This value is applied when the calculated fee is less than the required minimum. type: number format: double example: 10 x-type: Money FeeFormula: type: object description: Formula that is used to calculate the fee. discriminator: propertyName: type mapping: fixed-fee: '#/components/schemas/FixedFeeFormula' percentage: '#/components/schemas/PercentageFeeFormula' anyOf: - $ref: '#/components/schemas/FixedFeeFormula' - $ref: '#/components/schemas/PercentageFeeFormula' SettlementPeriod: type: object description: |- Instruction for calculating the settlement time. The settlement time and settlement period anchor are used in conjunction with the transaction processed time, to calculate the time in which the amount settles. discriminator: propertyName: method mapping: date-interval: '#/components/schemas/SchedulingMethodDateInterval' immediately: '#/components/schemas/SchedulingMethodImmediately' anyOf: - $ref: '#/components/schemas/SchedulingMethodDateInterval' - $ref: '#/components/schemas/SchedulingMethodImmediately' SettlementSettings: type: object description: |- Settlement settings. Use these settings to set up settlement accounts. required: - settlementCurrency - settlementPeriod properties: settlementCurrency: description: Default settlement currency for all transactions. $ref: '#/components/schemas/CurrencyCode' settlementPeriod: description: Default settlement period for all transactions. $ref: '#/components/schemas/SettlementPeriod' advancedSettings: description: |- Advanced settlement settings. Use these settings to override either default settlement currency, period, or both for the transactions matched a filter. type: array items: type: object required: - filter properties: filter: type: string description: >- Filter that is based on transaction properties and is used to determine when to apply the settings. minLength: 1 maxLength: 255 example: currency:EUR,GBP settlementCurrency: $ref: '#/components/schemas/CurrencyCode' settlementPeriod: $ref: '#/components/schemas/SettlementPeriod' Fee: type: object required: - type - name - formula properties: id: type: string description: ID of the fee. readOnly: true maxLength: 50 example: fee_01GQT145JX3XBRJ8K812Y3GRE9 type: description: Type of fee. type: string enum: - buy - sell name: type: string description: Name of the fee. minLength: 1 maxLength: 255 example: A gateway fee filter: description: >- Filter that is based on the properties of the transaction and used to determine when to apply the fee. minLength: 1 maxLength: 255 example: type:sale,capture;result:approved type: - string - 'null' formula: $ref: '#/components/schemas/FeeFormula' settlementSettings: description: >- Fee settlement settings. This value overrides the gateway account financial settings of the transaction. oneOf: - $ref: '#/components/schemas/SettlementSettings' - type: 'null' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' PatchFee: type: object properties: type: description: Type of fee. type: string enum: - buy - sell name: type: string description: Name of the fee. minLength: 1 maxLength: 255 example: A gateway fee filter: description: >- Filter that is based on the properties of the transaction and used to determine when to apply the fee. minLength: 1 maxLength: 255 example: type:sale,capture;result:approved type: - string - 'null' formula: $ref: '#/components/schemas/FeeFormula' settlementSettings: description: >- Fee settlement settings. This value overrides the gateway account financial settings of the transaction. oneOf: - $ref: '#/components/schemas/SettlementSettings' - type: 'null' DepositRequest: type: object required: - websiteId - customerId - currency properties: id: type: string description: ID of the deposit request. readOnly: true maxLength: 50 example: dep_req_0YVJ65BSGYC3EAT58SEX8KY6J7 websiteId: description: >- Website ID of the deposit. This value specifies the website with which the deposit is associated. type: string maxLength: 50 example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG customerId: $ref: '#/components/schemas/CustomerId' transactionId: type: - string - 'null' description: ID of the transaction that is used in the deposit request. deprecated: true readOnly: true maxLength: 50 example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0 transactionIds: type: array description: >- List of transaction IDs that are associated with the deposit request. This list includes transactions that are created from the deposit request. There is a maximum of one `approved` transaction in the list. items: type: string maxLength: 50 status: description: Status of the request. type: string readOnly: true enum: - created - pending - initiated - attempted - completed - expired x-enumDescriptions: created: >- Request is created, but it has not been visited by a customer. This is a temporary state. pending: >- Request has been visited by a customer, but no funds have been deposited yet. This is a temporary state. initiated: >- A funds deposit transaction has been initiated. This is a temporary state. attempted: >- A funds deposit transaction was attempted and declined. This is a temporary state. completed: >- A funds deposit transaction has been approved and completed. This is a permanent state. expired: >- Request expired without an approved deposit transaction. This is a permanent state. currency: $ref: '#/components/schemas/CurrencyCode' amounts: type: array description: >- List of available deposit amounts. If `amounts` is not specified when a deposit is created, amounts are determined from the chosen strategy. For more information, see the [`strategyId` property](https://www.rebilly.com/catalog/all/deposits/postdepositrequest/#!t=request&path=strategyId). items: type: number format: double minimum: 0.01 customAmount: type: - object - 'null' description: >- Custom amount restrictions. If this value is `null`, custom amounts are prohibited. If `customAmount` is not specified when a deposit request is created, amount restrictions are determined from the chosen strategy. For more information, see the [`strategyId` property](https://www.rebilly.com/catalog/all/deposits/postdepositrequest/#!t=request&path=strategyId). required: - minimum - multipleOf - maximum properties: minimum: description: Minimum custom amount. type: number format: double minimum: 0.01 multipleOf: description: >- Multiple by which the custom amount increases. For example, if `minimum` is equal to 5.30, and `multipleOf` is 0.50, the valid custom amount is 5.30, 5.80, 6.30, 6.80 and so on until the `maximum` value is reached. A valid custom amount must be equal to `minimum` + X * `multipleOf`, where X is any non negative integer. type: number format: double minimum: 0.01 maximum: description: >- Maximum custom amount. This value must be equal to `minimum` + X * `multipleOf`, where X is any positive integer. type: number format: double minimum: 0.01 redirectUrl: description: >- URL to redirect the customer to when a deposit is completed. The default value is the website URL. type: string format: uri expirationTime: description: >- Date and time at which the deposit request expires. The default expiration time is one hour from the time the request is created. type: string format: date-time propertiesSchema: readOnly: true description: >- Defines properties the user can complete when they use the hosted deposit form. This field accepts [JSON-schema](https://json-schema.org/) drafts 4, 6, and 7. type: - object - 'null' example: type: object properties: email: type: string max: type: integer minimum: 0 exclusiveMaximum: 100 required: - email properties: readOnly: true description: >- Properties that are available for the user to complete when they use the hosted deposit form. Use this object to describe fields that are rendered and completed on the hosted deposit form. type: - object - 'null' additionalProperties: type: string example: email: email@example.com max: '33' notificationUrl: description: >- URL where a server-to-server POST notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly. type: - string - 'null' format: uri customFields: description: >- Custom fields related to the deposit request. Custom field values are copied to created transactions if matching custom fields (name, type) exist. $ref: '#/components/schemas/ResourceCustomFields' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - deposit - transactions _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: customer: type: object website: type: object transactions: type: array maxItems: 10 description: Most recent associated transactions. PostDepositRequest: type: object required: - websiteId - customerId - currency properties: websiteId: description: >- Website ID of the deposit. This value specifies the website with which the deposit is associated. type: string maxLength: 50 example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG customerId: $ref: '#/components/schemas/CustomerId' strategyId: description: >- ID of a strategy to be applied for this request for `amounts` and `customAmount`. If this field is not specified, a randomly selected strategy with a matching `filter` value is applied for empty `amounts` and `customAmount`. If there is no matching strategy, the default strategy with the following parameters is applied for empty `amounts` and `customAmount`: ```yaml amounts: calculator: absolute baseAmount: 10 increments: [10, 20] adjustBaseToLastDeposit: true customAmount: minimum: 1 multipleOf: 1 maximum: 10000 ``` For more information, see [Create a deposit strategy](https://www.rebilly.com/catalog/all/deposits/postdepositstrategy). type: - string - 'null' maxLength: 50 example: dep_str_0YVJ64MAHTDPA97H8S7R5MYR1M currency: $ref: '#/components/schemas/CurrencyCode' amounts: type: - array - 'null' description: >- List of available deposit amounts. If `amounts` is not specified when a deposit request is created, amounts are determined from the chosen strategy. For more information, see the [`strategyId` property](https://www.rebilly.com/catalog/all/deposits/postdepositrequest#!t=request&path=strategyId). items: type: number format: double minimum: 0.01 amountLimits: type: - object - 'null' description: >- Deposit amount limit information. Set optional minimum and maximum deposit amounts. Limits override `amounts` and `customAmount` values. If this value is `null`, deposit amount limits are not set. minProperties: 1 properties: minimum: description: Minimum deposit amount. type: - number - 'null' format: double default: 0 minimum: 0 maximum: description: Maximum deposit amount. type: - number - 'null' format: double minimum: 0 customAmount: type: - object - 'null' description: >- Custom amount restrictions. If this value is `null`, custom amounts are prohibited. If `customAmount` is not specified when a deposit request is created, amount restrictions are determined from the chosen strategy. For more information, see the [`strategyId` property](https://www.rebilly.com/catalog/all/deposits/postdepositrequest#!t=request&path=strategyId). required: - minimum - multipleOf - maximum properties: minimum: description: Minimum custom amount. type: number format: double minimum: 0.01 multipleOf: description: >- Multiple by which the custom amount increases. For example, if `minimum` is equal to 5.30, and `multipleOf` is 0.50, the valid custom amount is 5.30, 5.80, 6.30, 6.80 and so on until the `maximum` value is reached. A valid custom amount must be equal to `minimum` + X * `multipleOf`, where X is any non negative integer. type: number format: double minimum: 0.01 maximum: description: >- Maximum custom amount. This value must be equal to `minimum` + X * `multipleOf`, where X is any positive integer. type: number format: double minimum: 0.01 redirectUrl: description: >- URL to redirect the customer to when a deposit is completed. The default value is the website URL. type: - string - 'null' format: uri expirationTime: description: >- Date and time at which the deposit request expires. The default expiration time is one hour after the time the request is created. type: - string - 'null' format: date-time customPropertySetId: description: >- ID of a custom property set to apply to the request `propertiesSchema`. type: - string - 'null' maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 notificationUrl: description: >- URL where a server-to-server `POST` notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly. type: - string - 'null' format: uri DepositStrategy: type: object required: - name - amounts - customAmount properties: id: type: string description: ID of the deposit strategy. readOnly: true maxLength: 50 example: dep_str_0YVJ64MAHTDPA97H8S7R5MYR1M name: type: string description: Name of the strategy. filter: type: string description: >- Filter that uses deposit request properties to determine if a deposit strategy is applicable for the request. If this field is empty, the strategy is applicable for any request. default: '' example: depositRequest.currency:USD amounts: type: object description: Deposit strategy amounts configuration. required: - calculator - baseAmount - increments properties: calculator: type: string description: >- Deposit amounts calculator. This field specifies if amounts are calculated using an absolute or percentage calculation. Amounts are specified in `baseAmount`, and increments are specified in `increments`. Example: `baseAmount: 10` and `increments: [20, 50, 100]`. - If the calculator is set to `absolute`: the amounts displayed to the customer are `[10, 30, 60, 110]`. - If the calculator is set to `percent`: the amounts displayed to the customer are `[10, 12, 15, 20]`. enum: - absolute - percent baseAmount: type: number format: double minimum: 0.01 description: First amount that is displayed to customer. increments: type: array description: >- List of incremental amounts that are displayed to customer. For more information, see the [`calculator` property](https://www.rebilly.com/catalog/all/deposits/postdepositstrategy#!t=request&path=amounts/calculator). items: type: number format: double minimum: 0.01 adjustBaseToLastDeposit: type: boolean default: false description: >- Specifies if the base amount must be adjusted based on the last deposit. If this value is `true`, the `baseAmount` is changed to the last successful deposit amount made using [Create a deposit request](https://www.rebilly.com/catalog/all/deposits/postdepositrequest). If the customer has no successful deposits, `baseAmount` is not adjusted. customAmount: type: - object - 'null' description: >- Custom amount restrictions. If this value is `null`, custom amounts are prohibited. If `customAmount` is not specified when a deposit request is created, amount restrictions are determined from the chosen strategy. For more information, see the [`strategyId` property](https://www.rebilly.com/catalog/all/deposits/postdepositrequest#!t=request&path=strategyId). required: - minimum - multipleOf - maximum properties: minimum: description: Minimum custom amount. type: number format: double minimum: 0.01 multipleOf: description: >- Multiple by which the custom amount increases. For example, if `minimum` is equal to 5.30, and `multipleOf` is 0.50, the valid custom amount is 5.30, 5.80, 6.30, 6.80 and so on until the `maximum` value is reached. A valid custom amount must be equal to `minimum` + X * `multipleOf`, where X is any non negative integer. type: number format: double minimum: 0.01 maximum: description: >- Maximum custom amount. This value must be equal to `minimum` + X * `multipleOf`, where X is any positive integer. type: number format: double minimum: 0.01 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' DepositCustomPropertySet: type: object required: - name - properties properties: id: type: string description: ID of the deposit property set. readOnly: true maxLength: 50 example: dep_prop_0YVJ640MB4CXVB8KXBRW3B79R9 name: type: string description: Name of the custom property set. properties: description: >- Defines properties the user can complete when they use the hosted deposit form. This field accepts [JSON-schema](https://json-schema.org/) drafts 4, 6, and 7. Accepted properties types are: `string`, `number`, `integer`, `array`, and `enum`. For more information, see [Configure custom hosted deposit properties](https://www.rebilly.com/docs/dev-docs/configure-custom-hosted-deposit-properties/). type: object example: type: object properties: email: type: string max: type: integer minimum: 0 exclusiveMaximum: 100 required: - email createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' PayoutRequestCancellation: description: Reason the payout request is canceled. type: - object - 'null' readOnly: true properties: canceledBy: description: Specifies who initiated the cancellation. type: string default: customer enum: - merchant - customer description: description: Description of the cancellation reason in free form. type: string maxLength: 255 PayoutRequest: type: object required: - websiteId - customerId - currency - amount properties: id: type: string readOnly: true description: Unique resource ID. maxLength: 50 example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80 websiteId: $ref: '#/components/schemas/WebsiteId' customerId: description: ID of the customer who is requesting a payout. $ref: '#/components/schemas/CustomerId' paymentInstrumentId: type: - string - 'null' description: ID of the requested payment instrument to offer for the payout. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N currency: description: Currency of the payout. $ref: '#/components/schemas/CurrencyCode' amount: description: Amount of the payout. type: number format: double x-type: Money availableAmount: description: Available payout request amount that has not been allocated. readOnly: true type: number format: double x-type: Money description: description: Description of payout request. type: - string - 'null' status: description: Status of the request. type: string readOnly: true enum: - pending - instrument-selected - partially-fulfilled - fulfilled - canceled x-enumDescriptions: pending: >- Request is awaiting customer's selection of the payment instrument or fulfillment. instrument-selected: >- Request has a selected payment instrument and is awaiting fulfillment. partially-fulfilled: >- Request is partially paid out when `availableAmount` is less than `amount`. fulfilled: Request is fully paid out when `availableAmount` reaches zero. canceled: Request is canceled by merchant or customer. selectPaymentInstrumentUrl: readOnly: true type: string format: uri description: URL for the customer to select a preferred payment instrument. allocations: type: array description: >- List of credit transactions that are allocated to reduce the available amount of a payout request. readOnly: true items: type: object properties: transactionId: description: >- ID of the transaction to which the payout request is allocated. $ref: '#/components/schemas/TransactionId' transactionResult: description: Result of a transaction. type: string x-basic: true readOnly: true enum: - abandoned - approved - canceled - declined - unknown method: $ref: '#/components/schemas/PaymentMethod' gatewayName: description: >- Name of the payment gateway that processed, or is selected to process, the transaction. x-label: Gateway account x-basic: true $ref: '#/components/schemas/GatewayName' paymentInstrumentId: type: string description: ID of the selected payment instrument for the transaction. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N amount: description: >- Payout amount that is allocated from the payout request to the credit transaction. type: number format: double createdTime: description: Date and time when a payout request is allocated. $ref: '#/components/schemas/ServerTimestamp' updatedTime: $ref: '#/components/schemas/UpdatedTime' selectedPaymentInstrumentRedirectUrl: description: >- URL where the customer is redirected when a payment instrument is selected. The default value is the website URL. Use `{{id}}` as a placeholder for the payout request ID. type: string format: uri example: https://example.com/payout-request-success?id={{id}} cancellationReason: $ref: '#/components/schemas/PayoutRequestCancellation' createdTime: description: Date and time when the payout request is created. $ref: '#/components/schemas/ServerTimestamp' updatedTime: description: Date and time when the payout request is updated. $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self - paymentInstrument OrderPreview: type: object required: - websiteId - items properties: websiteId: writeOnly: true allOf: - $ref: '#/components/schemas/WebsiteId' items: description: Items details. type: array writeOnly: true minItems: 1 items: type: object required: - planId properties: planId: type: string description: ID of the plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X quantity: description: Number of product units in the specified plan. type: integer billingAddress: description: Billing address details. writeOnly: true oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' deliveryAddress: description: Delivery address details. writeOnly: true oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' couponIds: type: array writeOnly: true description: List of coupons that are applied to the order. items: type: string currency: readOnly: true $ref: '#/components/schemas/CurrencyCode' lineItems: type: array description: List of purchase items. readOnly: true items: type: object properties: type: description: Type of transaction. type: string enum: - debit - credit description: description: Description of the purchase item. type: string unitPrice: description: Unit price of the purchase item. type: number format: double example: 49.95 quantity: description: Total quantity of the purchase item. type: number format: integer price: description: Total cost of the purchase item. type: number format: double planId: type: string description: ID of the related plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X productId: type: string description: ID of the related product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ shippingRates: type: array description: Available shipping rates. readOnly: true items: $ref: '#/components/schemas/ShippingOption' taxes: type: array description: Taxes applied to the purchase. readOnly: true items: type: object properties: amount: description: Amount of tax that is due. type: number format: double description: type: string description: Description of the tax. discounts: type: array description: Discounts applied to the purchase. readOnly: true items: type: object properties: couponId: type: string description: ID of a coupon that is associated with the purchase. maxLength: 50 example: cpn_0YVCNKF81GD778N4YNVGDJK558 amount: description: Total amount of discount from the coupon. type: number format: double description: description: Description of the discount. type: string subtotalAmount: description: Subtotal amount of the purchase. type: number format: double readOnly: true taxAmount: description: Tax amount of the purchase. type: number format: double readOnly: true shippingAmount: description: Shipping amount of the purchase. type: number format: double readOnly: true discountsAmount: description: Total discount amount of the purchase. type: number format: double readOnly: true total: description: Total amount of the purchase. type: number format: double readOnly: true shipping: writeOnly: true $ref: '#/components/schemas/Shipping' EventType: type: string description: Type of Rebilly event. readOnly: true enum: - account-password-reset-requested - account-verification-requested - aml-list-possibly-matched - application-instance-disabled - application-instance-enabled - balance-transaction-settled - coupon-application-removed - coupon-applied - coupon-expiration-modified - coupon-expired - coupon-issued - coupon-modified - coupon-redeemed - coupon-redemption-canceled - customer-created - customer-one-time-password-requested - customer-updated - dispute-created - dispute-modified - experian-check-performed - gateway-account-downtime-ended - gateway-account-downtime-started - gateway-account-limit-reached - gateway-account-onboarding-completed - gateway-account-onboarding-failed - gateway-account-requested - hard-usage-limit-reached - invoice-issued - invoice-modified - invoice-paid - invoice-partially-paid - invoice-partially-refunded - invoice-past-due - invoice-past-due-reminder - invoice-refunded - invoice-revenue-recognized - invoice-tax-calculation-failed - invoice-voided - kyc-document-accepted - kyc-document-modified - kyc-document-rejected - kyc-request-fulfilled - nsf-response-received - order-abandon-reminder - order-abandoned - order-completed - payment-card-created - payment-card-expiration-reminder - payment-card-expired - payment-instrument-modified - payout-request-created - payout-request-modified - quote-accepted - quote-canceled - quote-created - quote-expired - quote-issued - quote-recalled - quote-rejected - quote-updated - ready-to-pay-requested - renewal-invoice-issued - renewal-invoice-payment-canceled - renewal-invoice-payment-declined - risk-score-changed - soft-usage-limit-reached - subscription-activated - subscription-canceled - subscription-churned - subscription-created - subscription-downgraded - subscription-items-changed - subscription-modified - subscription-pause-created - subscription-pause-modified - subscription-pause-revoked - subscription-paused - subscription-reactivated - subscription-renewal-reminder - subscription-renewed - subscription-resumed - subscription-trial-converted - subscription-trial-end-changed - subscription-trial-end-reminder - subscription-upgraded - transaction-amount-discrepancy-found - transaction-declined - transaction-discrepancy-found - transaction-process-requested - transaction-processed - order-delinquency-reached EddScore: type: string enum: - not-found - unlikely - unclear - probable - confirmed EddScoreDetails: type: object properties: url: type: string format: uri description: URL from which the score is obtained. details: type: string description: Text from which the score is obtained. Edd: type: object properties: parsedScore: type: object properties: occupation: $ref: '#/components/schemas/EddScore' arrest: $ref: '#/components/schemas/EddScore' bankruptcy: $ref: '#/components/schemas/EddScore' fraud: $ref: '#/components/schemas/EddScore' occupationDetails: $ref: '#/components/schemas/EddScoreDetails' arrestDetails: $ref: '#/components/schemas/EddScoreDetails' bankruptcyDetails: $ref: '#/components/schemas/EddScoreDetails' fraudDetails: $ref: '#/components/schemas/EddScoreDetails' score: type: object properties: occupation: $ref: '#/components/schemas/EddScore' arrest: $ref: '#/components/schemas/EddScore' bankruptcy: $ref: '#/components/schemas/EddScore' fraud: $ref: '#/components/schemas/EddScore' nextUpdateTime: description: Date and time in ISO 8601 format when the EDD score is updated. type: - string - 'null' format: date-time createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self EddTimeline: type: object properties: id: type: string description: ID of the timeline message. readOnly: true maxLength: 50 example: tmln_0YV8Q9WEF5DTA8HFXS27D1G6GC type: description: Type of timeline message. type: string readOnly: true enum: - edd-search-performed - edd-score-manually-updated - timeline-comment-created triggeredBy: description: Specifies who, or what, triggered the timeline event. type: string readOnly: true enum: - rebilly - app - direct-api message: description: Detailed message description. type: string extraData: $ref: '#/components/schemas/TimelineExtraData' occurredTime: description: Date and time when the customer timeline custom event occurs. readOnly: true $ref: '#/components/schemas/ServerTimestamp' _links: $ref: '#/components/schemas/SelfLink' EddSearchResult: type: object properties: id: type: string readOnly: true description: ID of the EDD search result. maxLength: 50 example: cus_edd_01H057XGZ62JZED3P8DWAXPAE6 type: type: string readOnly: true enum: - occupation - arrest - fraud - bankruptcy searchResultData: type: array readOnly: true items: $ref: '#/components/schemas/EddScoreDetails' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' RiskScoreBoolean: type: - object - 'null' required: - value properties: value: type: integer description: Value added to the risk score of the transaction. RiskScoreBracket: type: - object - 'null' required: - brackets properties: brackets: description: >- Risk factor values range with corresponding risk score increment value. First matched bracket is applied. type: array minItems: 1 items: type: object required: - start - end - value properties: start: description: Minimal risk factor value when condition is applied. type: integer minimum: 0 end: description: Maximal risk factor value when condition is applied. type: integer minimum: 1 value: type: integer description: Value added to the risk score of the transaction. RiskScoreRules: type: object description: Risk score rules. required: - isProxy - isVpn - isTor - isHosting - hasMismatchedBillingAddressCountry - hasMismatchedBankCountry - hasMismatchedTimeZone - hasMismatchedHolderName - hasFakeName - isHighRiskCountry - paymentInstrumentVelocity - declinedPaymentInstrumentVelocity - deviceVelocity - ipVelocity - emailVelocity - billingAddressVelocity - isRebill - isRetry - customerLifetimeValue - browserAdBlockEnabled - paymentInstrumentApprovedTransactionCount properties: isProxy: description: Specifies whether the customer's IP address is related to a proxy. $ref: '#/components/schemas/RiskScoreBoolean' isVpn: description: Specifies whether the customer's IP address is related to a VPN. $ref: '#/components/schemas/RiskScoreBoolean' isTor: description: Specifies whether the customer's IP address is related to TOR. $ref: '#/components/schemas/RiskScoreBoolean' isHosting: description: Specifies whether the customer's IP address is related to hosting. $ref: '#/components/schemas/RiskScoreBoolean' hasMismatchedBillingAddressCountry: description: >- Specifies whether the customer's billing address country and geo-IP address are not the same. $ref: '#/components/schemas/RiskScoreBoolean' hasMismatchedBankCountry: description: >- Specifies whether the customer's bank country and geo-IP address are not the same. $ref: '#/components/schemas/RiskScoreBoolean' hasMismatchedTimeZone: description: >- Specifies whether the customer's browser time zone and the IP address associated time zone are not the same. $ref: '#/components/schemas/RiskScoreBoolean' hasMismatchedHolderName: description: >- Specifies whether the customer's billing address name and primary address name are not the same. $ref: '#/components/schemas/RiskScoreBoolean' hasFakeName: description: Specifies whether the holder name seems fake. $ref: '#/components/schemas/RiskScoreBoolean' isHighRiskCountry: description: >- Specifies whether the geo-IP country, or the customer's billing country, is considered a high risk country. $ref: '#/components/schemas/RiskScoreBoolean' paymentInstrumentVelocity: description: >- Number of transactions for this payment instrument, based on fingerprint, in the last 24 hours. $ref: '#/components/schemas/RiskScoreBracket' declinedPaymentInstrumentVelocity: description: >- Number of declined transactions for this payment instrument fingerprint in the last 24 hours. $ref: '#/components/schemas/RiskScoreBracket' deviceVelocity: description: >- Number of transactions for this device, based on fingerprint, in the last 24 hours. $ref: '#/components/schemas/RiskScoreBracket' ipVelocity: description: Number of transactions for this IP address in the last 24 hours. $ref: '#/components/schemas/RiskScoreBracket' emailVelocity: description: Number of transactions for this email address in the last 24 hours. $ref: '#/components/schemas/RiskScoreBracket' billingAddressVelocity: description: >- Number of transactions for this billing address in the last 24 hours. $ref: '#/components/schemas/RiskScoreBracket' isRebill: description: >- Specifies whether the transaction is one of a number of recurring payments in a subscription, excluding trials or setup fees. $ref: '#/components/schemas/RiskScoreBoolean' isRetry: description: Specifies whether the transaction is a retry. $ref: '#/components/schemas/RiskScoreBoolean' customerLifetimeValue: description: Total revenue from the customer, in USD. $ref: '#/components/schemas/RiskScoreBracket' browserAdBlockEnabled: description: Specifies whether an ad blocker was detected. $ref: '#/components/schemas/RiskScoreBoolean' paymentInstrumentApprovedTransactionCount: description: Number of approved transactions for this payment instrument. $ref: '#/components/schemas/RiskScoreBracket' RiskScoreBlocklistType: type: - object - 'null' required: - riskScoreThreshold - ttl properties: riskScoreThreshold: type: integer description: Pass and fail threshold for the blocklist. ttl: type: integer description: |- Amount of seconds a blocklist exists before it expires. If value for this field is `0` then blocklist record never expires. RiskScoreBlocklist: type: object description: Risk score blocklist configuration. properties: address: description: House number and ZIP code of the customer's address. $ref: '#/components/schemas/RiskScoreBlocklistType' bank-account: description: Bank account being charged. $ref: '#/components/schemas/RiskScoreBlocklistType' bin: description: Bank Identification Number (BIN) of the payment card being charged. $ref: '#/components/schemas/RiskScoreBlocklistType' country: description: >- Country where the customer is making the purchase, and of the payment card billing address. $ref: '#/components/schemas/RiskScoreBlocklistType' customer-id: description: Rebilly `customerId` of the customer making the purchase. $ref: '#/components/schemas/RiskScoreBlocklistType' email: description: Email address of the customer making the purchase. $ref: '#/components/schemas/RiskScoreBlocklistType' email-domain: description: Email address domain of the customer making the purchase. $ref: '#/components/schemas/RiskScoreBlocklistType' fingerprint: description: >- Fingerprint of the user's device. A device fingerprint is a unique token that is used to identify the user. The device fingerprint is generated based on device attributes, such as: hardware, software, IP address, language, browser, and more. $ref: '#/components/schemas/RiskScoreBlocklistType' ip-address: description: IP address of the customer making the purchase. $ref: '#/components/schemas/RiskScoreBlocklistType' payment-card: description: Payment card number being charged. $ref: '#/components/schemas/RiskScoreBlocklistType' Allowlist: type: object description: Risk score allowlist record. required: - type - value properties: id: type: string description: ID of the allowlist record. readOnly: true maxLength: 50 example: rsal_0YVF9605RKC62BP14NE2R7V2XT type: type: string description: >- Type of data to exclude from risk score checks. Data types that are added to this field are excluded from risk score checks and are not added to blocklists. enum: - address - bank-account - bin - country - customer-id - email - email-domain - fingerprint - ip-address - payment-card value: type: string description: Value of the allowlist record. createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' GlobalEventType: type: string description: Type of event. enum: - aml-list-possibly-matched - application-instance-disabled - application-instance-enabled - balance-transaction-settled - coupon-application-removed - coupon-applied - coupon-expiration-modified - coupon-expired - coupon-issued - coupon-modified - coupon-redeemed - coupon-redemption-canceled - credit-memo-applied - credit-memo-created - credit-memo-modified - credit-memo-partially-applied - credit-memo-voided - customer-created - customer-merged - customer-one-time-password-requested - customer-redirected-offsite - customer-returned - customer-updated - data-export-completed - dispute-created - dispute-modified - experian-check-performed - gateway-account-downtime-ended - gateway-account-downtime-started - gateway-account-limit-reached - gateway-account-onboarding-completed - gateway-account-onboarding-failed - gateway-account-requested - hard-usage-limit-reached - invoice-abandoned - invoice-created - invoice-issued - invoice-modified - invoice-paid - invoice-partially-paid - invoice-partially-refunded - invoice-past-due - invoice-past-due-reminder - invoice-refunded - invoice-reissued - invoice-tax-calculation-failed - invoice-voided - kyc-document-accepted - kyc-document-archived - kyc-document-created - kyc-document-modified - kyc-document-rejected - kyc-document-reviewed - kyc-request-attempted - kyc-request-failed - kyc-request-fulfilled - kyc-request-partially-fulfilled - lead-source-changed - nsf-response-received - offsite-payment-completed - order-abandoned - order-completed - payment-card-created - payment-card-expiration-reminder - payment-card-expired - payment-instrument-modified - payout-request-created - payout-request-modified - quote-accepted - quote-canceled - quote-created - quote-expired - quote-issued - quote-recalled - quote-rejected - quote-updated - renewal-invoice-issued - renewal-invoice-payment-canceled - renewal-invoice-payment-declined - risk-score-changed - soft-usage-limit-reached - subscription-activated - subscription-canceled - subscription-churned - subscription-downgraded - subscription-items-changed - subscription-modified - subscription-pause-created - subscription-pause-modified - subscription-pause-revoked - subscription-paused - subscription-reactivated - subscription-renewal-reminder - subscription-renewed - subscription-resumed - subscription-trial-converted - subscription-trial-end-changed - subscription-trial-end-reminder - subscription-trial-ended - subscription-upgraded - transaction-amount-discrepancy-found - transaction-declined - transaction-discrepancy-found - transaction-process-requested - transaction-processed - transaction-reconciled - transaction-timeout-resolved - waiting-gateway-transaction-completed - order-delinquency-reached TagUntagRule: type: object description: Tag or untag rule. required: - name - eventType - addTags - removeTags properties: id: type: string description: ID of the rule. readOnly: true maxLength: 50 example: tag_rule_0YVCEE5APAD7V84MK3P9CCJVYY name: description: Name of the rule. type: string eventType: allOf: - $ref: '#/components/schemas/GlobalEventType' - not: enum: - application-instance-disabled - application-instance-enabled - balance-transaction-settled - credit-memo-applied - credit-memo-created - credit-memo-modified - credit-memo-partially-applied - credit-memo-voided - customer-redirected-offsite - customer-returned - dispute-created - dispute-modified - gateway-account-downtime-ended - gateway-account-downtime-started - gateway-account-limit-reached - gateway-account-onboarding-completed - gateway-account-onboarding-failed - gateway-account-requested - invoice-created - invoice-modified - invoice-past-due-reminder - invoice-tax-calculation-failed - nsf-response-received - offsite-payment-completed - order-abandon-reminder - organization-tax-number-validated - payment-card-created - payment-card-expiration-reminder - payment-instrument-modified - renewal-invoice-payment-canceled - risk-score-changed - subscription-items-changed - subscription-modified - subscription-pause-created - subscription-pause-modified - subscription-pause-revoked - subscription-renewal-reminder - subscription-trial-converted - subscription-trial-end-changed - subscription-trial-end-reminder - subscription-trial-ended - transaction-process-requested - transaction-reconciled - transaction-timeout-resolved - waiting-gateway-transaction-completed - data-export-completed - hard-usage-limit-reached - soft-usage-limit-reached filter: description: >- Filter that determines whether to tag or untag. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filters](https://api-reference.rebilly.com/#section/Using-filter-with-collections). type: - string - 'null' addTags: description: List of tags to add to the customer. type: array minItems: 0 maxItems: 1000 items: type: string removeTags: description: List of tags to remove for the customer. type: array minItems: 0 maxItems: 1000 items: type: string status: description: Status of the rule. type: string default: active enum: - active - inactive createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: type: array description: Related resource links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - self responses: Unauthorized: description: Unauthorized access. Invalid credentials used. content: application/json: schema: $ref: '#/components/schemas/Unauthorized' Forbidden: description: Access forbidden. content: application/json: schema: $ref: '#/components/schemas/Forbidden' NotFound: description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/NotFound' ValidationError: description: Invalid data sent. content: application/json: schema: $ref: '#/components/schemas/ValidationError' Conflict: description: Conflict. content: application/json: schema: $ref: '#/components/schemas/Conflict' Customer: description: Customer. content: application/json: schema: $ref: '#/components/schemas/Customer' Found: description: Resource moved. headers: Location: schema: type: string format: uri example: https://api.rebilly.com/example requestBodies: Attachment: content: application/json: schema: $ref: '#/components/schemas/Attachment' description: Attachment resource. required: true Blocklist: content: application/json: schema: $ref: '#/components/schemas/Blocklist' description: Blocklist resource. required: true Coupon: content: application/json: schema: $ref: '#/components/schemas/Coupon' description: Coupon resource. required: true Customer: content: application/json: schema: $ref: '#/components/schemas/Customer' description: Customer resource. required: true Dispute: content: application/json: schema: type: object required: - currency - amount - transactionId - postedTime - type - status - reasonCode properties: transactionId: description: ID of the disputed transaction. $ref: '#/components/schemas/TransactionId' currency: $ref: '#/components/schemas/CurrencyCode' amount: description: Dispute amount. type: number format: double acquirerReferenceNumber: description: Acquirer reference number for the dispute. type: - string - 'null' caseId: description: Case ID of the dispute. type: - string - 'null' reasonCode: description: >- Code used in the chargeback that describes the reason for the dispute. type: string enum: - '0' - '00' - '1' - '2' - '3' - '4' - '5' - '6' - '7' - '8' - '9' - '10.1' - '10.2' - '10.3' - '10.4' - '10.5' - '11.1' - '11.2' - '11.3' - '12' - '12.1' - '12.2' - '12.3' - '12.4' - '12.5' - '12.6' - '12.7' - '13.1' - '13.2' - '13.3' - '13.4' - '13.5' - '13.6' - '13.7' - '13.8' - '13.9' - '30' - '31' - '34' - '35' - '37' - '40' - '41' - '42' - '46' - '47' - '49' - '50' - '51' - '53' - '54' - '55' - '57' - '59' - '60' - '62' - '63' - '70' - '71' - '72' - '73' - '74' - '75' - '76' - '77' - '78' - '79' - '80' - '81' - '82' - '83' - '85' - '86' - '93' - '98' - '1000' - '2700' - '2702' - A - A01 - A02 - A08 - AL - AP - AW - B - C02 - C04 - C05 - C08 - C14 - C18 - C28 - C31 - C32 - CA - CD - CR - DA - DP - DP1 - EX - F10 - F14 - F22 - F24 - F29 - FR1 - FR4 - FR6 - IC - IN - IS - LP - M01 - M10 - M49 - 'N' - NA - NC - P - P01 - P03 - P04 - P05 - P07 - P08 - P22 - P23 - R03 - R13 - RG - RM - RN1 - RN2 - SV - TF - TNM - UA01 - UA02 - UA03 - UA10 - UA11 - UA12 - UA18 - UA20 - UA21 - UA22 - UA23 - UA28 - UA30 - UA31 - UA32 - UA38 - UA99 - bank_cannot_process - credit_not_processed - customer_initiated - debit_not_authorized - duplicate - fraudulent - general - incorrect_account_details - insufficient_funds - pre-chargeback-alert - product_not_received - product_unacceptable - subscription_canceled - unrecognized type: description: Type of dispute. type: string enum: - information-request - first-chargeback - second-chargeback - arbitration - fraud - ethoca-alert - verifi-alert - bank-return status: description: Status of the dispute. type: string enum: - response-needed - under-review - forfeited - won - lost - unknown postedTime: description: Date and time when the dispute is posted. type: string format: date-time deadlineTime: description: >- Latest date and time by when a merchant must submit a representment for a dispute. If the deadline is missed, the merchant loses the dispute. type: - string - 'null' format: date-time description: Dispute resource. required: true Invoice: content: application/json: schema: $ref: '#/components/schemas/Invoice' description: Invoice resource. required: true PatchKycRequest: content: application/json: schema: allOf: - properties: customerId: readOnly: true - $ref: '#/components/schemas/KycRequest' PostPaymentInstrument: content: application/json: schema: anyOf: - $ref: '#/components/schemas/PaymentInstrumentCreateToken' - $ref: '#/components/schemas/PaymentCardCreatePlain' - $ref: '#/components/schemas/BankAccountCreatePlain' - $ref: '#/components/schemas/PayPalAccount' - $ref: '#/components/schemas/AlternativeInstrument' description: PaymentInstrument resource. required: true PatchPaymentInstrument: content: application/json: schema: oneOf: - $ref: '#/components/schemas/PaymentInstrumentUpdateToken' - $ref: '#/components/schemas/PaymentCardUpdatePlain' - $ref: '#/components/schemas/BankAccountUpdatePlain' description: PaymentInstrument resource. required: true Product: content: application/json: schema: $ref: '#/components/schemas/Product' description: Product resource. required: true Subscription: content: application/json: schema: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' description: Order resource. required: true SubscriptionCancellation: content: application/json: schema: $ref: '#/components/schemas/SubscriptionCancellation' description: Cancellation resource. required: true Tag: content: application/json: schema: $ref: '#/components/schemas/Tag' description: Tag resource. required: true UpdateTag: content: application/json: schema: required: - name properties: name: description: |- Unique name for the tag. Tag names are not case-sensitive. type: string maxLength: 255 pattern: ^[@~\-\.\w\s]+$ example: New description: Tag resource. required: true TransactionRequest: content: application/json: schema: required: - type - websiteId - customerId - currency - amount type: object properties: upsertCustomer: type: boolean default: false writeOnly: true description: >- Specifies whether to create or update (upsert) a customer. If this value is `true`, the operation creates or updates (upserts) a customer. If this value is `false`, the `customerId` already exists, and the related customer is not updated. type: description: >- Type of transaction. This field supports a limited subset of transaction types. To refund or void, see [Refund a transaction](../PostTransactionRefund). To `capture`, use the `sale` type. If any existing `authorize` transactions are eligible, they are captured and the `sale` converts to a `capture` type. The `setup` type sets up the payment instrument by following the `setupInstruction` in the selected gateway account. If the instruction is to `do-nothing`, a transaction with result `approved` of type `setup` returns. type: string enum: - sale - authorize - setup limits: $ref: '#/components/schemas/TransactionLimitAmount' websiteId: $ref: '#/components/schemas/WebsiteId' customerId: $ref: '#/components/schemas/CustomerId' currency: $ref: '#/components/schemas/CurrencyCode' amount: description: Amount of the transaction. type: number format: double example: 97.97 invoiceIds: description: Array of invoice IDs. type: - array - 'null' items: $ref: '#/components/schemas/ResourceId' paymentInstruction: description: |- Payment instruction for the purchase. If this value is not supplied, the customer's default payment instrument is used. $ref: '#/components/schemas/PaymentInstruction' billingAddress: description: >- Billing address. If this value is not supplied, the billing address associated with the payment instrument is used. If no billing address is associated with the payment instrument, the customer's billing address is used. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' requestId: description: >- Use this field to prevent duplicate transaction requests that may occur within a short period of time. If a duplicate request is sent with the same `requestId`, it is ignored to prevent double-billing. This value must be unique within a 24-hour period. > **Important:** This field is recommended. type: - string - 'null' maxLength: 50 pattern: ^[\-\w]+$ example: 44433322-2c4y-483z-a0a9-158621f77a21 gatewayAccountId: description: >- ID of the gateway account. Rebilly selects the payment gateway account for the transaction based on transaction properties and the rules configuration of the `gateway-account-requested` event. To prevent Rebilly from making the gateway account selection, supply a gateway account ID in this field. Only use this field if you intend to override the settings. type: - string - 'null' maxLength: 50 example: gw_acc_0YVCXMF26DDNKAERE5NW727S34 description: type: - string - 'null' description: Payment description. maxLength: 255 notificationUrl: description: >- URL where a server-to-server `POST` notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly. type: - string - 'null' format: uri redirectUrl: type: - string - 'null' description: >- URL to redirect the end-user when an offsite transaction is completed. Defaults to the configured URL of the website. You may use `{id}` or `{result}` as placeholders in the URL, these are replaced the with the transaction ID and result accordingly. format: uri customFields: $ref: '#/components/schemas/ResourceCustomFields' riskMetadata: $ref: '#/components/schemas/RiskMetadata' isProcessedOutside: description: Specifies when the transaction is processed outside Rebilly. type: boolean default: false isMerchantInitiated: description: Specifies when the transaction is initiated by the merchant. type: boolean default: false processedTime: type: string description: >- Time the transaction is processed. This field is only specified if the transaction is processed outside Rebilly. format: date-time description: Transaction resource. required: true PatchTransactionRequest: content: application/json: schema: type: object title: Patch transaction request properties: customFields: $ref: '#/components/schemas/ResourceCustomFields' description: Use the patch transaction request to modify custom fields. required: true CreditTransactionRequest: content: application/json: schema: type: object required: - websiteId - customerId - currency - amount properties: websiteId: $ref: '#/components/schemas/WebsiteId' customerId: $ref: '#/components/schemas/CustomerId' currency: $ref: '#/components/schemas/CurrencyCode' amount: description: Amount of the transaction. type: number format: double example: 97.97 invoiceIds: description: Array of invoice IDs. type: - array - 'null' items: $ref: '#/components/schemas/ResourceId' paymentInstruction: description: |- Payment instruction for the purchase. If this value is not supplied, the customer's default payment instrument is used. $ref: '#/components/schemas/PaymentInstruction' billingAddress: description: >- Billing address. If this value is not supplied, the billing address associated with the payment instrument is used. If no billing address is associated with the payment instrument, the customer's billing address is used. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' requestId: description: >- Use this field to prevent duplicate transaction requests that may occur within a short period of time. If a duplicate request is sent with the same `requestId`, it is ignored to prevent double-billing. This value must be unique within a 24-hour period. > **Important:** This field is recommended. type: - string - 'null' maxLength: 50 pattern: ^[\-\w]+$ example: 44433322-2c4y-483z-a0a9-158621f77a21 gatewayAccountId: description: >- ID of the gateway account. Rebilly selects the payment gateway account for the transaction based on transaction properties and the rules configuration of the `gateway-account-requested` event. To prevent Rebilly from making the gateway account selection, supply a gateway account ID in this field. Only use this field if you intend to override the settings. type: - string - 'null' maxLength: 50 example: gw_acc_0YVCXMF26DDNKAERE5NW727S34 description: type: - string - 'null' description: Payment description. maxLength: 255 notificationUrl: description: >- URL where a server-to-server `POST` notification is sent. This notification is sent when the transaction result is finalized after a timeout or an offsite interaction. Do not interpret this notification as a confirmation, complete a `GET` request to confirm the result of the transaction. To ensure the request is not reattempted, when the result is confirmed, respond with a `2xx` HTTP status code. The following placeholders are available to use in this URI: `{id}` and `{result}`. These placeholders are replaced the with the transaction ID and result accordingly. type: - string - 'null' format: uri redirectUrl: type: - string - 'null' description: >- URL to redirect the end-user when an offsite transaction is completed. Defaults to the configured URL of the website. You may use `{id}` or `{result}` as placeholders in the URL, these are replaced the with the transaction ID and result accordingly. format: uri customFields: $ref: '#/components/schemas/ResourceCustomFields' riskMetadata: $ref: '#/components/schemas/RiskMetadata' isProcessedOutside: description: Specifies when the transaction is processed outside Rebilly. type: boolean default: false isMerchantInitiated: description: Specifies when the transaction is initiated by the merchant. type: boolean default: false processedTime: type: string description: >- Time the transaction is processed. This field is only specified if the transaction is processed outside Rebilly. format: date-time payoutRequestId: description: >- ID of the payout request for which the transaction is fully allocated. writeOnly: true type: string maxLength: 50 description: Transaction resource. required: true CustomerWebhook: content: application/json: schema: properties: customerId: $ref: '#/components/schemas/CustomerId' eventType: type: string description: Type of webhook event. enum: - aml-list-possibly-matched - customer-created - customer-merged - customer-one-time-password-requested - customer-redirected-offsite - customer-returned - customer-updated _embedded: type: object description: Embedded objects. properties: customer: $ref: '#/components/schemas/Customer' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - customer description: Customer webhook request body resource. CouponRedemptionWebhook: content: application/json: schema: properties: couponId: description: ID of the coupon. type: string redemptionId: description: ID of the redemption. type: string customerId: description: ID of the customer. type: string eventType: type: string description: Type of webhook event. enum: - coupon-application-removed - coupon-applied - coupon-redeemed - coupon-redemption-canceled _embedded: type: object description: Embedded objects. properties: coupon: $ref: '#/components/schemas/Coupon' redemption: $ref: '#/components/schemas/CouponRedemption' customer: $ref: '#/components/schemas/Customer' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - coupon - redemption - customer description: Coupon redemption webhook request body resource. CouponWebhook: content: application/json: schema: properties: couponId: description: ID of the coupon. type: string eventType: type: string description: Type of webhook event. enum: - coupon-expiration-modified - coupon-expired - coupon-issued - coupon-modified _embedded: type: object description: Embedded objects. properties: coupon: $ref: '#/components/schemas/Coupon' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - coupon description: Coupon webhook request body resource. CreditMemoWebhook: content: application/json: schema: properties: creditMemoId: type: string description: ID of the credit memo. maxLength: 50 example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG eventType: type: string description: Rebilly webhooks event type. enum: - credit-memo-applied - credit-memo-created - credit-memo-modified - credit-memo-partially-applied - credit-memo-voided _embedded: type: object description: Embedded objects. properties: creditMemo: $ref: '#/components/schemas/CreditMemo' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - creditMemo description: Credit memo webhook request body resource. MergedCustomer: content: application/json: schema: properties: targetCustomerId: description: ID of the customer that contains the merged data. type: string maxLength: 50 example: cus_0YV7DDSDD1C8DA64KHH2W33CPF eventType: type: string description: Type of webhook event. enum: - customer-merged duplicatedCustomer: $ref: '#/components/schemas/Customer' _embedded: type: object description: Customer object. properties: targetCustomer: $ref: '#/components/schemas/Customer' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - customer description: Merged customer webhook request body resource. CustomerRedirect: content: application/json: schema: properties: transactionId: $ref: '#/components/schemas/TransactionId' redirectUrl: description: URL customer redirected to. type: string format: url ipAddress: description: Customer's IP address. type: string httpHeaders: description: Customer's browser HTTP headers. type: object additionalProperties: type: string example: Content-Type: application/json Accept: >- text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 eventType: description: Rebilly webhooks event type. type: string enum: - customer-redirected-offsite - customer-returned _embedded: type: object description: Embedded objects. properties: transaction: $ref: '#/components/schemas/Transaction' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - transaction description: Customer redirect webhook request body resource. DisputeWebhook: content: application/json: schema: properties: disputeId: type: string description: ID of the dispute. maxLength: 50 example: dp_0YVCE8J5F2DE58FV0S8YASW4HK transactionId: type: - string - 'null' description: ID of the transaction. maxLength: 50 example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0 eventType: type: string description: Type of webhook event. enum: - dispute-created - dispute-modified _embedded: type: object description: Embedded objects. properties: dispute: $ref: '#/components/schemas/Dispute' transaction: oneOf: - $ref: '#/components/schemas/Transaction' - type: 'null' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - dispute - transaction description: Dispute webhook request body resource. ExperianCheckPerformed: content: application/json: schema: properties: customerId: $ref: '#/components/schemas/CustomerId' outcome: description: >- Check decision where `1` - record matches, `0` - no matches found, `-1` - record mismatches. type: integer enum: - -1 - 0 - 1 example: 1 reason: description: Text representation of the outcome. type: string example: >- Individual has a 90 percent or greater match to forename surname premise postcode with ID verified and DOB errorCode: description: Error code produced by the Experian system. type: string example: '001' errorMessage: description: Error message produced by the Experian system. type: string example: 'Authentication Error: Bad Username or Password' eventType: type: string description: Type of webhook event. enum: - experian-check-performed _embedded: type: object description: Embedded object. properties: customer: $ref: '#/components/schemas/Customer' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - customer description: Experian check performed webhook request body resource. UsageLimitWebhook: content: application/json: schema: properties: subscriptionId: type: string description: ID of the order. example: sub_01HRF27SATGE4Z6PBJE6PD8328 subscriptionItemId: type: string description: ID of the subscription item. example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS planId: type: string description: ID of the plan. example: plan_01GYJPRKHBD6ZYHH897QCJMBS4 usageQuantity: type: integer description: Reported usage quantity. usageAmount: type: number format: double description: Reported usage amount. currency: type: string description: Currency of the reported usage amount. eventType: type: string description: Type of webhook event. enum: - soft-usage-limit-reached - hard-usage-limit-reached _embedded: type: object description: Embedded objects. properties: subscription: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - subscription description: Request body resource of the usage limit webhook. InvoiceTaxCalculationFailed: content: application/json: schema: properties: invoiceId: type: string description: ID of the invoice. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT reason: description: Error message explaining tax calculation failure. type: string eventType: type: string description: Type of webhook event. enum: - invoice-tax-calculation-failed _embedded: type: object description: Invoice object. properties: invoice: $ref: '#/components/schemas/Invoice' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - invoice description: Invoice tax validation failed webhook request body resource. TransactionWebhook: content: application/json: schema: properties: transactionId: $ref: '#/components/schemas/TransactionId' eventType: type: string description: Type of webhook event. enum: - gateway-account-requested - nsf-response-received - offsite-payment-completed - risk-score-changed - transaction-amount-discrepancy-found - transaction-declined - transaction-discrepancy-found - transaction-process-requested - transaction-processed - transaction-timeout-resolved - waiting-gateway-transaction-completed _embedded: type: object description: Embedded objects. properties: transaction: $ref: '#/components/schemas/Transaction' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - transaction description: Transaction webhook request body resource. InvoiceWebhook: content: application/json: schema: properties: invoiceId: type: string description: ID of the invoice. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT eventType: type: string description: Type of webhook event. enum: - invoice-abandoned - invoice-created - invoice-issued - invoice-modified - invoice-paid - invoice-partially-paid - invoice-partially-refunded - invoice-past-due - invoice-past-due-reminder - invoice-refunded - invoice-reissued - invoice-tax-calculation-failed - invoice-voided _embedded: type: object description: >- Available embedded objects that are requested by the expand query parameter. properties: invoice: $ref: '#/components/schemas/Invoice' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - invoice description: Invoice webhook request body resource. KycDocumentWebhook: content: application/json: schema: properties: customerId: $ref: '#/components/schemas/CustomerId' kycDocumentId: type: string description: ID of the KYC document. maxLength: 50 example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8 fileId: type: string description: ID of the file. maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N eventType: type: string description: Type of webhook event. enum: - kyc-document-accepted - kyc-document-created - kyc-document-modified - kyc-document-rejected - kyc-document-reviewed - kyc-document-archived _embedded: type: object description: Customer and KYC document data. properties: customer: $ref: '#/components/schemas/Customer' kycDocument: $ref: '#/components/schemas/KycDocument' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - customer - file - kycDocument description: KYC document webhook request body resource. KycRequestWebhook: content: application/json: schema: properties: customerId: $ref: '#/components/schemas/CustomerId' kycRequestId: type: string description: ID of the KYC request. maxLength: 50 example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5 eventType: type: string description: Rebilly webhooks event type. enum: - kyc-request-attempted - kyc-request-failed - kyc-request-fulfilled - kyc-request-partially-fulfilled _embedded: type: object description: Customer and KYC request data. properties: customer: $ref: '#/components/schemas/Customer' kycRequest: $ref: '#/components/schemas/KycRequest' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - customer - kycRequest description: KYC request webhook body resource. SubscriptionWebhook: content: application/json: schema: properties: subscriptionId: type: string description: ID of the order. example: sub_01HRF27SATGE4Z6PBJE6PD8328 eventType: type: string description: Type of webhook event. enum: - order-completed - order-abandoned - subscription-activated - subscription-canceled - subscription-churned - subscription-downgraded - subscription-modified - subscription-reactivated - subscription-renewal-reminder - subscription-renewed - subscription-trial-converted - subscription-trial-end-changed - subscription-trial-end-reminder - subscription-trial-ended - subscription-upgraded - order-delinquency-reached - subscription-items-changed _embedded: type: object description: Embedded objects. properties: subscription: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - subscription description: Order webhook request body resource. PaymentCardWebhook: content: application/json: schema: properties: paymentCardId: description: ID of the payment instrument. type: string eventType: type: string description: Type of webhook event. enum: - payment-card-created - payment-card-expiration-reminder - payment-card-expired _embedded: type: object description: Embedded objects. properties: paymentCard: $ref: '#/components/schemas/PaymentCard' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - paymentCard description: Payment card webhook request body resource. PaymentInstrumentWebhook: content: application/json: schema: properties: paymentInstrumentId: type: string description: ID of the payment instrument. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N eventType: type: string description: Type of webhook event. enum: - payment-instrument-modified _embedded: type: object properties: paymentInstrument: $ref: '#/components/schemas/PaymentInstrument' _links: type: array description: Related links. readOnly: true items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - paymentInstrument description: Payment instrument webhook request body resource. PayoutRequestWebhook: content: application/json: schema: properties: payoutRequestId: description: ID of the payout request. type: string eventType: type: string description: Type of webhook event. enum: - payout-request-created - payout-request-modified - payout-request-canceled _embedded: type: object description: Embedded objects. properties: payoutRequest: $ref: '#/components/schemas/PayoutRequest' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - payoutRequest description: Payout request webhook request body resource. QuoteWebhook: content: application/json: schema: properties: quoteId: type: string description: ID of the quote. example: qt_01GYJPRKHBD6ZYHH897QCJMBS4 eventType: type: string description: Type of webhook event. enum: - quote-accepted - quote-canceled - quote-created - quote-expired - quote-issued - quote-recalled - quote-rejected - quote-updated _embedded: type: object description: Embedded objects. properties: quote: $ref: '#/components/schemas/Quote' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - quote description: Quote webhook request body resource. RenewalInvoiceIssued: content: application/json: schema: properties: subscriptionId: type: string description: ID of the order. example: sub_01HRF27SATGE4Z6PBJE6PD8328 invoiceId: type: string description: ID of the invoice. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT eventType: type: string description: Type of webhook event. enum: - renewal-invoice-issued _embedded: type: object description: Embedded objects. properties: subscription: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' invoice: $ref: '#/components/schemas/Invoice' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - subscription - invoice description: Renewal invoice issued webhook request body resource. InvoiceAndTransaction: content: application/json: schema: properties: transactionId: $ref: '#/components/schemas/TransactionId' invoiceId: type: string description: ID of the invoice. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT eventType: type: string description: Type of webhook event. enum: - renewal-invoice-payment-canceled - renewal-invoice-payment-declined _embedded: type: object description: Embedded objects. properties: transaction: $ref: '#/components/schemas/Transaction' invoice: $ref: '#/components/schemas/Invoice' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - transaction - invoice description: Invoice and Transaction webhook request body resource. SubscriptionAndSubscriptionPause: content: application/json: schema: properties: subscriptionId: type: string description: ID of the order. example: sub_01HRF27SATGE4Z6PBJE6PD8328 subscriptionPauseId: type: string description: ID of the subscription pause. example: sub_pau_01H085J3ZR1WKD120D73D7N4C9 eventType: type: string description: Type of webhook event. enum: - subscription-pause-created - subscription-pause-modified - subscription-pause-revoked - subscription-paused - subscription-resumed _embedded: type: object description: Embedded objects. properties: subscription: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' pause: $ref: '#/components/schemas/SubscriptionPause' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - subscription - pause description: Subscription pause and order webhook request body resource. examples: stripe-trx-request: summary: Stripe transaction fees description: Transaction fees for Stripe. Discount rate fees are a separate record. value: type: buy name: Stripe transaction fees filter: type:sale,capture;result:approved;gatewayAccountId:stripe formula: type: fixed-fee currency: USD amount: 0.3 stripe-us-request: summary: Stripe US fees description: >- Fees for Stripe in the US. Fees for outside of the US are a different fee record. value: type: buy name: Stripe US fees filter: >- type:sale,capture;result:approved;billingAddress.country:US;gatewayAccountId:stripe formula: type: percentage currency: USD bips: 290 stripe-intl-request: summary: Stripe international fees description: Fees for Stripe outside of the US. value: type: buy name: Stripe international fees filter: >- type:sale,capture;result:approved;billingAddress.country:!US;gatewayAccountId:stripe formula: type: percentage currency: USD bips: 390 stripe-trx-response: summary: Stripe transaction fees description: Stripe transaction fees. Discount rate fees are a separate record. value: id: fee_01GQT145JX3XBRJ8K812Y3GRE9 type: buy name: Stripe transaction fees filter: type:sale,capture;result:approved;gatewayAccountId:stripe formula: type: fixed-fee currency: USD amount: 0.3 createdTime: '2021-12-15T14:15:22Z' updatedTime: '2021-12-15T14:15:22Z' _links: - rel: self href: >- https://api-sandbox.rebilly.com/fees/fee_01GQT145JX3XBRJ8K812Y3GRE9 stripe-us-response: summary: Stripe US fees description: >- Stripe transaction fees for the US. Fees for outside of the US are a different fee record. value: id: fee_01GQT145JX3XBRJ8K812Y3GRE9 type: buy name: Stripe US fees filter: >- type:sale,capture;result:approved;billingAddress.country:US;gatewayAccountId:stripe formula: type: percentage currency: USD bips: 290 createdTime: '2021-12-15T14:15:22Z' updatedTime: '2021-12-15T14:15:22Z' _links: - rel: self href: >- https://api-sandbox.rebilly.com/fees/fee_01GQT145JX3XBRJ8K812Y3GRE9 stripe-intl-response: summary: Stripe international fees description: Stripe transaction fees for outside of the US. value: id: fee_01GQT145JX3XBRJ8K812Y3GRE9 type: buy name: Stripe international fees filter: >- type:sale,capture;result:approved;billingAddress.country:!US;gatewayAccountId:stripe formula: type: percentage currency: USD bips: 390 createdTime: '2021-12-15T14:15:22Z' updatedTime: '2021-12-15T14:15:22Z' _links: - rel: self href: >- https://api-sandbox.rebilly.com/fees/fee_01GQT145JX3XBRJ8K812Y3GRE9 tags: - name: Allowlists description: >- 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. - name: AML description: >- 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. - name: API keys description: >- 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/). - name: Application owners description: >- 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/). - name: Application users description: >- 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/). - name: Balance transactions description: |- Use these operations to view and manage balance transactions. > **Important:** These operations are experimental and may change. - name: Billing portals description: >- 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. - name: Blocklists description: >- 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. - name: Broadcast messages description: >- 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-a-broadcast-messages). - name: Checkout forms description: >- 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. - name: Coupons description: >- 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. - name: Credit memos description: >- 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). - name: Credit memos timeline description: >- 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. - name: Custom domains description: >- 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). - name: Custom fields description: >- 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). - name: Customer authentication description: >- Use these operations to validate the identity of users and manage authentication credentials. - name: Customers description: >- 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). - name: Customers timeline description: >- Use customer timelines to maintain an audit trail of changes and activity for each customer. - name: Data exports description: >- 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). - name: Deposits description: >- 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. - name: Disputes description: >- 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. - name: Email delivery settings description: >- 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. - name: Email messages description: Use email messages to email customers directly. - name: Email notifications description: >- 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/). - name: External identifiers description: >- 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. - name: Fees description: >- 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. - name: Files description: >- 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. - name: Gateway accounts description: >- 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. - name: Gateway accounts timeline description: >- Use gateway account timelines to maintain an audit trail of changes and activity for each gateway account. - name: Histograms description: >- 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). - name: Integrations description: >- 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/). - name: Invoices description: >- 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. - name: Invoices timeline description: >- Use invoice timelines to maintain an audit trail of changes and activity for each invoice. - name: Journal description: Use journal accounts, entries and records to track and recognize revenue. - name: KYC documents description: >- 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. - name: Lists description: >- 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). - name: Memberships description: |- 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. - name: Metadata description: |- Use these operations to retrieve and manage metadata. Metadata is structured information on other data. - name: Orders description: >- 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). - name: Orders timeline description: >- Use order timelines to maintain an audit trail of changes and activity for each order. - name: Organization data exports description: >- 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. - name: Organizations description: >- 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. - name: Payment instruments description: >- 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). - name: Payment tokens description: >- 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. - name: Plans description: >- 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/). - name: Products description: >- 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). - name: Profile description: |- Use these operations to manage user profiles. A profile represents the person that is signed in to Rebilly. - name: Quotes description: >- 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. - name: Quotes timeline description: >- Use quote timelines to maintain an audit trail of changes and activity for each quote. - name: Reports description: >- Use reports operations to retrieve summary information about your customers, subscriptions, transactions, and more. - name: Reset password description: >- 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 click a reset link, and then create a new password. - name: Risk score description: >- Use risk score operations to configure blocklists based on transaction risk factors. - name: Roles description: >- 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. - name: Rules description: >- 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/). - name: Rules timeline description: >- Use rule timelines to maintain an audit trail of changes and activity for each rule. - name: Search description: >- Use search operations to search data on customers, invoices, orders, transactions and more. - name: Segments description: >- 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. - name: Service credentials description: >- Use these operations to get, create, and manage credentials for third-party services. - name: Shipping rates description: >- Use these operations to manage shipping rates. A shipping rate contains a filter and a pricing for a specific shipping destination. - name: Status description: |- Use this operation to check the status of the Rebilly API. No authentication is required. - name: Storefront account description: >- 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. - name: Storefront billing portals description: >- 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. - name: Storefront checkout forms description: >- 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. - name: Storefront custom fields description: >- 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. - name: Storefront deposits description: >- 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. - name: Storefront invoices description: >- 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. - name: Storefront KYC documents description: >- 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. - name: Storefront orders description: >- 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. - name: Storefront payment instruments description: >- 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. - name: Storefront plans description: >- 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. - name: Storefront products description: >- 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. - name: Storefront purchases description: >- 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. - name: Storefront quotes description: >- 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. - name: Storefront transactions description: >- 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. - name: Storefront websites description: >- 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. - name: Tags description: >- Use tags to organize and categorize customers or KYC documents based on keywords. - name: Tracking description: |- Use tracking when debugging and auditing issues. Tracking is a layer for accessing all activity such as: API requests, subscriptions, webhooks, events, and more. - name: Transactions description: |- Use these operations to: - set up payment instruments for payments - authorize and hold funds - capture funds - make payments - make payouts - refund transactions. - name: Transactions timeline description: >- Use transaction timelines to maintain an audit trail of changes and activity for each transaction. - name: Usage description: >- 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). - name: Users description: >- Use these operations to manage users. A user is a person who can login to Rebilly, and take actions based on their granted permissions. - name: Webhooks description: >- 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. - name: Websites description: >- 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/). x-tagGroups: - name: Customers tags: - Customers - Customer authentication - Tags - Customers timeline - name: Payment Instruments tags: - Payment instruments - Payment tokens - name: Payments tags: - Transactions - Disputes - Fees - Transactions timeline - name: Orders & Invoices tags: - Orders - Invoices - Usage - Credit memos - Plans - Products - Coupons - Quotes - Quotes timeline - Shipping rates - Orders timeline - Invoices timeline - Credit memos timeline - name: Risk tags: - Blocklists - Allowlists - KYC documents - AML - Risk score - name: Misc tags: - Custom fields - Files - Search paths: /aml-checks: get: x-products: - Core tags: - AML summary: Retrieve AML checks operationId: GetAmlCheckCollection x-sdk-operation-name: getAll description: >- Retrieves a list of AML checks. These checks are records of customer data and potentially matching data in AML lists. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of AML checks retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/AmlCheck' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /aml-checks/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - AML summary: Retrieve an AML check operationId: GetAmlCheck x-sdk-operation-name: get description: |- Retrieves the results of a customer's AML check. Customer metadata and an array of matching AML hits is returned. responses: '200': description: AML check retrieved. content: application/json: schema: $ref: '#/components/schemas/AmlCheck' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /aml-checks/{id}/start-review: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - AML summary: Start review of an AML check operationId: PostAmlCheckStartReview x-sdk-operation-name: startReview description: >- Starts the manual review process for an AML check with a specified ID. This operation also sets the AML check `reviewStartTime` to the current date-time, and updates the review information. responses: '201': description: AML check review started. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/AmlCheck' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /aml-checks/{id}/stop-review: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - AML summary: Stop review of an AML check operationId: PostAmlCheckStopReview x-sdk-operation-name: stopReview description: >- Stops the manual review process for an AML check with a specified ID. This operation also sets the AML check `reviewStartTime` and the reviewer information to null. Use this operation when the reviewer must stop the review. For example, if the reviewer must take a break, or ends a shift. responses: '201': description: AML document review stopped. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/AmlCheck' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /aml-checks/{id}/review: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - AML summary: Review an AML check operationId: PostAmlCheckReview x-sdk-operation-name: review description: >- Reviews an AML check. The AML check can be either confirmed or marked as a false positive with a customer tag. requestBody: content: application/json: schema: $ref: '#/components/schemas/AmlCheckReview' responses: '201': description: AML check reviewed. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/AmlCheck' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /aml-settings: get: x-products: - Core tags: - AML summary: Retrieve AML settings operationId: GetAmlSettings x-sdk-operation-name: getAmlSettings description: Retrieves AML settings. responses: '200': description: AML settings retrieved. content: application/json: schema: $ref: '#/components/schemas/AmlSettings' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - AML summary: Update AML settings operationId: PutAmlSettings x-sdk-operation-name: putAmlSettings description: Updates AML settings. requestBody: content: application/json: schema: $ref: '#/components/schemas/AmlSettings' description: Settings for AML searches. required: true responses: '200': description: AML settings updated. content: application/json: schema: $ref: '#/components/schemas/AmlSettings' '201': description: AML settings created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/AmlSettings' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /attachments: get: x-products: - Core tags: - Files summary: Retrieve attachments operationId: GetAttachmentCollection x-sdk-operation-name: getAllAttachments description: |- Retrieves a list of attachments. You may sort attachments by: `id`, `name`, `relatedId`, `relatedType`, `fileId`, `createdTime`, and `updatedTime`. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionExpand' - $ref: '#/components/parameters/collectionFields' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of attachments retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Attachment' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $attachments = $client->attachments()->search([ 'filter' => 'relatedType:customer', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.files.getAllAttachments(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.files.getAllAttachments(params); // access the collection items, each item is a Member secondCollection.items.forEach(attachment => console.log(attachment.fields.relatedType)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $attachmentsPaginator = $service->files()->getAllAttachmentsPaginator(limit: 5, filter: 'relatedType:customer'); foreach ($attachmentsPaginator as $attachmentPage) { printf("Attachments page %d/%d\n", $attachmentsPaginator->key() + 1, $attachmentsPaginator->count()); foreach ($attachmentPage as $attachment) { printf("Attachment #%s (%s): %s\n", $attachment->getId(), $attachment->getRelatedType(), $attachment->getName()); } } // OR $attachments = $service->files()->getAllAttachments(filter: 'relatedType:customer'); foreach ($attachments as $attachment) { printf("Attachment #%s (%s): %s\n", $attachment->getId(), $attachment->getRelatedType(), $attachment->getName()); } post: x-products: - Core tags: - Files summary: Create an attachment operationId: PostAttachment x-sdk-operation-name: attach description: |- 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. requestBody: $ref: '#/components/requestBodies/Attachment' responses: '201': description: Attachment created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Attachment' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $attachmentForm = new Rebilly\Entities\Attachment(); $attachmentForm->setFileId('fileId'); $attachmentForm->setRelatedType($attachmentForm::TYPE_CUSTOMER); $attachmentForm->setRelatedId('customerId'); try { $attachment = $client->attachments()->create($attachmentForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: | // Define the attachment const data = { // Previously uploaded file ID fileId: 'my-file-id', relatedType: 'customer', relatedId: 'my-customer-id', name: 'an attachment', description: `the customer's file` }; const attachment = await api.files.attach({data}); console.log(attachment.fields.id); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $attachmentForm = new \Rebilly\Sdk\Model\Attachment(); $attachmentForm->setFileId('fileId'); $attachmentForm->setRelatedType($attachmentForm::RELATED_TYPE_CUSTOMER); $attachmentForm->setRelatedId('customerId'); try { $attachment = $service->files()->attach($attachmentForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /attachments/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Files summary: Retrieve an attachment operationId: GetAttachment x-sdk-operation-name: getAttachment description: Retrieves an attachment with a specified ID. responses: '200': description: Attachment retrieved. content: application/json: schema: $ref: '#/components/schemas/Attachment' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $attachment = $client->attachments()->load('attachmentId'); - lang: JavaScript source: >- const attachment = await api.files.getAttachment({id: 'foobar-001'}); console.log(attachment.fields.relatedType); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $attachment = $service->files()->getAttachment('attachmentId'); put: x-products: - Core tags: - Files summary: Update an attachment operationId: PutAttachment x-sdk-operation-name: updateAttachment description: Updates an attachment with a specified ID. requestBody: $ref: '#/components/requestBodies/Attachment' responses: '200': description: Attachment updated. content: application/json: schema: $ref: '#/components/schemas/Attachment' '201': description: Attachment created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Attachment' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $attachmentForm = new Rebilly\Entities\Attachment(); $attachmentForm->setFileId('fileId'); $attachmentForm->setRelatedType($attachmentForm::TYPE_CUSTOMER); $attachmentForm->setRelatedId('customerId'); try { $attachment = $client->attachments()->update('attachmentId', $attachmentForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // define the values to update const data = { relatedType: 'customer', relatedId: 'my-customer-id', name: 'an attachment', description: `the customer's file` }; const attachment = await api.files.updateAttachment({id: 'foobar-001', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $attachmentForm = new \Rebilly\Sdk\Model\Attachment(); $attachmentForm->setFileId('fileId'); $attachmentForm->setRelatedType($attachmentForm::RELATED_TYPE_CUSTOMER); $attachmentForm->setRelatedId('customerId'); try { $attachment = $service->files()->updateAttachment('attachmentId', $attachmentForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Files summary: Delete an attachment operationId: DeleteAttachment x-sdk-operation-name: detach description: Deletes an attachment with a specified ID. responses: '204': description: Attachment deleted. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->attachments()->delete('attachmentId'); - lang: JavaScript source: |- const request = await api.files.detach({id: 'my-attachment-id'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->files()->detach('attachmentId'); /authentication-options: get: x-products: - Core tags: - Customer authentication summary: Retrieve authentication options operationId: GetAuthenticationOption x-sdk-operation-name: getAuthOptions description: Retrieves customer authentication options. responses: '200': description: Authentication options retrieved. content: application/json: schema: $ref: '#/components/schemas/AuthenticationOptions' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $authenticationOptions = $client->authenticationOptions()->load(); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $authenticationOptions = $service->customerAuthentication()->getAuthOptions(); - lang: JavaScript source: |- const options = await api.customerAuthentication.getAuthOptions(); console.log(options.fields.credentialTtl); put: x-products: - Core tags: - Customer authentication summary: Change authentication options operationId: PutAuthenticationOption x-sdk-operation-name: updateAuthOptions description: Changes customer authentication options. requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticationOptions' description: Authentication options resource. required: true responses: '200': description: Authentication options updated. content: application/json: schema: $ref: '#/components/schemas/AuthenticationOptions' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $authenticationOptionsForm = new Rebilly\Entities\AuthenticationOptions(); // Regular expression below matches any password with 6+ length that contains alphabet symbols and/or numbers. $authenticationOptionsForm->setPasswordPattern('/^[a-zA-Z0-9]{6,}$/'); try { $authenticationOptions = $client->authenticationOptions()->update($authenticationOptionsForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the authentication options const data = { passwordPattern: null, credentialTtl: 10, authTokenTtl: 20, resetTokenTtl: 30 }; const options = await api.customerAuthentication.updateAuthOptions({data}); console.log(options.fields.credentialTtl); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $authenticationOptionsForm = new \Rebilly\Sdk\Model\AuthenticationOptions(); // Regular expression below matches any password with 6+ length that contains alphabet symbols and/or numbers. $authenticationOptionsForm->setPasswordPattern('/^[a-zA-Z0-9]{6,}$/'); try { $authenticationOptions = $service->customerAuthentication()->updateAuthOptions($authenticationOptionsForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /authentication-tokens: get: x-products: - Core tags: - Customer authentication summary: Retrieve authentication tokens operationId: GetAuthenticationTokenCollection x-sdk-operation-name: getAllAuthTokens description: Retrieves a list of customer authentication tokens. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: List of auth tokens retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/AuthenticationTokenResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $authenticationTokens = $client->authenticationTokens()->search([ 'filter' => 'customerId:testCustomer', ]); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $listOfTokens = $service->customerAuthentication()->getAllAuthTokens(); // alternatively you can specify one or more of them $listOfTokens = $coreService->customerAuthentication()->getAllAuthTokens(limit: 5, offset: 2); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.customerAuthentication.getAllAuthTokens(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100}; const secondCollection = await api.customerAuthentication.getAllAuthTokens(params); // access the collection items, each item is a Member secondCollection.items.forEach(token => console.log(token.fields.username)); post: x-products: - Core tags: - Customer authentication summary: Login a customer operationId: PostAuthenticationToken x-sdk-operation-name: login description: Logs in a customer. security: - SecretApiKey: [] - JWT: [] - PublishableApiKey: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/AuthenticationToken' description: AuthenticationToken resource. required: true responses: '201': description: Login successful. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/AuthenticationTokenResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $authenticationForm = new Rebilly\Entities\AuthenticationToken(); $authenticationForm->setUsername('username'); $authenticationForm->setPassword('test123'); try { $authenticationToken = $client->authenticationTokens()->login($authenticationForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: |- const data = { username: 'foobar', password: 'fuubar' // optionally you can define an `expiredTime` to // limit the duration of the session token //expiredTime: '2017-09-18T19:17:39Z' }; const session = await api.customerAuthentication.login({data}); console.log(session.fields.token); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $authenticationForm = \Rebilly\Sdk\Model\AuthenticationTokenPasswordMode::from(); $authenticationForm->setUsername('username'); $authenticationForm->setPassword('test123'); try { $authenticationToken = $service->customerAuthentication()->login($authenticationForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /authentication-tokens/{token}: parameters: - name: token in: path description: ID of the authentication token. required: true schema: type: string get: x-products: - Core tags: - Customer authentication summary: Verify an authentication token operationId: GetAuthenticationTokenVerification x-sdk-operation-name: verify description: Verifies a customer's authentication token. security: - SecretApiKey: [] - JWT: [] - PublishableApiKey: [] responses: '200': description: Authentication token verified. content: application/json: schema: $ref: '#/components/schemas/AuthenticationTokenResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $isVerified = $client->authenticationTokens()->verify('token'); - lang: JavaScript source: >- const token = 'dcf6e32f2daee457a1db8ce5fdfbe200'; const verification = await api.customerAuthentication.verify({token}); // if the the token is valid then no error will be thrown console.log(verification.reponse.status) // 200 - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $isVerified = $service->customerAuthentication()->verify('token'); delete: x-products: - Core tags: - Customer authentication summary: Logout a customer operationId: DeleteAuthenticationToken x-sdk-operation-name: logout description: Logs out a customer. security: - SecretApiKey: [] - JWT: [] - PublishableApiKey: [] responses: '204': description: Customer logged out. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->authenticationTokens()->logout('token'); - lang: JavaScript source: |- const token = 'dcf6e32f2daee457a1db8ce5fdfbe200'; const request = await api.customerAuthentication.logout({token}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->customerAuthentication()->logout('token'); /authentication-tokens/{token}/exchange: parameters: - name: token in: path description: ID of the authentication token. required: true schema: type: string post: x-products: - Core tags: - Customer authentication summary: Exchange an authentication token operationId: PostAuthenticationTokenExchange x-sdk-operation-name: exchangeToken description: >- Exchanges an authentication token for a JWT. By default, this operation invalidates the exchanged authentication token. security: - SecretApiKey: [] - JWT: [] - PublishableApiKey: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomerJWT' required: true responses: '201': description: Authentication token exchanged for a JWT. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CustomerJWT' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /blocklists: get: x-products: - Core tags: - Blocklists summary: Retrieve blocklists operationId: GetBlocklistCollection x-sdk-operation-name: getAll description: Retrieves a list of all blocklists. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of blocklists retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Blocklist' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $blocklists = $client->blocklists()->search([ 'filter' => 'value:testValue', ]); - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.blocklists.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.blocklists.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(blocklistItem => console.log(blocklistItem.fields.status)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $blocklistsPaginator = $service->blocklists()->getAllPaginator(limit: 5, filter: 'value:testValue'); foreach ($blocklistsPaginator as $blocklistPage) { printf("Blocklists page %d/%d\n", $blocklistsPaginator->key() + 1, $blocklistsPaginator->count()); foreach ($blocklistPage as $blocklist) { printf("Blocklist #%s (%s): %s\n", $blocklist->getId(), $blocklist->getType(), $blocklist->getValue()); } } // OR $blocklists = $service->blocklists()->getAll(filter: 'value:testValue'); foreach ($blocklists as $blocklist) { printf("Blocklist #%s (%s): %s\n", $blocklist->getId(), $blocklist->getType(), $blocklist->getValue()); } post: x-products: - Core tags: - Blocklists summary: Create a blocklist operationId: PostBlocklist x-sdk-operation-name: create description: Creates a blocklist. requestBody: $ref: '#/components/requestBodies/Blocklist' responses: '201': description: Blocklist created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Blocklist' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $blocklistForm = new Rebilly\Entities\Blocklist(); $blocklistForm->setType($blocklistForm::TYPE_EMAIL); $blocklistForm->setValue('test@test.com'); $blocklistForm->setExpiredTime('2025-01-01 05:00:00'); try { $blocklist = $client->blocklists()->create($blocklistForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // first set the required properties for the new blocklist item const data = { type: 'ip-address', value: '63.118.98.100' // optionally provide an `expirationTime` to make // the item expire and function like a `greylist` // expirationTime: '2017-09-18T21:50:44Z' }; // the ID is optional const firstKey = await api.blocklists.create({data}); // or you can provide one const secondKey = await api.blocklists.create({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $blocklistForm = new \Rebilly\Sdk\Model\Blocklist(); $blocklistForm->setType($blocklistForm::TYPE_EMAIL); $blocklistForm->setValue('test@test.com'); $blocklistForm->setExpirationTime('2025-01-01 05:00:00'); try { $blocklist = $service->blocklists()->create($blocklistForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /blocklists/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Blocklists summary: Retrieve a blocklist operationId: GetBlocklist x-sdk-operation-name: get description: Retrieves a blocklist with a specified ID. responses: '200': description: Blocklist retrieved. content: application/json: schema: $ref: '#/components/schemas/Blocklist' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $blocklist = $client->blocklists()->load('blocklistId'); - lang: JavaScript source: | const blocklistItem = await api.blocklists.get({id: 'foobar-001'}); console.log(blocklistItem.fields.status); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $blocklist = $service->blocklists()->get('blocklistId'); put: x-products: - Core tags: - Blocklists summary: Create a blocklist with specified ID operationId: PutBlocklist x-sdk-operation-name: update description: Creates a blocklist with a specified ID. requestBody: $ref: '#/components/requestBodies/Blocklist' responses: '200': description: Blocklist updated. content: application/json: schema: $ref: '#/components/schemas/Blocklist' '201': description: Blocklist created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Blocklist' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $blocklistForm = new Rebilly\Entities\Blocklist(); $blocklistForm->setType($blocklistForm::TYPE_EMAIL); $blocklistForm->setValue('test@test.com'); $blocklistForm->setExpiredTime('2025-01-01 05:00:00'); try { $blocklist = $client->blocklists()->create($blocklistForm, 'blocklistId'); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // first set the required properties for the new blocklist item const data = { type: 'ip-address', value: '63.118.98.100' // optionally provide an `expirationTime` to make // the item expire and function like a `greylist` // expirationTime: '2017-09-18T21:50:44Z' }; // the ID is optional const firstKey = await api.blocklists.create({data}); // or you can provide one const secondKey = await api.blocklists.create({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $blocklistForm = new \Rebilly\Sdk\Model\Blocklist(); $blocklistForm->setType($blocklistForm::TYPE_EMAIL); $blocklistForm->setValue('test@test.com'); $blocklistForm->setExpirationTime('2025-01-01 05:00:00'); try { $blocklist = $service->blocklists()->update('blocklistId', $blocklistForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Blocklists summary: Delete a blocklist operationId: DeleteBlocklist x-sdk-operation-name: delete description: Deletes a blocklist with a specified ID. responses: '204': description: Blocklist deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->blocklists()->delete('blocklistId'); - lang: JavaScript source: | const request = await api.blocklists.delete({id: 'my-second-key'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->blocklists()->delete('blocklistId'); /coupons-redemptions: get: x-products: - Core tags: - Coupons summary: Retrieve coupon redemptions operationId: GetCouponRedemptionCollection x-sdk-operation-name: getAllRedemptions description: Retrieves a list of coupon redemptions. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of coupon redemptions retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/CouponRedemption' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $couponRedemptions = $client->couponsRedemptions()->search([ 'filter' => 'customerId:testCustomer', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.coupons.getAllRedemptions(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.coupons.getAllRedemptions(params); // access the collection items, each item is a Member secondCollection.items.forEach(coupon => console.log(coupon.fields.status)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $couponRedemptionsPaginator = $service->coupons()->getAllRedemptionsPaginator(limit: 5, filter: 'customerId:testCustomer'); foreach ($couponRedemptionsPaginator as $couponRedemptionsPage) { printf("Coupon redemptions page %d/%d\n", $couponRedemptionsPaginator->key() + 1, $couponRedemptionsPaginator->count()); foreach ($couponRedemptionsPage as $couponRedemption) { printf("Coupon redemption #%s\n", $couponRedemption->getId()); } } // OR $couponRedemptions = $service->coupons()->getAllRedemptions(filter: 'customerId:testCustomer'); foreach ($couponRedemptions as $couponRedemption) { printf("Coupon redemption #%s\n", $couponRedemption->getId()); } post: x-products: - Core tags: - Coupons summary: Redeem a coupon operationId: PostCouponRedemption x-sdk-operation-name: redeem security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Redeems a coupon. requestBody: content: application/json: schema: $ref: '#/components/schemas/CouponRedemption' description: Coupon resource. required: true responses: '201': description: Coupon redeemed. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CouponRedemption' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $redemptionForm = new Rebilly\Entities\Coupons\Redemption(); $redemptionForm->setCustomerId('customerId'); $redemptionForm->setCouponId('couponId'); $restrictionData = [ 'type' => Rebilly\Entities\Coupons\Restriction::TYPE_DISCOUNTS_PER_REDEMPTION, 'quantity' => 2, ]; $restrictionForm = Rebilly\Entities\Coupons\Restriction::createFromData($restrictionData); $redemptionForm->setAdditionalRestrictions([$restrictionForm]); try { $couponRedemption = $client->couponsRedemptions()->redeem($redemptionForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: | // build the redemption data const data = { couponId: 'my-best-coupon', customerId: 'foobar-001' }; const redemption = await api.coupons.redeem({data}); console.log(redemption.fields.id); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $redemptionForm = new \Rebilly\Sdk\Model\CouponRedemption(); $redemptionForm->setCustomerId('customerId'); $redemptionForm->setCouponId('couponId'); $restrictionForm = new \Rebilly\Sdk\Model\CouponRestrictionDiscountPerRedemption(); $restrictionForm->setQuantity(2); $redemptionForm->setAdditionalRestrictions([$restrictionForm]); try { $couponRedemption = $service->coupons()->redeem($redemptionForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /coupons-redemptions/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Coupons summary: Retrieve a coupon redemption operationId: GetCouponRedemption x-sdk-operation-name: getRedemption description: Retrieves a coupon redemption with a specified ID. responses: '200': description: Coupon redemption retrieved. content: application/json: schema: $ref: '#/components/schemas/CouponRedemption' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $couponRedemption = $client->couponsRedemptions()->load('redemptionId'); - lang: JavaScript source: >- const redemption = await api.coupons.getRedemption({id: 'foobar-001'}); console.log(redemption.fields.id); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $couponRedemption = $service->coupons()->getRedemption('redemptionId'); /coupons-redemptions/{id}/cancel: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Coupons summary: Cancel a coupon redemption operationId: PostCouponRedemptionCancellation x-sdk-operation-name: cancelRedemption description: Cancels a coupon redemption with a specified ID. responses: '201': description: Coupon redemption cancelled. headers: Location: $ref: '#/components/headers/Location' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->couponsRedemptions()->cancel('id'); - lang: JavaScript source: >- const cancellation = await api.coupons.cancelRedemption({id: 'foobar-001'}); // the request does not return any fields but // you can confirm the success using the status code console.log(cancellation.response.status); // 201 - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->coupons()->cancelRedemption('id'); /coupons: get: x-products: - Core tags: - Coupons summary: Retrieve coupons operationId: GetCouponCollection x-sdk-operation-name: getAll description: Retrieves a list of coupons. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of coupons retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Coupon' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $coupons = $client->coupons()->search([ 'filter' => 'status:issued', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.coupons.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.coupons.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(coupon => console.log(coupon.fields.status)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $couponsPaginator = $service->coupons()->getAllPaginator(limit: 5, filter: 'status:issued'); foreach ($couponsPaginator as $couponsPage) { printf("Coupons page %d/%d\n", $couponsPaginator->key() + 1, $couponsPaginator->count()); foreach ($couponsPage as $coupon) { printf("Coupon #%s (%s): %s\n", $coupon->getId(), $coupon->getStatus(), $coupon->getDescription()); } } // OR $coupons = $service->coupons()->getAll(filter: 'status:issued'); foreach ($coupons as $coupon) { printf("Coupon #%s (%s): %s\n", $coupon->getId(), $coupon->getStatus(), $coupon->getDescription()); } post: x-products: - Core tags: - Coupons summary: Create a coupon operationId: PostCoupon x-sdk-operation-name: create security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Creates a coupon. requestBody: $ref: '#/components/requestBodies/Coupon' responses: '201': description: Coupon created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Coupon' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $couponForm = new Rebilly\Entities\Coupons\Coupon(); $discountArray = [ 'currency' => 'USD', 'amount' => 1.99, ]; $discountForm = new \Rebilly\Entities\Coupons\Discounts\Fixed($discountArray); $couponForm->setDiscount($discountForm); // Coupon can be used right now $couponForm->setIssuedTime(date('c')); $restrictionArray = [ 'quantity' => 2, ]; $restrictionForm = new Rebilly\Entities\Coupons\Restrictions\DiscountsPerRedemption($restrictionArray); $couponForm->setRestrictions([$restrictionForm]); try { $coupon = $client->coupons()->create($couponForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // first set the required properties for the new coupon const data = { description: 'a new coupon', issuedTime: '2017-09-19T20:46:44Z', discount: { type: 'percent', value: 12 }, restrictions: [{ type: 'discounts-per-redemption', quantity: 12 }] }; // the ID is optional const firstKey = await api.coupons.create({data}); // or you can provide one const secondKey = await api.coupons.create({id: 'my-second-id', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $couponForm = new \Rebilly\Sdk\Model\Coupon(); $discountForm = new \Rebilly\Sdk\Model\DiscountFixed(); $discountForm->setCurrency('USD'); $discountForm->setAmount(1.99); $couponForm->setDiscount($discountForm); // Coupon can be used right now $couponForm->setIssuedTime(date('c')); $restrictionArray = [ 'quantity' => 2, ]; $restrictionForm = new \Rebilly\Sdk\Model\CouponRestrictionDiscountPerRedemption($restrictionArray); $couponForm->setRestrictions([$restrictionForm]); try { $coupon = $service->coupons()->create($couponForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /coupons/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Coupons summary: Retrieve a coupon operationId: GetCoupon x-sdk-operation-name: get description: Retrieves a coupon with a specified ID. responses: '200': description: Coupon retrieved. content: application/json: schema: $ref: '#/components/schemas/Coupon' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $coupon = $client->coupons()->load('couponId'); - lang: JavaScript source: | const coupon = await api.coupons.get({couponId: 'foobar-001'}); console.log(coupon.fields.status); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $coupon = $service->coupons()->get('couponId'); put: x-products: - Core tags: - Coupons summary: Upsert a coupon operationId: PutCoupon x-sdk-operation-name: update security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Creates or updates (upserts) a coupon with a specified coupon ID. requestBody: $ref: '#/components/requestBodies/Coupon' responses: '200': description: Coupon updated. content: application/json: schema: $ref: '#/components/schemas/Coupon' '201': description: Coupon created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Coupon' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $couponForm = new Rebilly\Entities\Coupons\Coupon([ 'issuedTime' => '2022-01-01T00:00:00-04:00', ]); $discountArray = [ 'type' => Rebilly\Entities\Coupons\Discount::TYPE_FIXED, 'currency' => 'USD', 'amount' => 1.99, ]; $discountForm = Rebilly\Entities\Coupons\Discount::createFromData($discountArray); $couponForm->setDiscount($discountForm); $restrictionArray = [ 'type' => Rebilly\Entities\Coupons\Restriction::TYPE_DISCOUNTS_PER_REDEMPTION, 'quantity' => 2, ]; $restrictionForm = Rebilly\Entities\Coupons\Restriction::createFromData($restrictionArray); $couponForm->setRestrictions([$restrictionForm]); try { $coupon = $client->coupons()->create($couponForm, 'couponId'); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // creating a coupon const data = { description: 'a new coupon', issuedTime: '2017-09-19T20:46:44Z', discount: { type: 'percent', value: 12 }, restrictions: [{ type: 'discounts-per-redemption', quantity: 12 }] }; // the ID is optional const firstKey = await api.coupons.create({data}); // or you can provide one const secondKey = await api.coupons.create({id: 'my-second-id', data}); // updating a coupon const data = { description: 'a small update' }; const coupon = await api.coupons.update({id: 'my-second-id', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $couponForm = new \Rebilly\Sdk\Model\Coupon(); $couponForm->setIssuedTime('2022-01-01T00:00:00-04:00'); $discountForm = new \Rebilly\Sdk\Model\DiscountFixed(); $discountForm->setCurrency('USD'); $discountForm->setAmount(1.99); $couponForm->setDiscount($discountForm); $restrictionForm = new \Rebilly\Sdk\Model\CouponRestrictionDiscountPerRedemption(); $restrictionForm->setQuantity(2); $couponForm->setRestrictions([$restrictionForm]); try { $coupon = $service->coupons()->update('couponId', $couponForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /coupons/{id}/expiration: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Coupons summary: Specify a coupon expiration time operationId: PostCouponExpiration x-sdk-operation-name: setExpiration description: |- Specifies the expiration time of a coupon with a specified ID. The `expiredTime` of a coupon must be greater than its `issuedTime`. > **Note:** This operation cannot be performed on expired coupons. requestBody: content: application/json: schema: $ref: '#/components/schemas/CouponExpiration' description: Coupon resource. responses: '201': description: Coupon expiration set. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Coupon' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': description: |- Coupon has expired and been redeemed. Unable to reschedule expiration. content: application/json: schema: $ref: '#/components/schemas/Error' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: > const data = { expiredTime: "2020-05-25T18:51:14Z" } const coupon = await api.coupons.setExpiration({id: 'my-second-id', data}); /credentials: get: x-products: - Core tags: - Customer authentication summary: Retrieve credentials operationId: GetCredentialCollection x-sdk-operation-name: getAllCredentials description: Retrieves a list of authentication credentials. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: List of authentication credentials retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/CustomerCredential' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customerCredentials = $client->customerCredentials()->search([ 'filter' => 'customerId:testCustomer', ]); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $customerCredentials = $service->customerAuthentication()->getAllCredentials(limit: 10); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.customerAuthentication.getAllCredentials(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100}; const secondCollection = await api.customerAuthentication.getAllCredentials(params); // access the collection items, each item is a Member secondCollection.items.forEach(credential => console.log(credential.fields.customerId)); post: x-products: - Core tags: - Customer authentication summary: Create a credential operationId: PostCredential x-sdk-operation-name: createCredential description: Creates an authentication credential. requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomerCredential' description: Credential resource. required: true responses: '201': description: Credential created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CustomerCredential' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customerCredentialForm = new Rebilly\Entities\CustomerCredential(); $customerCredentialForm->setCustomerId('customerId'); $customerCredentialForm->setUsername('test'); $customerCredentialForm->setPassword('1234'); try { $customerCredential = $client->customerCredentials()->create($customerCredentialForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the required properties for the new credential const data = { username: 'foobar', password: 'fuubar', customerId: 'foobar-0001' // optionally you can define an `expiredTime` to // limit the duration of the credential //expiredTime: '2017-09-18T19:17:39Z' }; // the ID is optional const firstCredential = await api.customerAuthentication.createCredential({data}); // or you can provide one const secondCredential = await api.customerAuthentication.createCredential({id: 'my-second-id', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $customerCredentialForm = \Rebilly\Sdk\Model\CustomerCredential::from([]) ->setCustomerId('customerId') ->setUsername('test') ->setPassword('1234'); try { $customerCredential = $service->customerAuthentication()->createCredential($customerCredentialForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /credentials/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Customer authentication summary: Retrieve a credential operationId: GetCredential x-sdk-operation-name: getCredential description: Retrieves a credential with a specified ID. responses: '200': description: Credential retrieved. content: application/json: schema: $ref: '#/components/schemas/CustomerCredential' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $customerCredential = $client->customerCredentials()->load('credentialId'); - lang: JavaScript source: >- const credential = await api.customerAuthentication.getCredential({id: 'my-first-id'}); console.log(credential.fields.customerId); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $customerCredential = $service->customerAuthentication()->getCredential('credentialId'); put: x-products: - Core tags: - Customer authentication summary: Upsert a credential operationId: PutCredential x-sdk-operation-name: updateCredential description: >- Creates or updates (upserts) an authentication credential with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomerCredential' description: Credential resource. required: true responses: '200': description: Credential updated. content: application/json: schema: $ref: '#/components/schemas/CustomerCredential' '201': description: Credential created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CustomerCredential' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customerCredentialForm = new Rebilly\Entities\CustomerCredential(); $customerCredentialForm->setCustomerId('customerId'); $customerCredentialForm->setUsername('test'); $customerCredentialForm->setPassword('1234'); try { $customerCredential = $client->customerCredentials()->update('credentialId', $customerCredentialForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // creating a new credential const data = { username: 'foobar', password: 'fuubar', customerId: 'foobar-0001' // optionally you can define an `expiredTime` to // limit the duration of the credential //expiredTime: '2017-09-18T19:17:39Z' }; // the ID is optional const firstCredential = await api.customerAuthentication.createCredential({data}); // or you can provide one const secondCredential = await api.customerAuthentication.createCredential({id: 'my-second-id', data}); // updating a credential const data = { username: 'foobar', password: 'hell0' }; const secondCredential = await api.customerAuthentication.updateCredential({id: 'my-second-id', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $customerCredentialForm = \Rebilly\Sdk\Model\CustomerCredential::from([]) ->setCustomerId('customerId') ->setUsername('test') ->setPassword('1234'); try { $customerCredential = $service->customerAuthentication()->updateCredential('credentialId', $customerCredentialForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Customer authentication summary: Delete a credential operationId: DeleteCredential x-sdk-operation-name: deleteCredential description: Deletes an authentication credential with a specified ID. responses: '204': description: Credential deleted. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->customerCredentials()->delete('credentialId'); - lang: JavaScript source: >- const request = await api.customerAuthentication.deleteCredential({id: 'my-second-key'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $service->customerAuthentication()->deleteCredential('credentialId'); /custom-fields/{resource}: parameters: - $ref: '#/components/parameters/customFieldResource' get: x-products: - Core tags: - Custom fields summary: Retrieve custom fields operationId: GetCustomFieldCollection x-sdk-operation-name: getAll parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' description: Retrieves the custom fields schema for a specified resource. responses: '200': description: Schema of custom fields retrieved. content: application/json: schema: description: List of custom fields. type: array items: $ref: '#/components/schemas/CustomField' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customFields = $client->customFields()->search('customers', [ 'filter' => 'type:boolean', ]); - lang: JavaScript source: >- // all parameters except `resource` are optional const firstCollection = await api.customFields.getAll({resource: 'customers'}); // alternatively you can specify one or more of them const params = {resource: 'customers', limit: 20, offset: 100}; const secondCollection = await api.customFields.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(customField => console.log(customField.fields.description)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $customFieldsPaginator = $service->customFields()->getAllPaginator(resource: 'customers', limit: 5); foreach ($customFieldsPaginator as $customFieldPage) { printf("Custom fields page %d/%d\n", $customFieldsPaginator->key() + 1, $customFieldsPaginator->count()); foreach ($customFieldPage as $customField) { printf("Custom field #%s: %s\n", $customField->getName(), $customField->getDescription()); } } // OR $customFields = $service->customFields()->getAll('customers'); foreach ($customFields as $customField) { printf("Custom field #%s: %s\n", $customField->getName(), $customField->getDescription()); } /custom-fields/{resource}/{name}: parameters: - $ref: '#/components/parameters/customFieldResource' - name: name in: path description: ID of the custom field. required: true schema: type: string maxLength: 60 pattern: ^[\w-]+$ get: x-products: - Core tags: - Custom fields summary: Retrieve a custom field operationId: GetCustomField x-sdk-operation-name: get description: Retrieves a specified custom field schema for a specified resource. responses: '200': description: Custom field schema retrieved. content: application/json: schema: $ref: '#/components/schemas/CustomField' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $customField = $client->customFields()->load('customers', 'testFieldName'); - lang: JavaScript source: >- const customField = await api.customFields.get({resource: 'customers', name: 'dob'}); console.log(customField.fields.description); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $customField = $service->customFields()->get('customers', 'testFieldName'); put: x-products: - Core tags: - Custom fields summary: Create or alter a custom field operationId: PutCustomField x-sdk-operation-name: create description: >- Creates or alters a specified custom field schema for a specified resource. requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomField' description: Custom fields schema of the specified resource. required: true responses: '200': description: Custom field updated. content: application/json: schema: $ref: '#/components/schemas/CustomField' '201': description: Custom field created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CustomField' '401': $ref: '#/components/responses/Unauthorized' '409': description: |- Schema in use. To remove or alter the schema, remove all associated data. content: application/json: schema: $ref: '#/components/schemas/Error' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customFieldForm = new Rebilly\Entities\CustomField(); $customFieldForm->setType($customFieldForm::TYPE_BOOLEAN); try { $customField = $client->customFields()->update('customers', 'testFieldName', $customFieldForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: | // creating a custom field const data = { name: 'Date of Birth', type: 'date', description: `The customer's date of birth` }; // define the entire payload const params = {resource: 'customers', name: 'dob', data}; // create the custom field const customField = await api.customFields.create(params); // or update the custom field const customField = await api.customFields.update(params); // you can verify if the custom field is used console.log(customField.fields.isUsed); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $customFieldForm = new \Rebilly\Sdk\Model\BooleanCustomField(); $customFieldForm->setDescription('testFieldDescription'); try { $customField = $service->customFields()->create('customers', 'testFieldName', $customFieldForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /customers: get: x-products: - Core tags: - Customers summary: Retrieve customers operationId: GetCustomerCollection x-sdk-operation-name: getAll security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a list of customers. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionExpand' - $ref: '#/components/parameters/collectionFields' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of customers retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Customer' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customers = $client->customers()->search([ 'filter' => 'firstName:John', ]); - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.customers.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.customers.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(customer => console.log(customer.fields.primaryAddress.firstName)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $customersPaginator = $service->customers()->getAllPaginator(limit: 5); foreach ($customersPaginator as $customerPage) { printf("Customers page %d/%d\n", $customersPaginator->key() + 1, $customersPaginator->count()); foreach ($customerPage as $customer) { printf("Customer #%s: %s\n", $customer->getId(), $customer->getFirstName()); } } // OR $customers = $service->customers()->getAll(filter: 'firstName:John'); foreach ($customers as $customer) { printf("Customer #%s: %s\n", $customer->getId(), $customer->getFirstName()); } post: x-products: - Core tags: - Customers summary: Create a customer operationId: PostCustomer x-sdk-operation-name: create description: >- 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](https://www.rebilly.com/docs/dev-docs/concepts/#prevent-duplicate-customers). requestBody: $ref: '#/components/requestBodies/Customer' responses: '201': description: Customer created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Customer' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customerForm = new Rebilly\Entities\Customer(); $customerForm->setPrimaryAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $customer = $client->customers()->create($customerForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the new customer const data = { primaryAddress: { firstName: 'John', lastName: 'Doe', emails: [{ label: 'main', value: 'john.doe+test@grr.la', primary: true }], } }; // the ID is optional const firstCustomer = await api.customers.create({data}); // or you can provide one const secondCustomer = await api.customers.create({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $customerForm = \Rebilly\Sdk\Model\Customer::from([]) ->setWebsiteId('websiteId') ->setPrimaryAddress( \Rebilly\Sdk\Model\ContactObject::from([]) ->setFirstName('John') ->setLastName('Doe') ->setAddress('Test street 5') ->setEmails([ \Rebilly\Sdk\Model\ContactEmails::from([]) ->setLabel('main') ->setValue('johndoe@email.com') ->setPrimary(true), ]), ); try { $customer = $service->customers()->create($customerForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /customers/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Customers summary: Retrieve a customer operationId: GetCustomer x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a customer with a specified ID. parameters: - $ref: '#/components/parameters/collectionExpand' - $ref: '#/components/parameters/collectionFields' responses: '200': description: Customer retrieved. content: application/json: schema: $ref: '#/components/schemas/Customer' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customers = $client->customers()->load('myCustomerId'); - lang: JavaScript source: |- const customer = await api.customers.get({id: 'foobar-001'}); console.log(customer.fields.primaryAddress.firstName); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $customer = $service->customers()->get('customerId'); put: x-products: - Core tags: - Customers summary: Upsert a customer operationId: PutCustomer x-sdk-operation-name: update description: >- Creates or updates (upserts) a customer with a specified ID. If the customer already has an identifier within your system, and you want to create a customer with a specified ID — use this operation to prevent duplicate customers. For more information, see [Prevent duplicate customers](https://www.rebilly.com/docs/dev-docs/concepts/#prevent-duplicate-customers). requestBody: $ref: '#/components/requestBodies/Customer' responses: '200': $ref: '#/components/responses/Customer' '201': description: Customer with a specified ID created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Customer' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customerForm = new Rebilly\Entities\Customer(); $customerForm->setPrimaryAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $customer = $client->customers()->update('myCustomerId', $customerForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // creating a customer const data = { primaryAddress: { firstName: 'John', lastName: 'Doe', emails: [{ label: 'main', value: 'john.doe+test@grr.la', primary: true }], } }; // the ID is optional const firstCustomer = await api.customers.create({data}); // or you can provide one const secondCustomer = await api.customers.create({id: 'my-second-id', data}); // updating a customer const data = { primaryAddress: { firstName: 'Johnny', lastName: 'Doe', emails: [{ label: 'main', value: 'johnny.doe+test@grr.la', primary: true }], } }; const customer = await api.customers.update({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $customerForm = \Rebilly\Sdk\Model\Customer::from([]) ->setWebsiteId('websiteId') ->setPrimaryAddress( \Rebilly\Sdk\Model\ContactObject::from([]) ->setFirstName('John') ->setLastName('Doe') ->setAddress('Test street 5') ->setEmails([ \Rebilly\Sdk\Model\ContactEmails::from([]) ->setLabel('main') ->setValue('johndoe@email.com') ->setPrimary(true), ]), ); try { $customer = $service->customers()->update('myCustomerId', $customerForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core parameters: - in: query name: targetCustomerId required: true schema: type: string description: |- ID of the customer that you want to delete. This field is used to obtain the customer's data. tags: - Customers summary: Merge and delete a customer operationId: DeleteCustomer x-sdk-operation-name: merge description: >- Merges one duplicate customer to another target customer and deletes the former. responses: '204': description: Customer is merged and deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->customers()->merge('customerId', 'targetCustomerId'); /customer-timeline-custom-events: get: x-products: - Core tags: - Customers timeline summary: Retrieve customer timeline custom event types operationId: GetCustomerTimelineCustomEventTypeCollection x-sdk-operation-name: getAll description: Retrieves a list of customer timeline custom event types. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: List of customer timeline custom event types retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/CustomerTimelineCustomEvent' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Customers timeline summary: Create customer timeline custom event type operationId: PostCustomerTimelineCustomEventType x-sdk-operation-name: create description: Creates a customer timeline custom event type. requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomerTimelineCustomEvent' description: Customer timeline custom event type resource. required: true responses: '201': description: Customer timeline custom event type created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CustomerTimelineCustomEvent' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /customer-timeline-custom-events/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Customers timeline summary: Retrieve customer timeline custom event type operationId: GetCustomerTimelineCustomEventType x-sdk-operation-name: get description: Retrieves a customer timeline custom event type with a specified ID. responses: '200': description: Customer timeline custom event type retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: $ref: '#/components/schemas/CustomerTimelineCustomEvent' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /customers/{id}/lead-source: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Customers summary: Retrieve a customer's lead source operationId: GetCustomerLeadSource x-sdk-operation-name: getLeadSource description: >- Retrieves lead source data for a customer with a specified ID. A lead source is the marketing campaign that generates customer interaction, a sale, or a trial. For more information, see [Lead source attribution](https://www.rebilly.com/docs/dev-docs/concepts/#lead-source-attribution). responses: '200': description: Lead source retrieved. content: application/json: schema: $ref: '#/components/schemas/LeadSource' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $customer = $client->customers()->load('myCustomerId'); $leadSource = $customer->getLeadSource(); - lang: JavaScript source: >- const lead = await api.customers.getLeadSource({id: 'my-second-id'}); console.log(lead.fields.affiliate); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $customerLeadSource = $service->customers()->getLeadSource('customerId'); put: x-products: - Core tags: - Customers summary: Create a customer's lead source operationId: PutCustomerLeadSource x-sdk-operation-name: createLeadSource description: >- 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](https://www.rebilly.com/docs/dev-docs/concepts/#lead-source-attribution). requestBody: content: application/json: schema: $ref: '#/components/schemas/LeadSource' description: Lead Source resource. required: true responses: '201': description: Lead source created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/LeadSource' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $leadSourceForm = new Rebilly\Entities\LeadSource(); $leadSourceForm->setSource('TestSource'); $leadSourceForm->setCampaign('TestCampaign'); try { $customer = $client->customers()->updateLeadSource('myCustomerId', $leadSourceForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the new lead source const data = { medium: 'foobar', source: 'www.google.com', campaign: 'my-first-campaign', term: 'subscriptions', content: 'subscription business', affiliate: 'Acme', subAffiliate: null, salesAgent: null, clickId: null, path: null, ipAddress: '12.34.56.78', currency: 'USD', amount: 0 }; const lead = await api.customers.createLeadSource({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $leadSourceForm = \Rebilly\Sdk\Model\LeadSource::from([]) ->setSource('TestSource') ->setCampaign('TestCampaign'); try { $customer = $service->customers()->createLeadSource('myCustomerId', $leadSourceForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Customers summary: Delete a customer's lead source operationId: DeleteCustomerLeadSource x-sdk-operation-name: deleteLeadSource description: Deletes lead source data for a customer with a specified ID. responses: '204': description: Lead source deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->customers()->deleteLeadSource('myCustomerId'); - lang: JavaScript source: >- const request = await api.customers.deleteLeadSource({id: 'my-second-id'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->customers()->deleteLeadSource('customerId'); /customers/{id}/timeline: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Customers timeline summary: Retrieve customer timeline messages operationId: GetCustomerTimelineCollection x-sdk-operation-name: getAllTimelineMessages description: Retrieves customer timeline messages. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of customer timeline messages retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/CustomerTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional except for the `id` const firstCollection = await api.customers .getAllTimelineMessages({id: 'my-customer'}); // alternatively you can specify one or more of them const params = {id: 'my-customer', limit: 20, offset: 100}; const secondCollection = await api.customers.getAllTimelineMessages(params); // access the collection items, each item is a Member secondCollection.items .forEach(message => console.log(message.fields.eventType)); post: x-products: - Core tags: - Customers timeline summary: Create a customer timeline comment operationId: PostCustomerTimeline x-sdk-operation-name: createTimelineComment description: Creates a customer timeline comment or custom defined event. requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomerTimeline' description: Customer timeline resource. required: true responses: '201': description: Customer timeline comment or custom defined event created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CustomerTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- // Create a comment const firstComment = await api .customers.createTimelineComment({id: 'my-customer-id', data: {message: 'Your comment here'}}); // Using params object, mentions and references const message = `Example of mentions @user@mydomain.com and references #customers-customer-id`; const params = { id: 'my-customer-id', data: { message, }, }; const secondComment = await api.customers.createTimelineComment(params); /customers/{id}/timeline/{messageId}: parameters: - $ref: '#/components/parameters/resourceId' - name: messageId in: path description: ID of the customer timeline message. required: true schema: type: string get: x-products: - Core tags: - Customers timeline summary: Retrieve a customer timeline message operationId: GetCustomerTimeline x-sdk-operation-name: getTimelineMessage description: Retrieves a customer message with a specified ID. responses: '200': description: Customer message retrieved. content: application/json: schema: $ref: '#/components/schemas/CustomerTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const message = await api.customers .getTimelineMessage({id: 'foobar-001', messageId: 'message-202'}); console.log(message.fields.eventType); delete: x-products: - Core tags: - Customers timeline summary: Delete a customer timeline message operationId: DeleteCustomerTimeline x-sdk-operation-name: deleteTimelineMessage description: Deletes a customer timeline message with a specified ID. responses: '204': description: Customer timeline message deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: JavaScript source: |- const request = await api.customers .deleteTimelineMessage({id: 'foobar-001', messageId: 'message-202'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 /disputes: get: x-products: - Core tags: - Disputes summary: Retrieve disputes operationId: GetDisputeCollection x-sdk-operation-name: getAll description: Retrieves a list of all disputes. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: List of disputes successfully retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Dispute' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $disputes = $client->disputes()->search([ 'filter' => 'transactionId:testId', ]); - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.disputes.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.disputes.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(dispute => console.log(dispute.fields.transactionId)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $disputesPaginator = $service->disputes()->getAllPaginator(filter: 'transactionId:testId', limit: 5); foreach ($disputesPaginator as $disputesPage) { printf("Disputes page %d/%d\n", $disputesPaginator->key() + 1, $disputesPaginator->count()); foreach ($disputesPage as $dispute) { printf("Dispute #%s (%s)\n", $dispute->getId(), $dispute->getStatus()); } } // OR $disputes = $service->disputes()->getAll(filter: 'transactionId:testId'); foreach ($disputes as $dispute) { printf("Dispute #%s (%s)\n", $dispute->getId(), $dispute->getStatus()); } post: x-products: - Core tags: - Disputes summary: Create a dispute operationId: PostDispute x-sdk-operation-name: create description: Creates a new dispute. requestBody: $ref: '#/components/requestBodies/Dispute' responses: '201': description: Dispute created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Dispute' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $disputeForm = new Rebilly\Entities\Dispute(); $disputeForm->setTransactionId('transactionId'); $disputeForm->setCurrency('USD'); $disputeForm->setAmount(10); $disputeForm->setReasonCode(1000); $disputeForm->setType($disputeForm::TYPE_1CB); $disputeForm->setStatus($disputeForm::STATUS_RESPONSE_NEEDED); $disputeForm->setPostedTime('2025-01-01 05:00:00'); try { $dispute = $client->disputes()->create($disputeForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the new dispute const data = { transactionId: 'my-transaction-id', currency: 'USD', amount: 5, reasonCode: '1000', type: 'first-chargeback', status: 'response-needed', acquirerReferenceNumber: '143543', postedTime: '2017-09-19T20:46:48Z', deadlineTime: '2017-09-19T20:46:48Z' }; // the ID is optional const firstdispute = await api.disputes.create({data}); // or you can provide one const secondDispute = await api.disputes.create({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $disputeForm = new \Rebilly\Sdk\Model\Dispute(); $disputeForm->setTransactionId('transactionId'); $disputeForm->setCurrency('USD'); $disputeForm->setAmount(10); $disputeForm->setReasonCode('1000'); $disputeForm->setType($disputeForm::TYPE_INFORMATION_REQUEST); $disputeForm->setStatus($disputeForm::STATUS_RESPONSE_NEEDED); $disputeForm->setPostedTime('2025-01-01 05:00:00'); try { $dispute = $service->disputes()->create($disputeForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /disputes/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Disputes summary: Retrieve a dispute operationId: GetDispute x-sdk-operation-name: get description: Retrieves a dispute with a specified ID. responses: '200': description: Dispute retrieved. content: application/json: schema: $ref: '#/components/schemas/Dispute' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $dispute = $client->disputes()->load('disputeId'); - lang: JavaScript source: |- const dispute = await api.disputes.get({id: 'foobar-001'}); console.log(dispute.fields.firstName); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $dispute = $service->disputes()->get('disputeId'); put: x-products: - Core tags: - Disputes summary: Upsert a dispute operationId: PutDispute x-sdk-operation-name: update description: Creates or updates (upserts) a dispute with a specified ID. requestBody: $ref: '#/components/requestBodies/Dispute' responses: '200': description: Dispute updated. content: application/json: schema: $ref: '#/components/schemas/Dispute' '201': description: Dispute created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Dispute' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $disputeForm = new Rebilly\Entities\Dispute(); $disputeForm->setTransactionId('transactionId'); $disputeForm->setCurrency('USD'); $disputeForm->setAmount(10); $disputeForm->setReasonCode(1000); $disputeForm->setType($disputeForm::TYPE_1CB); $disputeForm->setStatus($disputeForm::STATUS_RESPONSE_NEEDED); $disputeForm->setPostedTime('2025-01-01 05:00:00'); try { $dispute = $client->disputes()->update('disputeId', $dispute); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // creating a dispute const data = { transactionId: 'my-transaction-id', currency: 'USD', amount: 5, reasonCode: '1000', type: 'first-chargeback', status: 'response-needed', acquirerReferenceNumber: '143543', postedTime: '2017-09-19T20:46:48Z', deadlineTime: '2017-09-19T20:46:48Z' }; // the ID is optional const firstdispute = await api.disputes.create({data}); // or you can provide one const secondDispute = await api.disputes.create({id: 'my-second-id', data}); // updating a dispute const data = { transactionId: 'my-other-transaction-id', currency: 'USD', amount: 5, reasonCode: '1000', type: 'first-chargeback', status: 'response-needed', acquirerReferenceNumber: '143543', postedTime: '2017-09-19T20:46:48Z', deadlineTime: '2017-09-19T20:46:48Z' }; const dispute = await api.disputes.update({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $disputeForm = new \Rebilly\Sdk\Model\Dispute(); $disputeForm->setTransactionId('transactionId'); $disputeForm->setCurrency('USD'); $disputeForm->setAmount(10); $disputeForm->setReasonCode('1000'); $disputeForm->setType($disputeForm::TYPE_INFORMATION_REQUEST); $disputeForm->setStatus($disputeForm::STATUS_RESPONSE_NEEDED); $disputeForm->setPostedTime('2025-01-01 05:00:00'); try { $dispute = $service->disputes()->update('disputeId', $disputeForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /{resource}/{resourceId}/external-identifiers/{service}: parameters: - $ref: '#/components/parameters/externalIdentifierResource' - $ref: '#/components/parameters/externalIdentifierResourceId' - $ref: '#/components/parameters/externalIdentifierService' /files: get: x-products: - Core tags: - Files summary: Retrieve files operationId: GetFileCollection x-sdk-operation-name: getAll description: Retrieves a list of files. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionFields' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of files retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/File' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $files = $client->files()->search([ 'filter' => 'name:TestFile', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.files.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.files.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(file => console.log(file.fields.name)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $filesPaginator = $service->files()->getAllPaginator(limit: 5, filter: 'name:TestFile'); foreach ($filesPaginator as $filesPage) { printf("Files page %d/%d\n", $filesPaginator->key() + 1, $filesPaginator->count()); foreach ($filesPage as $file) { printf("File #%s: %s\n", $file->getId(), $file->getName()); } } // OR $files = $service->files()->getAll(filter: 'name:TestFile'); foreach ($files as $file) { printf("File #%s: %s\n", $file->getId(), $file->getName()); } post: x-products: - Core tags: - Files summary: Create a file operationId: PostFile x-sdk-operation-name: upload security: - SecretApiKey: [] - JWT: [] - PublishableApiKey: [] description: |- Creates a file. Additionally, a file can be sent by: - Multipart/form-data POST request: In this request, the file is uploaded and all property names are the same as the JSON names. - File body request: In this request, the file body is sent as the request body, with the appropriate `Content-Type`. No additional properties can be set with the request data. Permitted file types: `.jpg`, `.png`, `.gif`, and `.pdf`. When using a publishable API key, only private files can be created. The files can be modified at a later point or time, or can be accessed using a secret API key. requestBody: content: application/json: schema: oneOf: - $ref: '#/components/schemas/FileCreateFromInline' - $ref: '#/components/schemas/FileCreateFromUrl' required: true responses: '201': description: File created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/File' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $fileForm = new Rebilly\Entities\File(); $fileForm->setUrl('http://test.com/somefile.jpg'); try { $file = $client->files()->create($fileForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // using a FileList to fetch a file const fileObject = fileList[0]; const addedFile = await api.files.upload({fileObject}); // or, upload and update a file at the same time // using a FileList to fetch a file const fileObject = fileList[0]; // define file data const data = { description: 'my new file', tags: ['original'] }; const addedFile = await api.files.uploadAndUpdate({fileObject, data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $fileForm = new \Rebilly\Sdk\Model\FileCreateFromUrl(); $fileForm->setUrl('http://test.com/somefile.jpg'); try { $file = $service->files()->upload($fileForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /files/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Files summary: Retrieve a file record operationId: GetFile x-sdk-operation-name: get description: Retrieves a file with a specified ID. responses: '200': description: File retrieved. content: application/json: schema: $ref: '#/components/schemas/File' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $file = $client->files()->load('fileId'); - lang: JavaScript source: |- const file = await api.files.get({id: 'foobar-001'}); console.log(file.fields.name); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $file = $service->files()->get('fileId'); put: x-products: - Core tags: - Files summary: Update a file operationId: PutFile x-sdk-operation-name: update description: |- Updates a file with a specified ID. > **Note:** Files can only be uploaded by POST request. For more information, see the Create a file operation. requestBody: content: application/json: schema: $ref: '#/components/schemas/File' description: File resource. required: true responses: '200': description: File updated. content: application/json: schema: $ref: '#/components/schemas/File' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $fileForm = new Rebilly\Entities\File(); $fileForm->setDescription('This is a test file'); try { $file = $client->files()->update('fileId', $fileForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // define the values to update const data = { name: 'new file name', description: 'a fitting description', tags: ['original'] }; const file = await api.files.update({id: 'my-file-id', data}); // or, upload and update a file at the same time // using a FileList to fetch a file const fileObject = fileList[0]; // define file data const data = { description: 'my new file', tags: ['original'] }; const addedFile = await api.files.uploadAndUpdate({fileObject, data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $fileForm = new \Rebilly\Sdk\Model\File(); $fileForm->setDescription('This is a test file'); try { $file = $service->files()->update('fileId', $fileForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Files summary: Delete a file operationId: DeleteFile x-sdk-operation-name: delete description: Deletes a file with a specified ID. responses: '204': description: File deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->files()->delete('fileId'); - lang: JavaScript source: >- // simply delete a file const request = await api.files.delete({id: 'my-file-id'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 // or, delete a file and its related resource attachments // use this method to remove the file completely from all resources at once. const request = await api.files.detachAndDelete({id: 'my-file-id'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->files()->delete('fileId'); /files/{id}/download: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/imageSize' get: x-products: - Core tags: - Files summary: Download a file operationId: GetFileDownload x-sdk-operation-name: download description: Downloads a file with a specified ID. responses: '200': description: File retrieved. headers: Content-Length: description: Number of bytes in the file. schema: type: integer example: 48 Content-Type: description: MIME type of the file. schema: type: string example: image/png content: application/json: schema: type: string readOnly: true format: binary application/pdf: schema: type: string readOnly: true format: binary application/zip: schema: type: string readOnly: true format: binary image/jpg: schema: type: string readOnly: true format: binary image/png: schema: type: string readOnly: true format: binary image/gif: schema: type: string readOnly: true format: binary text/csv: schema: type: string readOnly: true format: binary '302': $ref: '#/components/responses/Found' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const file = await api.files.download({id: 'my-file-id'}); // access the file ArrayBuffer to view the content console.log(file.data); /application-instances/{applicationId}: parameters: - $ref: '#/components/parameters/applicationId' /application-instances/{applicationId}/configuration: parameters: - $ref: '#/components/parameters/applicationId' /applications/{id}: parameters: - $ref: '#/components/parameters/resourceId' /applications/{id}/instances: parameters: - $ref: '#/components/parameters/resourceId' /applications/{id}/instances/{organizationId}: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/organizationId' /invoices: get: x-products: - Core tags: - Invoices summary: Retrieve invoices operationId: GetInvoiceCollection x-sdk-operation-name: getAll security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a list of invoices. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: List of invoices retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoices = $client->invoices()->search([ 'filter' => 'customerId:testCustomerId', ]); - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.invoices.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.invoices.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(invoice => console.log(invoice.fields.firstName)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $invoicesPaginator = $service->invoices()->getAllPaginator(filter: 'customerId:testCustomerId', limit: 5); foreach ($invoicesPaginator as $invoicePage) { printf("Invoices page %d/%d\n", $invoicesPaginator->key() + 1, $invoicesPaginator->count()); foreach ($invoicePage as $invoice) { printf("Invoice #%s (%s): %.2f\n", $invoice->getId(), $invoice->getStatus(), $invoice->getAmount()); } } // OR $invoices = $service->invoices()->getAll(filter: 'customerId:testCustomerId', limit: 100); foreach ($invoices as $invoice) { printf("Invoice #%s (%s): %.2f\n", $invoice->getId(), $invoice->getStatus(), $invoice->getAmount()); } post: x-products: - Core tags: - Invoices summary: Create an invoice operationId: PostInvoice x-sdk-operation-name: create description: Creates an invoice. requestBody: $ref: '#/components/requestBodies/Invoice' responses: '201': description: Invoice created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoiceForm = new Rebilly\Entities\Invoice(); $invoiceForm->setCustomerId('customerId'); $invoiceForm->setWebsiteId('websiteId'); $invoiceForm->setCurrency('USD'); $invoiceForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $invoice = $client->invoices()->create($invoiceForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the new invoice const data = { customerId: 'foobar-0001', websiteId: 'my-main-website', currency: 'USD', billingAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, deliveryAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, notes: `customer's first invoice`, }; // the ID is optional const firstInvoice = await api.invoices.create({data}); // or you can provide one const secondInvoice = await api.invoices.create({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $invoice = \Rebilly\Sdk\Model\Invoice::from() ->setCustomerId('customerId') ->setWebsiteId('websiteId') ->setCurrency('USD') ->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $invoice = $service->invoices()->create($invoice); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /invoices/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Invoices summary: Retrieve an invoice operationId: GetInvoice x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves an invoice with a specified ID. parameters: - $ref: '#/components/parameters/mediaTypeJsonPdf' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Invoice retrieved. content: application/json: schema: $ref: '#/components/schemas/Invoice' application/pdf: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoice = $client->invoices()->load('invoiceId'); - lang: JavaScript source: |- const invoice = await api.invoices.get({id: 'foobar-001'}); console.log(invoice.fields.primaryAddress.firstName); // alternatively, download as a PDF file const pdf = await api.invoices.downloadPDF({id: 'foobar-001'}); // the invoice's data in arraybuffer format console.log(pdf.data); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $invoice = $service->invoices()->get('invoiceId'); put: x-products: - Core tags: - Invoices summary: Upsert an invoice operationId: PutInvoice x-sdk-operation-name: update description: Creates or updates (upserts) an invoice with a specified ID. requestBody: $ref: '#/components/requestBodies/Invoice' responses: '200': description: Invoice updated. content: application/json: schema: $ref: '#/components/schemas/Invoice' '201': description: Invoice created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoiceForm = new Rebilly\Entities\Invoice(); $invoiceForm->setCustomerId('customerId'); $invoiceForm->setWebsiteId('websiteId'); $invoiceForm->setCurrency('USD'); $invoiceForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $invoice = $client->invoices()->update('invoiceId', $invoiceForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // creating an invoice const data = { customerId: 'foobar-0001', websiteId: 'my-main-website', currency: 'USD', billingAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, deliveryAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, notes: `customer's first invoice`, }; // the ID is optional const firstInvoice = await api.invoices.create({data}); // or you can provide one const secondInvoice = await api.invoices.create({id: 'my-second-id', data}); // updating an invoice const data = { customerId: 'foobar-0001', websiteId: 'my-main-website', currency: 'USD', billingAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, deliveryAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, notes: `customer's first invoice`, }; const invoice = await api.invoices.update({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $invoice = \Rebilly\Sdk\Model\Invoice::from() ->setCustomerId('customerId') ->setWebsiteId('websiteId') ->setCurrency('USD') ->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $invoice = $service->invoices()->update('invoiceId', $invoice); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /invoices/{id}/items: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Invoices summary: Retrieve invoice items operationId: GetInvoiceItemCollection x-sdk-operation-name: getAllInvoiceItems description: Retrieves invoice items with a specified invoice ID. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Invoice items retrieved. content: application/json: schema: type: array items: $ref: '#/components/schemas/InvoiceItem' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoiceItems = $client->invoiceItems()->search('invoiceId', [ 'filter' => 'quantity:5', ]); - lang: JavaScript source: >- // get the top 20 invoice items for this ID const invoiceItems = await api.invoices.getAllInvoiceItems({id: 'my-invoice-id', limit: 20}); invoiceItems.items.forEach(item => console.log(item.fields.description)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $invoiceItems = $service->invoices()->getAllInvoiceItems('invoiceId'); post: x-products: - Core tags: - Invoices summary: Create an invoice item operationId: PostInvoiceItem x-sdk-operation-name: createInvoiceItem description: Creates an invoice item. requestBody: content: application/json: schema: $ref: '#/components/schemas/InvoiceItem' description: InvoiceItem resource. required: true responses: '201': description: Invoice item created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/InvoiceItem' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoiceItemForm = new Rebilly\Entities\InvoiceItem(); $invoiceItemForm->setType($invoiceItemForm::TYPE_DEBIT); $invoiceItemForm->setUnitPrice(0.99); $invoiceItemForm->setQuantity(5); try { $invoiceItem = $client->invoiceItems()->create($invoiceItemForm, 'invoiceId'); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the new invoice item const data = { type: 'debit', unitPrice: 5 }; const invoiceItem = await api.invoices.createInvoiceItem({id: 'my-second-id', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $invoiceItem = new \Rebilly\Sdk\Model\InvoiceItem(); $invoiceItemForm->setType(\Rebilly\Sdk\Model\InvoiceItem::TYPE_DEBIT); $invoiceItemForm->setUnitPrice(0.99); $invoiceItemForm->setQuantity(5); try { $invoiceItem = $service->invoices()->createInvoiceItem('invoiceId', $invoiceItem); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /invoices/{id}/items/{itemId}: parameters: - $ref: '#/components/parameters/resourceId' - name: itemId in: path description: ID of the invoice item. required: true schema: type: string get: x-products: - Core tags: - Invoices summary: Retrieve an invoice item operationId: GetInvoiceItem x-sdk-operation-name: getInvoiceItem description: Retrieves an invoice item. responses: '200': description: Invoice item retrieved. content: application/json: schema: $ref: '#/components/schemas/InvoiceItem' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoiceItems = $client->invoiceItems()->load('invoiceId'); - lang: JavaScript source: > const invoiceItem = await api.invoices.getInvoiceItem({id: 'foobar-001'}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $invoiceItem = $service->invoices()->getInvoiceItem('invoiceId', 'invoiceItemId'); put: x-products: - Core tags: - Invoices summary: Update an invoice item operationId: PutInvoiceItem x-sdk-operation-name: updateInvoiceItem description: Updates an invoice item. requestBody: content: application/json: schema: $ref: '#/components/schemas/InvoiceItem' description: Invoice item resource. required: true responses: '200': description: Invoice item updated. content: application/json: schema: $ref: '#/components/schemas/InvoiceItem' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoiceItemForm = new Rebilly\Entities\InvoiceItem(); $invoiceItemForm->setType($invoiceItemForm::TYPE_DEBIT); $invoiceItemForm->setUnitPrice(0.99); $invoiceItemForm->setQuantity(5); try { $invoiceItem = $client->invoiceItems()->update($invoiceItemForm, 'invoiceId', 'invoiceItemId'); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // first set the properties for the new invoice item const data = { type: 'debit', unitPrice: 5 }; const invoiceItem = await api.invoices.updateInvoiceItem({id: 'id', itemId: 'itemId', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $invoiceItem = \Rebilly\Sdk\Model\InvoiceItem::from([ 'type' => \Rebilly\Sdk\Model\InvoiceItem::TYPE_DEBIT, 'unitPrice' => 0.99, 'quantity' => 5, ]); try { $invoiceItem = $service->invoices()->updateInvoiceItem('invoiceId', 'invoiceItemId', $invoiceItem); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Invoices summary: Delete an invoice item operationId: DeleteInvoiceItem x-sdk-operation-name: deleteInvoiceItem description: Deletes an invoice item. responses: '204': description: Invoice item deleted. '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->invoiceItems()->delete('invoiceId', 'invoiceItemId'); - lang: JavaScript source: > const invoiceItem = await api.invoices.deleteInvoiceItem({id: 'id', itemId: 'itemId'}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $service->invoices()->deleteInvoiceItem('invoiceId', 'invoiceItemId'); /invoices/{id}/issue: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Invoices summary: Issue an invoice operationId: PostInvoiceIssuance x-sdk-operation-name: issue description: |- Issues an invoice with a specified ID. The invoice must be in `draft` status. requestBody: content: application/json: schema: $ref: '#/components/schemas/InvoiceIssue' description: Invoice issue resource. required: true responses: '201': description: Invoice issued. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $invoice = $client->invoices()->issue('invoiceId', '2025-01-01 05:00:00'); - lang: JavaScript source: >- // define the issued time const data = { issuedTime: "2017-09-19T20:46:51Z" }; // issue the invoice without an issued time const firstInvoice = await api.invoices.issue({id: 'my-first-id'}); // or include it const secondInvoice = await api.invoices.issue({id: 'my-second-id', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $invoice = $service->invoices()->issue('invoiceId', new \Rebilly\Sdk\Model\InvoiceIssue([ 'issuedTime' => '2025-01-01 05:00:00', ])); /invoices/{id}/abandon: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Invoices summary: Abandon an invoice operationId: PostInvoiceAbandonment x-sdk-operation-name: abandon description: Abandons an invoice with a specified ID. responses: '201': description: Invoice abandoned. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoice = $client->invoices()->abandon('invoiceId'); - lang: JavaScript source: >- const abandonedInvoice = await api.invoices.abandon({id: 'my-invoice-id'}); console.log(abandonedInvoice.fields.status); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $invoice = $service->invoices()->abandon('invoiceId'); /invoices/{id}/void: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Invoices summary: Void an invoice operationId: PostInvoiceVoid x-sdk-operation-name: void description: Voids an invoice with a specified ID. responses: '201': description: Invoice voided. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $invoice = $client->invoices()->void('invoiceId'); - lang: JavaScript source: >- const voidedInvoice = await api.invoices.void({id: 'my-invoice-id'}); console.log(voidedInvoice.fields.status); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $invoice = $service->invoices()->void('invoiceId'); /invoices/{id}/recalculate: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Invoices summary: Recalculate an invoice operationId: PostInvoiceRecalculation x-sdk-operation-name: recalculate description: >- 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. responses: '201': description: Invoice recalculated. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $invoice = $service->invoices()->recalculate('invoiceId'); /invoices/{id}/reissue: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Invoices summary: Reissue an invoice operationId: PostInvoiceReissuance x-sdk-operation-name: reissue description: |- Reissues an invoice with a specified ID. The status of the invoice must be `unpaid` or `past-due`. requestBody: content: application/json: schema: $ref: '#/components/schemas/InvoiceReissue' description: InvoiceReissue resource. required: true responses: '201': description: Invoice reissued. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $invoiceReissue = new \Rebilly\Sdk\Model\InvoiceReissue([ 'dueTime' => '2025-01-01 05:00:00', ]); try { $invoiceReissue = $service->invoices()->reissue('invoiceId', $invoiceReissue); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /invoices/{id}/transaction-allocations: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Invoices summary: Retrieve transaction amounts allocations operationId: GetInvoiceTransactionAllocationCollection x-sdk-operation-name: getAllTransactionAllocations description: >- Retrieves amounts from a transaction that are allocated as invoice payments. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: List of allocations retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/InvoiceTransactionAllocation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $transactionAllocations = $service->invoices()->getAllTransactionAllocations('invoiceId'); /invoices/{id}/transaction: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Invoices summary: Apply a transaction to an invoice operationId: PostInvoiceTransaction x-sdk-operation-name: applyTransaction description: >- Applies a transaction to an invoice. The invoice status must be `unpaid`, and the transaction must have a non-zero unused amount. requestBody: content: application/json: schema: $ref: '#/components/schemas/InvoiceTransaction' description: Invoice transaction resource. required: true responses: '200': description: Transaction applied to invoice. content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: | const params = { id: 'my-invoice-id', transactionId: 'my-transaction-id', amount: 12,99 }; const invoice = await api.invoices.applyTransaction(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $invoiceTransaction = new \Rebilly\Sdk\Model\InvoiceTransaction([ 'transactionId' => 'transactionId', 'amount' => 149.99, ]); try { $invoiceTransaction = $service->invoices()->applyTransaction('invoiceId', $invoiceTransaction); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /invoices/{id}/timeline: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Invoices timeline summary: Retrieve invoice timeline messages operationId: GetInvoiceTimelineCollection x-sdk-operation-name: getAllTimelineMessages description: Retrieves a list of invoice timeline messages. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of invoice timeline messages retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/InvoiceTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional except for the `id` const firstCollection = await api.invoices .getAllTimelineMessages({id: 'my-invoice'}); // alternatively you can specify one or more of them const params = {id: 'my-invoice', limit: 20, offset: 100}; const secondCollection = await api.invoices.getAllTimelineMessages(params); // access the collection items, each item is a Member secondCollection.items .forEach(message => console.log(message.fields.eventType)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $timelineMessages = $service->invoices()->getAllTimelineMessages('invoiceId', filter: 'triggeredBy:direct-api'); post: x-products: - Core tags: - Invoices timeline summary: Create an invoice timeline comment operationId: PostInvoiceTimeline x-sdk-operation-name: createTimelineComment description: Creates an invoice timeline comment. requestBody: content: application/json: schema: $ref: '#/components/schemas/InvoiceTimeline' description: Invoice Timeline resource. required: true responses: '201': description: Invoice timeline comment created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/InvoiceTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- // Create a comment const firstComment = await api .invoices.createTimelineComment({id: 'my-invoice-id', data: {message: 'Your comment here'}}); // Using params object, mentions and references const message = `Example of mentions @user@mydomain.com and references #invoice-subscription-id`; const params = { id: 'my-invoice-id', data: { message, }, }; const secondComment = await api.invoices.createTimelineComment(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $timelineMessage = new \Rebilly\Sdk\Model\InvoiceTimeline([ 'message' => 'Automatic message', ]); try { $timelineMessage = $service->invoices()->createTimelineComment('invoiceId', $timelineMessage); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /invoices/{id}/timeline/{messageId}: parameters: - $ref: '#/components/parameters/resourceId' - name: messageId in: path description: ID of the invoice timeline message. required: true schema: type: string get: x-products: - Core tags: - Invoices timeline summary: Retrieve an invoice timeline message operationId: GetInvoiceTimeline x-sdk-operation-name: getTimelineMessage description: Retrieves an invoice timeline message with a specified ID. responses: '200': description: Invoice message retrieved. content: application/json: schema: $ref: '#/components/schemas/InvoiceTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const message = await api.invoices .getTimelineMessage({id: 'foobar-001', messageId: 'message-202'}); console.log(message.fields.eventType); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $timelineMessage = $service->invoices()->getTimelineMessage('invoiceId', 'messageId'); delete: x-products: - Core tags: - Invoices timeline summary: Delete an invoice timeline message operationId: DeleteInvoiceTimeline x-sdk-operation-name: deleteTimelineMessage description: Deletes an invoice timeline message with a specified ID. responses: '204': description: Invoice timeline message deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: JavaScript source: |- const request = await api.invoices .deleteTimelineMessage({id: 'foobar-001', messageId: 'message-202'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $service->invoices()->deleteTimelineMessage('invoiceId', 'messageId'); /credit-memos: get: x-products: - Core tags: - Credit memos summary: Retrieve credit memos operationId: GetCreditMemoCollection x-sdk-operation-name: getAll security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a list of credit memos. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of credit memos retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/CreditMemo' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Credit memos summary: Create a credit memo operationId: PostCreditMemo x-sdk-operation-name: create description: Creates a credit memo. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreditMemo' responses: '201': description: Credit memo created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CreditMemo' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /credit-memos/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Credit memos summary: Retrieve a credit memo operationId: GetCreditMemo x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a credit memo with a specified ID. responses: '200': description: Credit memo retrieved. content: application/json: schema: $ref: '#/components/schemas/CreditMemo' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - Credit memos summary: Upsert a credit memo operationId: PutCreditMemo x-sdk-operation-name: update description: Creates or updates (upserts) a credit memo with a specified ID. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreditMemo' responses: '200': description: Credit memo updated. content: application/json: schema: $ref: '#/components/schemas/CreditMemo' '201': description: Credit memo created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CreditMemo' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' patch: x-products: - Core tags: - Credit memos summary: Partially update a credit memo operationId: PatchCreditMemo x-sdk-operation-name: patch description: Partially updates a credit memo with a specified ID. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchCreditMemo' responses: '200': description: Credit memo updated. content: application/json: schema: $ref: '#/components/schemas/CreditMemo' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /credit-memos/{id}/void: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Credit memos summary: Void a credit memo operationId: PostCreditMemoVoid x-sdk-operation-name: void description: Voids a credit memo with a specified ID. responses: '201': description: Credit memo voided. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CreditMemo' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /credit-memos/{id}/timeline: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Credit memos timeline summary: Retrieve credit memo timeline messages operationId: GetCreditMemoTimelineCollection x-sdk-operation-name: getAllTimelineMessages description: Retrieves a list of credit memo timeline messages. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of credit memo timeline messages retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/CreditMemoTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Credit memos timeline summary: Create a credit memo timeline message operationId: PostCreditMemoTimeline x-sdk-operation-name: createTimelineComment description: Creates a credit memo timeline message. requestBody: content: application/json: schema: $ref: '#/components/schemas/CreditMemoTimeline' description: Credit memo timeline resource. required: true responses: '201': description: Credit memo timeline message created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CreditMemoTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /credit-memos/{id}/timeline/{messageId}: parameters: - $ref: '#/components/parameters/resourceId' - name: messageId in: path description: ID of the credit memo timeline message. required: true schema: type: string get: x-products: - Core tags: - Credit memos timeline summary: Retrieve a credit memo timeline message operationId: GetCreditMemoTimeline x-sdk-operation-name: getTimelineMessage description: Retrieves a credit memo timeline message with a specified ID. responses: '200': description: Credit memo timeline message retrieved. content: application/json: schema: $ref: '#/components/schemas/CreditMemoTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Core tags: - Credit memos timeline summary: Delete a credit memo timeline message operationId: DeleteCreditMemoTimeline x-sdk-operation-name: deleteTimelineMessage description: Deletes a credit memo timeline message with a specified ID. responses: '204': description: Credit memo timeline message deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /journal-accounts: get: x-products: - Core tags: - Journal summary: Retrieve journal accounts operationId: GetJournalAccountCollection x-sdk-operation-name: getAllAccounts description: Retrieves a list of journal accounts. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of journal accounts retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/JournalAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Journal summary: Create a journal account operationId: PostJournalAccount x-sdk-operation-name: createAccount description: Creates a journal account. requestBody: content: application/json: schema: $ref: '#/components/schemas/JournalAccount' description: Journal account resource. required: true responses: '201': description: Journal account created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/JournalAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /journal-accounts/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Journal summary: Retrieve journal account operationId: GetJournalAccount x-sdk-operation-name: getAccount description: Retrieves a journal account with a specified ID. responses: '200': description: Journal account retrieved. content: application/json: schema: $ref: '#/components/schemas/JournalAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - Journal summary: Upsert a journal account operationId: PutJournalAccount x-sdk-operation-name: updateAccount description: Creates or updates (upsert) a journal account. requestBody: content: application/json: schema: $ref: '#/components/schemas/JournalAccount' description: Journal account resource. required: true responses: '200': description: Journal account updated. content: application/json: schema: $ref: '#/components/schemas/JournalAccount' '201': description: Journal account created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/JournalAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /journal-entries: get: x-products: - Core tags: - Journal summary: Retrieve journal entries operationId: GetJournalEntryCollection x-sdk-operation-name: getAllEntries description: Retrieves a list of journal entries. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of journal entries retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/JournalEntry' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Journal summary: Create a journal entry operationId: PostJournalEntry x-sdk-operation-name: createEntry description: Creates a journal entry. requestBody: content: application/json: schema: $ref: '#/components/schemas/JournalEntry' description: Journal entry resource. required: true responses: '201': description: Journal entry created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/JournalEntry' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /journal-entries/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Journal summary: Retrieve journal entry operationId: GetJournalEntry x-sdk-operation-name: getEntry description: Retrieves a journal entry with a specified ID. responses: '200': description: Journal entry retrieved. content: application/json: schema: $ref: '#/components/schemas/JournalEntry' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - Journal summary: Upsert a journal entry operationId: PutJournalEntry x-sdk-operation-name: updateEntry description: Creates or updates (upsert) a journal entry. requestBody: content: application/json: schema: $ref: '#/components/schemas/JournalEntry' description: Journal entry resource. required: true responses: '200': description: Journal entry updated. content: application/json: schema: $ref: '#/components/schemas/JournalEntry' '201': description: Journal entry created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/JournalEntry' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /journal-entries/{id}/records: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Journal summary: Retrieve journal records operationId: GetJournalRecordCollection x-sdk-operation-name: getAllRecords description: Retrieves a list of journal records. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: List of journal records retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/JournalRecord' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Journal summary: Create a journal record operationId: PostJournalRecord x-sdk-operation-name: createRecord description: Creates a journal record. requestBody: content: application/json: schema: $ref: '#/components/schemas/JournalRecord' description: Journal record resource. required: true responses: '201': description: Journal record created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/JournalRecord' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /journal-entries/{id}/records/{journalRecordId}: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/journalRecordId' get: x-products: - Core tags: - Journal summary: Retrieve journal record operationId: GetJournalRecord x-sdk-operation-name: getRecord description: Retrieves a journal record with a specified ID. responses: '200': description: Journal record retrieved. content: application/json: schema: $ref: '#/components/schemas/JournalRecord' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - Journal summary: Upsert a journal record operationId: PutJournalRecord x-sdk-operation-name: updateRecord description: Creates or updates (upsert) a journal record. requestBody: content: application/json: schema: $ref: '#/components/schemas/JournalRecord' description: Journal record resource. required: true responses: '200': description: Journal record updated. content: application/json: schema: $ref: '#/components/schemas/JournalRecord' '201': description: Journal record created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/JournalRecord' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core tags: - Journal summary: Delete a journal record operationId: DeleteJournalRecord x-sdk-operation-name: deleteRecord description: Deletes a journal record. responses: '204': description: Journal record deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /kyc-requests: post: x-products: - Core tags: - KYC documents summary: Create a KYC request operationId: PostKycRequest x-sdk-operation-name: create description: >- Creates a KYC request. The customer is redirected to the `kycGatherer` link. After the customer completes the KYC process, they are redirected back to the `redirectUrl` link. Corresponding webhooks, such as: KYC document accepted and KYC document rejected, are sent to the subscribers. When the complete list of documents is received and accepted, the KYC request fulfilled webhook is sent to subscribers. If a `credit-file-proof` request is successful, it returns a `decision` value of `single-source` or `dual-source`. The corresponding `identity-proof` and `address-proof` documents are not requested. requestBody: content: application/json: schema: $ref: '#/components/schemas/KycRequest' examples: credit-file-identity-address: summary: Credit file with fallback description: >- In the sandbox environment, to mark a `credit-file-proof` KYC document as `accepted`, pass the customer's first name to the `accept` field. If an incorrect first name is passed, the document is rejected. value: customerId: '123_456789' redirectUrl: https://example.com/return-here/ documents: - type: credit-file-proof maxAttempts: 1 - type: identity-proof - type: address-proof reason: registration identity-with-face-proof: summary: Identity with face proof value: customerId: '123_456789' redirectUrl: https://example.com/return-here/ documents: - type: identity-proof faceProofRequired: true faceLivenessRequired: false reason: registration identity-and-address: summary: Identity and address value: customerId: '123_456789' redirectUrl: https://example.com/return-here/ documents: - type: identity-proof - type: address-proof reason: registration description: KYC request resource. required: true responses: '201': description: KYC request created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/KycRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' get: x-products: - Core tags: - KYC documents summary: Retrieve KYC requests operationId: GetKycRequestCollection x-sdk-operation-name: getAll description: Retrieves a list of KYC requests. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of KYC requests retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/KycRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /kyc-requests/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - KYC documents summary: Retrieve a KYC request operationId: GetKycRequest x-sdk-operation-name: get description: Retrieves a KYC request with a specified ID. responses: '200': description: KYC request retrieved. content: application/json: schema: $ref: '#/components/schemas/KycRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' patch: x-products: - Core tags: - KYC documents summary: Update a KYC request operationId: PatchKycRequest x-sdk-operation-name: update description: Updates a KYC request with a specified ID. requestBody: $ref: '#/components/requestBodies/PatchKycRequest' description: KYC document resource. required: true responses: '200': description: KYC request updated. content: application/json: schema: $ref: '#/components/schemas/KycRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core tags: - KYC documents summary: Delete the KYC request operationId: DeleteKycRequest x-sdk-operation-name: delete description: Deletes a KYC request with a specified ID. responses: '204': description: KYC request deleted. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /kyc-documents: get: x-products: - Core tags: - KYC documents summary: Retrieve KYC documents operationId: GetKycDocumentCollection x-sdk-operation-name: getAll description: Retrieves a list of KYC documents. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: List of KYC documents retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/KycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.kycDocuments.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.kycDocuments.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(document => console.log(document.fields.documentType)); post: x-products: - Core tags: - KYC documents summary: Create a KYC document operationId: PostKycDocument x-sdk-operation-name: create description: Creates a KYC document. requestBody: content: application/json: schema: $ref: '#/components/schemas/KycDocument' description: Kyc document resource. required: true responses: '201': description: KYC document created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/KycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: |- // All fields are required const data = { fieldId: '4f6cf35x-2c4y-483z-a0a9-158621f77a21', customerId: '4f6cf35x-2c4y-483z-a0a9-158621f77a21', documentType: 'identity-proof' }; const firstKycDocument = await api.kycDocuments.create({data}); /kyc-documents/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - KYC documents summary: Retrieve a KYC document operationId: GetKycDocument x-sdk-operation-name: get description: Retrieves a KYC document with a specified ID. responses: '200': description: KYC document retrieved. content: application/json: schema: $ref: '#/components/schemas/KycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const document = await api.kycDocuments.get({id: 'foobar-001'}); console.log(document.fields.documentType); put: x-products: - Core tags: - KYC documents summary: Upsert a KYC document operationId: PutKycDocument x-sdk-operation-name: update description: Creates or updates (upserts) a KYC document with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/KycDocument' description: KYC document resource. required: true responses: '200': description: KYC document updated. content: application/json: schema: $ref: '#/components/schemas/KycDocument' '201': description: KYC document created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/KycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- // define the values to update const data = { status: 'accepted' }; const document = await api.kycDocuments.update({id: 'my-second-id', data}); /kyc-documents/{id}/acceptance: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - KYC documents summary: Accept a KYC document operationId: PostKycDocumentAcceptance x-sdk-operation-name: accept description: |- Accepts a KYC document and changes the documents `status` to `accepted`. The review time and reviewer information is also updated. > **Note:** Use this operation for manual overrides. responses: '201': description: KYC document acceptance created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/KycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- const acceptedDocument = await api.kycDocuments.accept({id: 'my-second-id'}); console.log(acceptedDocument.fields.status); /kyc-documents/{id}/matches: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - KYC documents summary: Update KYC document matches operationId: PostKycDocumentMatches x-sdk-operation-name: matches description: |- Updates the document matches of a KYC document with a specified ID. > **Note:** Use this operation for manual overrides. requestBody: content: application/json: schema: anyOf: - $ref: '#/components/schemas/KycIdentityMatches' - $ref: '#/components/schemas/KycAddressMatches' description: Kyc document resource. required: true responses: '204': description: Document matches updated. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /kyc-documents/{id}/rejection: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - KYC documents summary: Reject a KYC document operationId: PostKycDocumentRejection x-sdk-operation-name: reject description: |- Rejects a KYC document and changes the `status` to `rejected`. The review time and reviewer information is also updated. > **Note:** Use this operation for manual overrides. requestBody: content: application/json: schema: $ref: '#/components/schemas/KycDocumentRejection' description: KYC document resource. required: true responses: '201': description: KYC document rejected. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/KycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- const data = { type: 'document-expired', message: 'Document is expired' } const rejectedDocument = await api.kycDocuments.reject({id: 'my-second-id', data}); console.log(rejectedDocument.fields.rejectionReason.type); /kyc-documents/{id}/review: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - KYC documents summary: Review a KYC document operationId: PostKycDocumentReview x-sdk-operation-name: review description: >- Updates the `reviewTime` and `reviewerId` of a KYC document with a specified ID. responses: '201': description: KYC document reviewed. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/KycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- const reviewedDocument = await api.kycDocuments.review({id: 'my-second-id'}); console.log(reviewedDocument.fields.status); /kyc-documents/{id}/start-review: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - KYC documents summary: Start review of a KYC document operationId: PostKycDocumentStartReview x-sdk-operation-name: startReview description: >- Starts the review process of a KYC document with a specified ID. This operation also sets the KYC document `reviewStartTime` to the current date-time, and updates the review information. responses: '201': description: KYC document review started. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/KycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /kyc-documents/{id}/stop-review: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - KYC documents summary: Stop review of a KYC document operationId: PostKycDocumentStopReview x-sdk-operation-name: stopReview description: >- Stops the review of a KYC document with a specified ID. This operation also sets the KYC document `reviewStartTime` and the reviewer information to null. Use this operation when the reviewer must stop the review. For example, if the reviewer must take a break, or ends a shift. responses: '201': description: KYC document review stopped. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/KycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /kyc-settings: get: x-products: - Core tags: - KYC documents summary: Retrieve KYC settings operationId: GetKycSettings x-sdk-operation-name: getKycSettings description: Retrieves KYC settings. responses: '200': description: KYC settings retrieved. content: application/json: schema: $ref: '#/components/schemas/KycSettings' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - KYC documents summary: Update KYC settings operationId: PutKycSettings x-sdk-operation-name: updateKycSettings description: Updates KYC settings. requestBody: content: application/json: schema: $ref: '#/components/schemas/KycSettings' description: Settings for KYC analysis. required: true responses: '200': description: KYC settings updated. content: application/json: schema: $ref: '#/components/schemas/KycSettings' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /password-tokens: get: x-products: - Full - Core tags: - Customer authentication summary: Retrieve tokens operationId: GetPasswordTokenCollection x-sdk-operation-name: getAllResetPasswordTokens description: Retrieves a list of reset password tokens. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: List of reset password tokens retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/ResetPasswordToken' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.customerAuthentication.getAllResetPasswordTokens(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100}; const secondCollection = await api.customerAuthentication.getAllResetPasswordTokens(params); // access the collection items, each item is a Member secondCollection.items.forEach(token => console.log(token.fields.token)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $passwordTokens = $service->customerAuthentication()->getAllResetPasswordTokens(); post: x-products: - Full - Core tags: - Customer authentication summary: Create a reset password token operationId: PostPasswordToken x-sdk-operation-name: createResetPasswordToken description: Creates a reset password token. requestBody: content: application/json: schema: $ref: '#/components/schemas/ResetPasswordToken' description: ResetPasswordToken resource. required: true responses: '201': description: Reset password token created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ResetPasswordToken' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- // first set the required properties for the new credential const data = { username: 'foobar', password: 'fuubar', // the `credential` expects // the customer credential's ID credential: 'foobar-0001' // optionally you can define an `expiredTime` to // limit the duration of the reset token //expiredTime: '2017-09-18T19:17:39Z' }; const resetToken = await api.customerAuthentication.createResetPasswordToken({data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $resetPasswordTokenForm = new \Rebilly\Sdk\Model\ResetPasswordToken(); $resetPasswordTokenForm->setUsername('username'); try { $tokens = $coreService->customerAuthentication()->createResetPasswordToken($resetPasswordTokenForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /password-tokens/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Customer authentication summary: Retrieve a reset password token operationId: GetPasswordToken x-sdk-operation-name: getResetPasswordToken description: Retrieves a reset password token with a specified ID. responses: '200': description: Reset password token retrieved. content: application/json: schema: $ref: '#/components/schemas/ResetPasswordToken' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- const token = await api.customerAuthentication.getResetPasswordToken({id: 'my-first-id'}); console.log(token.fields.credential); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $passwordToken = $service->customerAuthentication()->getResetPasswordToken('tokenId'); delete: x-products: - Core tags: - Customer authentication summary: Delete a reset password token operationId: DeletePasswordToken x-sdk-operation-name: deleteResetPasswordToken description: Deletes a reset password token with a specified ID. responses: '204': description: Reset password token deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: JavaScript source: >- const request = await api.customerAuthentication.deleteResetPasswordToken({id: 'my-second-key'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $service->customerAuthentication()->deleteResetPasswordToken('tokenId'); /payment-instruments: get: x-products: - Core tags: - Payment instruments summary: Retrieve payment instruments operationId: GetPaymentInstrumentCollection x-sdk-operation-name: getAll description: Retrieves a list of payment instruments. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: List of payment instruments retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/PaymentInstrument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $paymentInstruments = $client->paymentInstruments()->search([ 'filter' => 'status:active;method:payment-card', ]); - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.paymentInstruments.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.paymentInstruments.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(paymentInstrument => console.log(paymentInstrument.fields.customerId)); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $paymentInstrumentsPaginator = $service->paymentInstruments()->getAllPaginator( filter: 'status:active;method:payment-card', limit: 5 ); foreach ($paymentInstrumentsPaginator as $paymentInstrumentsPage) { printf("Payment instruments page %d/%d\n", $paymentInstrumentsPaginator->key() + 1, $paymentInstrumentsPaginator->count()); foreach ($paymentInstrumentsPage as $paymentInstrument) { printf("Payment instrument #%s\n", $paymentInstrument->getId()); } } // OR $paymentInstruments = $service->paymentInstruments()->getAll(filter: 'status:active;method:payment-card'); foreach ($paymentInstruments as $paymentInstrument) { printf("Payment instrument #%s\n", $paymentInstrument->getId()); } post: x-products: - Core tags: - Payment instruments summary: Create a payment instrument operationId: PostPaymentInstrument x-sdk-operation-name: create description: >- Creates a payment instrument. If the payment card, bank account, or alternative payment instrument already exists it is updated. requestBody: $ref: '#/components/requestBodies/PostPaymentInstrument' responses: '201': description: Payment instrument created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/PaymentInstrument' '303': description: Payment instrument updated. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/PaymentInstrument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $paymentInstrumentForm = new Rebilly\Entities\CommonPaymentInstrument(); $paymentInstrumentForm->setCustomerId('customerId'); $paymentInstrumentForm->setPan('4111111111111111'); $paymentInstrumentForm->setExpYear(2025); $paymentInstrumentForm->setExpMonth(8); $paymentInstrumentForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $paymentInstrument = $client->paymentInstruments()->create($paymentInstrumentForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } // Alternatively you can specify a payment token $paymentInstrumentForm = new Rebilly\Entities\CommonPaymentInstrument(); $paymentInstrumentForm->setCustomerId('customerId'); $paymentInstrumentForm->setToken('payment-token'); try { $paymentInstrument = $client->paymentInstruments()->create($paymentInstrumentForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // first set the properties for the new payment card instrument const data = { method: 'payment-card', pan: '4111111111111111', expYear: 2025, expMonth: 11, cvv: '123', billingAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }] }, // the customer ID for which // we are adding a payment card instrument customerId: 'foobar-0001' }; const firstPaymentInstrument = await api.paymentInstruments.create({data}); // alternatively you can specify a payment token const tokenData = { token: 'payment-token', // the customer ID for which // we are adding a payment card instrument customerId: 'foobar-0001' }; const secondPaymentInstrument = await api.paymentInstruments.create({tokenData}); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $paymentInstrumentForm = new \Rebilly\Sdk\Model\PaymentCardCreatePlain(); $paymentInstrumentForm->setCustomerId('customerId'); $paymentInstrumentForm->setPan('4111111111111111'); $paymentInstrumentForm->setExpYear(2025); $paymentInstrumentForm->setExpMonth(8); $paymentInstrumentForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $paymentInstrument = $service->paymentInstruments()->create($paymentInstrumentForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } // Alternatively you can specify a payment token $paymentInstrumentForm = new \Rebilly\Sdk\Model\PaymentCardCreatePlain(); $paymentInstrumentForm->setCustomerId('customerId'); $paymentInstrumentForm->setToken('payment-token'); try { $paymentInstrument = $service->paymentInstruments()->create($paymentInstrumentForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /payment-instruments/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Payment instruments summary: Retrieve a payment instrument operationId: GetPaymentInstrument x-sdk-operation-name: get description: Retrieves a payment instrument with a specified ID. responses: '200': description: Payment instrument retrieved. content: application/json: schema: $ref: '#/components/schemas/PaymentInstrument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $paymentInstrument = $client->paymentInstruments()->load('paymentInstrumentId'); - lang: JavaScript source: > const paymentInstrument = await api.paymentInstruments.get({id: 'payment-instrument-id'}); console.log(paymentInstrument.fields.customerId); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $paymentInstrument = $service->paymentInstruments()->get('paymentInstrumentId'); patch: x-products: - Core tags: - Payment instruments summary: Update payment instrument operationId: PatchPaymentInstrument x-sdk-operation-name: update description: Updates the values of a payment instrument with a specified ID. requestBody: $ref: '#/components/requestBodies/PatchPaymentInstrument' responses: '200': description: Payment instrument updated. content: application/json: schema: $ref: '#/components/schemas/PaymentInstrument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $paymentInstrumentForm = new Rebilly\Entities\CommonPaymentInstrument(); $paymentInstrumentForm->setCvv('123'); $paymentInstrumentForm->setExpYear(2025); $paymentInstrumentForm->setExpMonth(12); $paymentInstrumentForm->setBillingAddress([ 'firstName' => 'John', ]); try { $paymentInstrument = $client->paymentInstruments()->update('paymentInstrumentId', $paymentInstrumentForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } // Alternatively you can specify a partial token $paymentInstrumentForm = new Rebilly\Entities\CommonPaymentInstrument(); $paymentInstrumentForm->setToken('partial-token'); $paymentInstrumentForm->setBillingAddress([ 'firstName' => 'John', ]); try { $paymentInstrument = $client->paymentInstruments()->update('paymentInstrumentId', $paymentInstrumentForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: | // payment instrument properties to be updated const data = { cvv: '123', expMonth: 12, expYear: 2025, billingAddress: { firstName: 'John' } }; api.paymentInstruments.patch({id: 'id-to-update', data}); // alternatively you can specify a partial token const tokenData = { token: 'partial-token', billingAddress: { firstName: 'John' }, customFields: { foo: 'bar' } }; api.paymentInstruments.patch({id: 'id-to-update', tokenData}); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $paymentInstrumentForm = new \Rebilly\Sdk\Model\PaymentCardUpdatePlain(); $paymentInstrumentForm->setCvv('123'); $paymentInstrumentForm->setExpYear(2025); $paymentInstrumentForm->setExpMonth(12); $paymentInstrumentForm->setBillingAddress([ 'firstName' => 'John', ]); try { $paymentInstrument = $service->paymentInstruments()->update('paymentInstrumentId', $paymentInstrumentForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } // Alternatively you can specify a partial token $paymentInstrumentForm = new \Rebilly\Sdk\Model\PaymentInstrumentUpdateToken(); $paymentInstrumentForm->setToken('partial-token'); $paymentInstrumentForm->setBillingAddress([ 'firstName' => 'John', ]); try { $paymentInstrument = $service->paymentInstruments()->update('paymentInstrumentId', $paymentInstrumentForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /payment-instruments/{id}/deactivation: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Payment instruments summary: Deactivate a payment instrument operationId: PostPaymentInstrumentDeactivation x-sdk-operation-name: deactivate description: Deactivates a payment instrument with a specified ID. responses: '201': description: Payment instrument deactivated. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/PaymentInstrument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->paymentInstruments()->deactivate('paymentInstrumentId'); - lang: JavaScript source: > const paymentInstrument = await api.paymentInstruments.deactivate({id: 'id-to-deactivate'}); console.log(paymentInstrument.fields.status); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $service->paymentInstruments()->deactivate('paymentInstrumentId'); /plans: get: x-products: - Core tags: - Plans summary: Retrieve plans operationId: GetPlanCollection x-sdk-operation-name: getAll security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a list of plans. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of plans retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Plan' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $plans = $client->plans()->search([ 'filter' => 'name:TestPlan', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.plans.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.plans.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(plan => console.log(plan.fields.name)); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $plansPaginator = $service->plans()->getAllPaginator(limit: 5); foreach ($plansPaginator as $planPage) { printf("Plans page %d/%d\n", $plansPaginator->key() + 1, $plansPaginator->count()); foreach ($planPage as $plan) { printf("Plan #%s: %s\n", $plan->getId(), $plan->getProductId()); } } // OR $plans = $service->plans()->getAll(limit: 100); foreach ($plans as $plan) { printf("Plan #%s: %s\n", $plan->getId(), $plan->getProductId()); } post: x-products: - Core tags: - Plans summary: Create a plan operationId: PostPlan x-sdk-operation-name: create description: Creates a plan. requestBody: content: application/json: schema: $ref: '#/components/schemas/Plan' description: Plan resource. required: true responses: '201': description: Plan created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Plan' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $planForm = new Rebilly\Entities\Plan(); $planForm->setName('TestPlan'); $planForm->setCurrency('USD'); $planForm->setTrialAmount(1); $planForm->setTrialPeriodUnit('day'); $planForm->setTrialPeriodLength(1); $planForm->setProductId('test-product'); try { $plan = $client->plans()->create($planForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the new plan const data = { name: 'My strongest plan', currency: 'USD', setupAmount: 12.99, // you could also include a trial if needed recurringPeriodUnit: 'month', recurringPeriodLength: 1, recurringAmount: 25.99 }; // the ID is optional const firstPlan = await api.plans.create({data}); // or you can provide one const secondPlan = await api.plans.create({id: 'my-second-key', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $plan = \Rebilly\Sdk\Model\Plan::from([]) ->setProductId('productId') ->setName('Test plan') ->setCurrency('USD') ->setPricing(new \Rebilly\Sdk\Model\PlanFormulaFlatRate(['price' => 9.99])) ->setRecurringInterval( \Rebilly\Sdk\Model\SubscriptionOrderPlanRecurringInterval::from() ->setUnit(\Rebilly\Sdk\Model\SubscriptionOrderPlanRecurringInterval::UNIT_MONTH) ->setLength(1), ); try { $plan = $service->plans()->create($plan); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /plans/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Plans summary: Retrieve a plan operationId: GetPlan x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a plan with a specified ID. responses: '200': description: Plan retrieved. content: application/json: schema: $ref: '#/components/schemas/Plan' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $plan = $client->plans()->load('planId'); - lang: JavaScript source: |- const plan = await api.plans.get({id: 'foobar-001'}); console.log(plan.fields.name); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $plan = $service->plans()->get('planId'); put: x-products: - Core tags: - Plans summary: Upsert a plan operationId: PutPlan x-sdk-operation-name: update description: Creates or updates (upserts) a plan with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/Plan' description: Plan resource. required: true responses: '200': description: Plan updated. content: application/json: schema: $ref: '#/components/schemas/Plan' '201': description: Plan created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Plan' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $planForm = new Rebilly\Entities\Plan(); $planForm->setName('TestPlan'); $planForm->setCurrency('USD'); $planForm->setTrialAmount(1); $planForm->setTrialPeriodUnit('day'); $planForm->setTrialPeriodLength(1); try { $plan = $client->plans()->update('planId', $planForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the new plan const data = { name: 'My strongest plan', currency: 'USD', setupAmount: 12.99, // you could also include a trial if needed recurringPeriodUnit: 'month', recurringPeriodLength: 1, recurringAmount: 25.99 }; // the ID is optional const firstPlan = await api.plans.create({data}); // or you can provide one const secondPlan = await api.plans.create({id: 'my-second-key', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $plan = new \Rebilly\Sdk\Model\Plan([ 'recurringInterval' => [ 'unit' => \Rebilly\Sdk\Model\SubscriptionOrderPlanRecurringInterval::UNIT_WEEK, 'length' => 2, ], ]); try { $plan = $service->plans()->update('planId', $plan); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } // OR $plan = $service->plans()->get('planId'); $plan->setRecurringInterval(new \Rebilly\Sdk\Model\SubscriptionOrderPlanRecurringInterval([ 'unit' => \Rebilly\Sdk\Model\SubscriptionOrderPlanRecurringInterval::UNIT_WEEK, 'length' => 2, ])); try { $plan = $service->plans()->update('planId', $plan); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Plans summary: Delete a plan operationId: DeletePlan x-sdk-operation-name: delete description: Deletes a plan with a specified ID. responses: '204': description: Plan deleted. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $client->plans()->delete('planId'); - lang: JavaScript source: |- const request = await api.plans.delete({id: 'my-second-key'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->plans()->delete('planId'); /products: get: x-products: - Core tags: - Products summary: Retrieve products operationId: GetProductCollection x-sdk-operation-name: getAll security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a list of products. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of products retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Product' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.products.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.products.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(product => console.log(product.fields.name)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $productsPaginator = $service->products()->getAllPaginator(limit: 5); foreach ($productsPaginator as $productPage) { printf("Products page %d/%d\n", $productsPaginator->key() + 1, $productsPaginator->count()); foreach ($productPage as $product) { printf("Product #%s: %s\n", $product->getId(), $product->getName()); } } // OR $products = $service->products()->getAll(limit: 100); foreach ($products as $product) { printf("Product #%s: %s\n", $product->getId(), $product->getName()); } post: x-products: - Core tags: - Products summary: Create a product operationId: PostProduct x-sdk-operation-name: create description: Creates a product. requestBody: $ref: '#/components/requestBodies/Product' responses: '201': description: Product created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Product' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- // first set the properties for the new product const data = { name: 'my first product', description: 'made to be of the highest quality', taxCategoryId: '', requiresShipping: true, accountingCode: '100', customFields: [] }; // the ID is optional const firstProduct = await api.products.create({data}); // or you can provide one const secondProduct = await api.products.create({id: 'my-second-key', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $product = new \Rebilly\Sdk\Model\Product([ 'name' => 'my first product', 'description' => 'made to be of the highest quality', 'taxCategoryId' => '', 'requiresShipping' => true, 'accountingCode' => '100', ]); try { $product = $service->products()->create($product); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /products/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Products summary: Retrieve a product operationId: GetProduct x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a product with a specified ID. responses: '200': description: Product retrieved. content: application/json: schema: $ref: '#/components/schemas/Product' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const product = await api.products.get({id: 'foobar-001'}); console.log(product.fields.name); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $product = $service->products()->get('productId'); put: x-products: - Core tags: - Products summary: Upsert a product operationId: PutProduct x-sdk-operation-name: update description: Creates or updates (upserts) a product with a specified ID. requestBody: $ref: '#/components/requestBodies/Product' responses: '200': description: Product updated. content: application/json: schema: $ref: '#/components/schemas/Product' '201': description: Product created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Product' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- // creating a new product const data = { name: 'my first product', description: 'made to be of the highest quality', taxCategoryId: '', requiresShipping: true, accountingCode: '100', customFields: [] }; // the ID is optional const firstProduct = await api.products.create({data}); // or you can provide one const secondProduct = await api.products.create({id: 'my-second-key', data}); // updating a product const data = { name: 'my first product', description: 'made to be of the highest quality', taxCategoryId: '20010', requiresShipping: false, accountingCode: '77', customFields: [] }; const product = await api.products.update({id: 'my-second-key', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $product = new \Rebilly\Sdk\Model\Product([ 'requiresShipping' => false, 'accountingCode' => '101', ]); try { $product = $service->products()->update('productId', $product); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } // OR $product = $service->products()->get('productId'); $product->setRequiresShipping(false) ->setAccountingCode('101'); try { $product = $service->products()->update('productId', $product); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Products summary: Delete a product operationId: DeleteProduct x-sdk-operation-name: delete description: Deletes a product with a specified ID. responses: '204': description: Product deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const request = await api.products.delete({id: 'my-second-key'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->products()->delete('productId'); /quotes: get: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Retrieve quotes operationId: GetQuoteCollection x-sdk-operation-name: getAll description: Retrieves a list of quotes. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: List of quotes retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Create a quote operationId: PostQuote x-sdk-operation-name: create description: Creates a quote. requestBody: content: application/json: schema: $ref: '#/components/schemas/Quote' required: true responses: '201': description: Quote created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /quotes/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Retrieve a quote operationId: GetQuote x-sdk-operation-name: get description: Retrieves a quote with a specified ID. parameters: - $ref: '#/components/parameters/mediaTypeJsonPdf' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Quote retrieved. content: application/json: schema: $ref: '#/components/schemas/Quote' application/pdf: schema: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Upsert a quote operationId: PutQuote x-sdk-operation-name: update description: >- Creates or updates a quote with a specified ID. The update operation can only be used for quotes with a `status` of `draft`. requestBody: content: application/json: schema: $ref: '#/components/schemas/Quote' required: true responses: '200': description: Quote updated. content: application/json: schema: $ref: '#/components/schemas/Quote' '201': description: Quote created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' patch: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Partially update a quote operationId: PatchQuote x-sdk-operation-name: patch description: >- Partially updates a quote with a specified ID. The update operation can only be used for quotes with a `status` of `draft`. requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchQuote' required: true responses: '200': description: Quote updated. content: application/json: schema: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /quotes/{id}/accept: parameters: - $ref: '#/components/parameters/resourceId' post: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Accept a quote operationId: PostQuoteAcceptance x-sdk-operation-name: accept description: Accepts an issued quote with a specified ID. responses: '200': description: Quote accepted. content: application/json: schema: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /quotes/{id}/cancel: parameters: - $ref: '#/components/parameters/resourceId' post: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Cancel a quote operationId: PostQuoteCancellation x-sdk-operation-name: cancel description: Cancels a draft or issued quote with a specified ID. responses: '200': description: Quote canceled. content: application/json: schema: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /quotes/{id}/issue: parameters: - $ref: '#/components/parameters/resourceId' post: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Issue a quote operationId: PostQuoteIssuance x-sdk-operation-name: issue description: Issues a draft quote with a specified ID. responses: '200': description: Quote issued. content: application/json: schema: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /quotes/{id}/recall: parameters: - $ref: '#/components/parameters/resourceId' post: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Recall a quote operationId: PostQuoteRecall x-sdk-operation-name: recall description: |- Recalls an issued quote with a specified ID so that it can be edited. Recalled quotes are assigned the `status` of `draft`. responses: '200': description: Quote recalled. content: application/json: schema: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /quotes/{id}/reject: parameters: - $ref: '#/components/parameters/resourceId' post: x-badges: - name: Experimental x-products: - Core tags: - Quotes summary: Reject a quote operationId: PostQuoteRejection x-sdk-operation-name: reject description: Rejects an issued quote with specified ID. responses: '200': description: Quote rejected. content: application/json: schema: $ref: '#/components/schemas/Quote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /quotes/{id}/timeline: parameters: - $ref: '#/components/parameters/resourceId' get: x-badges: - name: Experimental x-products: - Core tags: - Quotes timeline summary: Retrieve quote timeline messages operationId: GetQuoteTimelineCollection x-sdk-operation-name: getAllTimelineMessages description: Retrieves quote timeline messages. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of quote timeline messages retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/QuoteTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-badges: - name: Experimental x-products: - Core tags: - Quotes timeline summary: Create a quote timeline comment operationId: PostQuoteTimeline x-sdk-operation-name: createTimelineComment description: Creates a quote timeline comment or custom defined event. requestBody: content: application/json: schema: $ref: '#/components/schemas/QuoteTimeline' description: Quote timeline resource. required: true responses: '201': description: Quote timeline comment or custom defined event created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/QuoteTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /quotes/{id}/timeline/{messageId}: parameters: - $ref: '#/components/parameters/resourceId' - name: messageId in: path description: ID of the quote timeline message. required: true schema: type: string get: x-badges: - name: Experimental x-products: - Core tags: - Quotes timeline summary: Retrieve a quote timeline message operationId: GetQuoteTimelineMessage x-sdk-operation-name: getTimelineMessage description: Retrieves a quote timeline message with a specified ID. responses: '200': description: Quote timeline message retrieved. content: application/json: schema: $ref: '#/components/schemas/QuoteTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-badges: - name: Experimental x-products: - Core tags: - Quotes timeline summary: Delete a quote timeline message operationId: DeleteQuoteTimeline x-sdk-operation-name: deleteTimelineMessage description: Deletes a quote timeline message with a specified ID. responses: '204': description: Quote timeline message deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /ready-to-pay: post: x-products: - Core tags: - Transactions summary: Ready to pay operationId: PostReadyToPay x-sdk-operation-name: readyToPay description: >- Retrieves available payment methods for a specific transaction or purchase. The order in which the payment methods are displayed to the customer should be the same as the order in the response. The list of payment methods is generated from available gateway accounts and the last matched `adjust-ready-to-pay` action on the `ready-to-pay-requested` event. If no rules match for the specific request, all methods supported by the gateway accounts are sent. To invert this behavior, place an all matching rule at the end of the `ready-to-pay-requested` event in the rules engine, and include an empty `paymentMethods` property for the `adjust-ready-to-pay` action. For more information, see [Update event rules](https://www.rebilly.com/catalog/all/rules#operation/PutEventRule) and [Gateway accounts](https://www.rebilly.com/catalog/all/gateway-accounts). requestBody: content: application/json: schema: $ref: '#/components/schemas/PostReadyToPay' responses: '200': description: Payment methods retrieved. content: application/json: schema: type: array items: $ref: '#/components/schemas/ReadyToPayMethods' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $readyToPayForm = new Rebilly\Entities\ReadyToPay(); $readyToPayForm->setCurrency('USD'); $readyToPayForm->setAmount(10); $readyToPayForm->setWebsiteId('websiteId'); $readyToPayForm->setCustomerId('customerId'); $riskMetadata = new Rebilly\Entities\RiskMetadata(); $riskMetadata->setFingerprint('fingerprint'); $readyToPayForm->setRiskMetadata($riskMetadata); try { $transaction = $client->transactions()->create($readyToPayForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $readyToPayForm = new \Rebilly\Sdk\Model\PostReadyToPay(); $readyToPayForm->setCurrency('USD'); $readyToPayForm->setAmount(10); $readyToPayForm->setWebsiteId('websiteId'); $readyToPayForm->setCustomerId('customerId'); $riskMetadata = new \Rebilly\Sdk\Model\RiskMetadata(); $riskMetadata->setFingerprint('fingerprint'); $readyToPayForm->setRiskMetadata($riskMetadata); try { $transactions = $service->purchase()->readyToPay($readyToPayForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /search: get: x-products: - Core tags: - Search summary: Search merchant data operationId: GetSearch x-sdk-operation-name: get description: >- Searches merchant data to return resources such as customers, invoices, orders, transactions. parameters: - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - name: q in: query description: Default search. Searches across resources and fields. schema: type: string responses: '200': description: Results keyed by a resource. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Search' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /shipping-rates: get: x-products: - Core tags: - Shipping rates summary: Retrieve shipping rates operationId: GetShippingRateCollection x-sdk-operation-name: getAll description: Retrieves a list of shipping rates. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of shipping rates retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/ShippingRate' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.shippingRates.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.shippingRates.getAll(params); // access the collection items, each item is a ShippingRate secondCollection.items.forEach(shippingRate => console.log(shippingRate.fields.name)); post: x-products: - Core tags: - Shipping rates summary: Create a shipping rate operationId: PostShippingRate x-sdk-operation-name: create description: Creates a shipping rate. requestBody: content: application/json: schema: $ref: '#/components/schemas/ShippingRate' description: Shipping rate resource. required: true responses: '201': description: Shipping rate created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ShippingRate' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: > // first set the properties for the new shipping rate const data = { name: 'free shipping', filter: '', price: 0, currency: 'USD' }; // the ID is optional const firstRate = await api.shippingRates.create({data}); // or you can provide one const secondRate = await api.shippingRates.create({id: 'my-second-key', data}); /shipping-rates/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Shipping rates summary: Retrieve a shipping rate operationId: GetShippingRate x-sdk-operation-name: get description: Retrieves a shipping rate with a specified ID. responses: '200': description: Shipping rate retrieved. content: application/json: schema: $ref: '#/components/schemas/ShippingRate' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: > const shippingRate = await api.shippingRates.get({id: 'foobar-001'}); console.log(shippingRate.fields.name); put: x-products: - Core tags: - Shipping rates summary: Create a shipping rate with ID operationId: PutShippingRate x-sdk-operation-name: update description: Creates a shipping rate with a specified ID. responses: '200': description: Shipping rate updated. content: application/json: schema: $ref: '#/components/schemas/ShippingRate' '201': description: Shipping rate created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ShippingRate' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ShippingRate' description: Shipping rate resource. required: true x-codeSamples: - lang: JavaScript source: > // creating a new shipping rate const data = { name: 'free shipping', filter: '', price: 0, currency: 'USD' }; // the ID is optional const firstRate = await api.shippingRates.create({data}); // or you can provide one const secondRate = await api.shippingRates.create({id: 'my-second-key', data}); // updating a shipping rate const data = { name: 'regular shipping', filter: '', price: 9.99, currency: 'USD' }; const shippingRate = await api.shippingRates.update({id: 'my-second-key', data}); delete: x-products: - Core tags: - Shipping rates summary: Delete a shipping rate operationId: DeleteShippingRate x-sdk-operation-name: delete description: Deletes a shipping rate with a specified ID. responses: '204': description: Shipping rate deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: > const request = await api.shippingRates.delete({id: 'my-second-key'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 /subscriptions: get: x-products: - Core tags: - Orders summary: Retrieve orders operationId: GetSubscriptionCollection x-sdk-operation-name: getAll security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a list of orders. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/subscriptionExpand' responses: '200': description: List of subscriptions retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $subscriptions = $client->subscriptions()->search([ 'filter' => 'customerId:testCustomerId', ]); - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.subscriptions.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.subscriptions.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(subscription => console.log(subscription.fields.customerId)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $ordersPaginator = $service->subscriptions()->getAllPaginator(filter: 'customerId:testCustomerId'); foreach ($ordersPaginator as $orderPage) { printf("Orders page %d/%d\n", $ordersPaginator->key() + 1, $ordersPaginator->count()); foreach ($orderPage as $order) { printf("Order #%s (%s): %s\n", $order->getId(), $order->getOrderType(), $order->getStatus()); } } // OR $orders = $service->subscriptions()->getAll(filter: 'customerId:testCustomerId', limit: 10); foreach ($orders as $order) { printf("Order #%s (%s): %s\n", $order->getId(), $order->getOrderType(), $order->getStatus()); } post: x-products: - Core tags: - Orders summary: Create an order operationId: PostSubscription x-sdk-operation-name: create description: >- Creates an order. To create or update an order with a specified ID, use the [Upsert an order](../PutSubscription) operation. parameters: - $ref: '#/components/parameters/subscriptionExpand' requestBody: $ref: '#/components/requestBodies/Subscription' responses: '201': description: Order created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $subscriptionForm = new Rebilly\Entities\Subscription(); $subscriptionForm->setCustomerId('customerId'); $subscriptionForm->setWebsiteId('websiteId'); $subscriptionForm->setItems([ [ 'planId' => 'my-plan', 'quantity' => 1, ], ]); $subscriptionForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $subscription = $client->subscriptions()->create($subscriptionForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the new subscription const data = { customerId: 'foobar-0001', websiteId: 'my-main-website', items: [ { plan: { id: 'my-plan-id' }, quantity: 1 }, ], // you can append this subscription to // an existing invoice by passing its ID initialInvoiceId: 'my-existing-invoice-id', billingAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, deliveryAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, customFields: {} }; // the ID is optional const firstInvoice = await api.subscriptions.create({data}); // or you can provide one const secondInvoice = await api.subscriptions.create({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $order = \Rebilly\Sdk\Model\SubscriptionOrder::from() ->setWebsiteId('websiteId') ->setCustomerId('customerId') ->setItems([ \Rebilly\Sdk\Model\OrderItem::from() ->setPlan( \Rebilly\Sdk\Model\OrderItemPlan::from() ->setId('planId') ) ->setQuantity(1), ]); try { $order = $service->subscriptions()->create($order); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /subscriptions/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Orders summary: Retrieve an order operationId: GetSubscription x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] parameters: - $ref: '#/components/parameters/subscriptionExpand' description: Retrieves an order with a specified ID. responses: '200': description: Order retrieved. content: application/json: schema: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $subscription = $client->subscriptions()->load('subscriptionId'); - lang: JavaScript source: >- const subscription = await api.subscriptions.get({id: 'foobar-001'}); console.log(subscription.fields.billingAddress.firstName); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $order = $service->subscriptions()->get('orderId'); put: x-products: - Core tags: - Orders summary: Upsert an order operationId: PutSubscription x-sdk-operation-name: update description: Creates or updates (upserts) an order with a specified ID. parameters: - $ref: '#/components/parameters/subscriptionExpand' requestBody: $ref: '#/components/requestBodies/Subscription' responses: '200': description: Order updated. content: application/json: schema: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' '201': description: Order created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $subscriptionForm = new Rebilly\Entities\Subscription(); $subscriptionForm->setCustomerId('customerId'); $subscriptionForm->setWebsiteId('websiteId'); $subscriptionForm->setItems($subscriptionForm->createItems([ [ 'planId' => 'my-plan', 'quantity' => 1, ], ])); $subscriptionForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); try { $subscription = $client->subscriptions()->update('subscriptionId', $subscriptionForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // creating a subscription const data = { customerId: 'foobar-0001', websiteId: 'my-main-website', items: [ { plan: { id: 'my-plan-id' }, quantity: 1 }, ], // you can append this subscription to // an existing invoice by passing its ID initialInvoiceId: 'my-existing-invoice-id', billingAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, deliveryAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }], }, customFields: {} }; // the ID is optional const firstInvoice = await api.subscriptions.create({data}); // or you can provide one const secondInvoice = await api.subscriptions.create({id: 'my-second-id', data}); // updating a subscription const data = { // determines if a payment attempt will be automatic autopay: false, // set the next renewal time renewalTime: '2018-09-26T15:34:29Z' }; const subscription = await api.subscriptions.update({id: 'my-second-id', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $order = new \Rebilly\Sdk\Model\SubscriptionOrder([ 'shipping' => new \Rebilly\Sdk\Model\ManualShipping([ 'amount' => 14.99, ]), ]); try { $order = $service->subscriptions()->update('orderId', $order); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } // OR $order = $service->subscriptions()->get('orderId'); $order->setShipping(new \Rebilly\Sdk\Model\ManualShipping(['amount' => 14.99])); try { $order = $service->subscriptions()->update('orderId', $order); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Orders summary: Delete a pending order operationId: DeleteSubscription x-sdk-operation-name: delete description: Deletes a pending order with a specified ID. responses: '204': description: Pending order deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->subscriptions()->delete('orderId'); /subscriptions/{id}/void: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Orders summary: Void a subscription order operationId: PostSubscriptionVoid x-sdk-operation-name: void description: Voids a pending order with a specified ID. responses: '201': description: Order voided. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $subscription = $client->subscriptions()->void('subscriptionId'); - lang: JavaScript source: > const voidedSubscription = await api.subscriptions.void({id: 'my-subscription-id'}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $order = $service->subscriptions()->void('orderId'); /subscriptions/{id}/change-items: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Orders summary: Change subscription order items operationId: PostSubscriptionItemsChange x-sdk-operation-name: changeItems parameters: - $ref: '#/components/parameters/subscriptionExpand' description: >- Changes subscription order items or quantities, and designates if or when pro-rata credits should be given. requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriptionChange' description: Change items request. required: true responses: '201': description: Order changed. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/SubscriptionOrOneTimeSale' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /subscriptions/{id}/items/{itemId}: parameters: - $ref: '#/components/parameters/resourceId' - name: itemId in: path description: ID of subscription item. required: true schema: type: string patch: x-badges: - name: Experimental x-products: - Core tags: - Orders summary: Update a subscription order item operationId: PatchSubscriptionItem x-sdk-operation-name: updateItem description: >- Updates a subscription order item. This is an experimental endpoint, can be changed or removed in the future. requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriptionItemUpdate' description: Update item request. required: true responses: '200': description: Order item updated. content: application/json: schema: $ref: '#/components/schemas/SubscriptionOrOneTimeSaleItem' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /subscriptions/{id}/interim-invoice: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Orders summary: Issue an interim invoice operationId: PostSubscriptionInterimInvoice x-sdk-operation-name: createInterimInvoice description: |- Issues an interim invoice for a subscription order. Use this operation for plan changes and pro rata adjustments. This process: - Creates an invoice. - Adds the subscription line items to the invoice. - Issues the invoice. - Optionally, applies payment to the invoice if a `transactionId` is supplied. requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriptionInvoice' description: Issue an interim invoice. required: true responses: '201': description: Invoice created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Invoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /subscription-pauses: get: x-products: - Core tags: - Orders summary: Retrieve subscription order pauses operationId: GetSubscriptionPauseCollection x-sdk-operation-name: getAll description: Retrieves a list of subscription order pauses. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of subscription order pauses retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/SubscriptionPause' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Orders summary: Pause a subscription order operationId: PostSubscriptionPause x-sdk-operation-name: pause description: Pauses a subscription order with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriptionPause' description: Pause resource. required: true responses: '201': description: Pause created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/SubscriptionPause' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /subscription-pauses/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Orders summary: Retrieve a subscription order pause operationId: GetSubscriptionPause x-sdk-operation-name: get description: Retrieves a subscription order pause with a specified ID. responses: '200': description: Pause retrieved. content: application/json: schema: $ref: '#/components/schemas/SubscriptionPause' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - Orders summary: Update a subscription order pause operationId: PutSubscriptionPause x-sdk-operation-name: update description: Updates a subscription order pause. requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriptionPause' responses: '200': description: Pause updated. content: application/json: schema: $ref: '#/components/schemas/SubscriptionPause' '201': description: Pause created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/SubscriptionPause' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core tags: - Orders summary: Delete a subscription order pause operationId: DeleteSubscriptionPause x-sdk-operation-name: delete description: |- Deletes a subscription order pause with a specified ID. If the specified pause is `pending`, it is `revoked`. If the specified pause is `ongoing`, it is `finished`. responses: '204': description: Subscription order pause revoked or finished. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /subscription-cancellations: get: x-products: - Core tags: - Orders summary: Retrieve subscription order cancellations operationId: GetSubscriptionCancellationCollection x-sdk-operation-name: getAll description: Retrieves a list of subscription order cancellations. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of cancelled subscription orders retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/SubscriptionCancellation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $cancellationsPaginator = $service->subscriptionCancellations()->getAllPaginator( filter: 'reason:' . \Rebilly\Sdk\Model\SubscriptionCancellation::REASON_CONTRACT_EXPIRED, ); foreach ($cancellationsPaginator as $cancellationPage) { printf("Cancellations page %d/%d\n", $cancellationsPaginator->key() + 1, $cancellationsPaginator->count()); foreach ($cancellationPage as $cancellation) { printf( "Cancellation #%s (%s): %s\n", $cancellation->getId(), $cancellation->getStatus(), $cancellation->getSubscriptionId(), ); } } // OR $cancellations = $service->subscriptionCancellations()->getAll( filter: 'reason:' . \Rebilly\Sdk\Model\SubscriptionCancellation::REASON_CONTRACT_EXPIRED, limit: 10, ); foreach ($cancellations as $cancellation) { printf( "Cancellation #%s (%s): %s\n", $cancellation->getId(), $cancellation->getStatus(), $cancellation->getSubscriptionId(), ); } post: x-products: - Core tags: - Orders summary: Cancel a subscription order operationId: PostSubscriptionCancellation x-sdk-operation-name: create description: Cancels a subscription order. requestBody: $ref: '#/components/requestBodies/SubscriptionCancellation' responses: '201': description: Cancellation created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/SubscriptionCancellation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $subscriptionCancellationForm = new Rebilly\Entities\SubscriptionCancellation(); $subscriptionCancellationForm->setSubscriptionId('subscription-1'); $subscriptionCancellationForm->setChurnTime(date('c')); try { $subscription = $client->subscriptionCancellations()->create($subscriptionCancellationForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > const data = { subscriptionId: 'sub_01HRF27SATGE4Z6PBJE6PD8328', churnTime: '2020-06-10T13:55:51Z', } // the ID is optional const firstSubscriptionCancellation = await api.subscriptionCancellations.create({data}); // or you can provide one const secondSubscriptionCancellation = await api.subscriptionCancellations.create({id: 'custom-cancellation-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $cancellation = new \Rebilly\Sdk\Model\SubscriptionCancellation([ 'subscriptionId' => 'subscriptionId', 'churnTime' => new \DateTimeImmutable(), 'canceledBy' => \Rebilly\Sdk\Model\SubscriptionCancellation::CANCELED_BY_MERCHANT, 'reason' => \Rebilly\Sdk\Model\SubscriptionCancellation::REASON_CONTRACT_EXPIRED, ]); try { $cancellation = $service->subscriptionCancellations()->create($cancellation); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /subscription-cancellations/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Orders summary: Retrieve a subscription order cancellation operationId: GetSubscriptionCancellation x-sdk-operation-name: get description: Retrieves a subscription order cancellation with a specified ID. responses: '200': description: Subscription order cancellation retrieved. content: application/json: schema: $ref: '#/components/schemas/SubscriptionCancellation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $cancellation = $service->subscriptionCancellations()->get('cancellationId'); put: x-products: - Core tags: - Orders summary: Upsert a subscription order cancellation operationId: PutSubscriptionCancellation x-sdk-operation-name: update description: >- Creates or updates (upserts) a subscription order cancellation with a specified ID. requestBody: $ref: '#/components/requestBodies/SubscriptionCancellation' responses: '200': description: Cancellation updated. content: application/json: schema: $ref: '#/components/schemas/SubscriptionCancellation' '201': description: Cancellation created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/SubscriptionCancellation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: > const data = { subscriptionId: 'sub_01HRF27SATGE4Z6PBJE6PD8328', churnTime: '2020-06-10T13:55:51Z', } // the ID is optional const firstSubscriptionCancellation = await api.subscriptionCancellations.create({data}); // or you can provide one const secondSubscriptionCancellation = await api.subscriptionCancellations.create({id: 'custom-cancellation-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $cancellation = new \Rebilly\Sdk\Model\SubscriptionCancellation([ 'subscriptionId' => 'subscriptionId', 'churnTime' => new \DateTimeImmutable(), 'canceledBy' => \Rebilly\Sdk\Model\SubscriptionCancellation::CANCELED_BY_MERCHANT, 'reason' => \Rebilly\Sdk\Model\SubscriptionCancellation::REASON_CONTRACT_EXPIRED, ]); try { $cancellation = $service->subscriptionCancellations()->update('cancellationId', $cancellation); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } patch: x-products: - Core tags: - Orders summary: Update a subscription order cancellation operationId: PatchSubscriptionCancellation x-sdk-operation-name: patch description: |- Updates a subscription order cancellation with a specified ID. Use this operation to update a cancellation reason and description. requestBody: content: application/json: schema: allOf: - properties: canceledBy: readOnly: true status: readOnly: true - $ref: '#/components/schemas/SubscriptionCancellation' description: Patch cancellation resource. required: true responses: '200': description: Cancellation updated. content: application/json: schema: $ref: '#/components/schemas/SubscriptionCancellation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $cancellation = new \Rebilly\Sdk\Model\PatchSubscriptionCancellationRequest([ 'reason' => \Rebilly\Sdk\Model\PatchSubscriptionCancellationRequest::REASON_CONTRACT_EXPIRED, ]); try { $cancellation = $service->subscriptionCancellations()->patch('cancellationId', $cancellation); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Core tags: - Orders summary: Delete a subscription order cancellation operationId: DeleteSubscriptionCancellation x-sdk-operation-name: delete description: >- Deletes a subscription order cancellation with a specified ID. > **Important:** Only subscription order cancellations with a `status` of `draft` can be deleted. responses: '204': description: Subscription order cancellation deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $service->subscriptionCancellations()->delete('cancellationId'); /subscription-reactivations: get: x-products: - Core tags: - Orders summary: Retrieve subscription order reactivations operationId: GetSubscriptionReactivationCollection x-sdk-operation-name: getAll description: Retrieves a list of subscription order reactivations. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of subscription order reactivations retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/SubscriptionReactivation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.subscriptionReactivations.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.subscriptionReactivations.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(subscription => console.log(subscription.fields.customerId)); post: x-products: - Core tags: - Orders summary: Reactivate a subscription order operationId: PostSubscriptionReactivation x-sdk-operation-name: reactivate description: Reactivates a subscription order with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/SubscriptionReactivation' description: Reactivation resource. required: true responses: '201': description: >- Reactivation created. The order is now active. If the order had a related cancellation with a `status` of `confirmed`, it is revoked. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/SubscriptionReactivation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: > const data = { subscriptionId: 'sub_01HRF27SATGE4Z6PBJE6PD8328', description: 'reactivation-reason', effectiveTime: '2020-06-10T13:55:51Z', renewalTime: '2020-07-10T13:55:51Z' }; const reactivatedSubscription = await api.subscriptionReactivations.reactivate({data}); /subscription-reactivations/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Orders summary: Retrieve a subscription order reactivation operationId: GetSubscriptionReactivation x-sdk-operation-name: get description: Retrieves a subscription order reactivation with a specified ID. responses: '200': description: Reactivation retrieved. content: application/json: schema: $ref: '#/components/schemas/SubscriptionReactivation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: > const subscription = await api.subscriptionReactivations.get({id: 'foobar-001'}); console.log(subscription.fields.description); /subscriptions/{id}/upcoming-invoices: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Orders summary: Retrieve upcoming subscription order invoice operationId: GetSubscriptionUpcomingInvoiceCollection x-sdk-operation-name: getAllUpcomingInvoices description: >- Retrieves an upcoming invoice for a specified subscription order. This endpoint is deprecated. Use [Retrieve an upcoming invoice](../GetSubscriptionUpcomingInvoice) instead. parameters: - $ref: '#/components/parameters/collectionExpand' deprecated: true responses: '200': description: Upcoming invoices retrieved. content: application/json: schema: type: array items: $ref: '#/components/schemas/UpcomingInvoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /subscriptions/{id}/upcoming-invoice: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Orders summary: Retrieve an upcoming subscription order invoice operationId: GetSubscriptionUpcomingInvoice x-sdk-operation-name: getUpcomingInvoice description: >- Retrieves an upcoming invoice for a specified subscription order. An upcoming invoice is an invoice that has not been issued. It functions as a preview of the next invoice for the order. For more information, see [Invoices](https://www.rebilly.com/docs/dev-docs/invoices/). parameters: - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Upcoming invoice retrieved. content: application/json: schema: $ref: '#/components/schemas/UpcomingInvoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /subscriptions/{id}/upcoming-invoice/issue: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Orders summary: Issue an upcoming invoice for early pay operationId: PostSubscriptionUpcomingInvoiceIssuance x-sdk-operation-name: issueEarlyUpcomingInvoice description: >- Issues an upcoming invoice, for a subscription order with a specified ID, for early pay. requestBody: content: application/json: schema: $ref: '#/components/schemas/InvoiceIssue' description: InvoiceIssue resource. required: true responses: '201': description: Upcoming invoice issued. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/UpcomingInvoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /subscriptions/{id}/upcoming-invoices/{invoiceId}/issue: parameters: - $ref: '#/components/parameters/resourceId' - name: invoiceId in: path description: ID of the upcoming invoice. required: true schema: type: string post: x-products: - Core tags: - Orders summary: Issue a specific upcoming invoice for early pay operationId: PostUpcomingInvoiceIssuance x-sdk-operation-name: issueUpcomingInvoice deprecated: true description: >- Issues an upcoming invoice with a specified ID for early pay. This endpoint is deprecated. Use [Issue an upcoming invoice for early pay](../PostSubscriptionUpcomingInvoiceIssuance) instead. requestBody: content: application/json: schema: $ref: '#/components/schemas/InvoiceIssue' description: InvoiceIssue resource. required: true responses: '201': description: Upcoming invoice issued. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/UpcomingInvoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /subscriptions/{id}/timeline: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Orders timeline summary: Retrieve order timeline messages operationId: GetSubscriptionTimelineCollection x-sdk-operation-name: getAllTimelineMessages description: Retrieves a list of order timeline messages. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of order timeline messages retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/OrderTimeline' '401': $ref: '#/components/responses/Unauthorized' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional except for the `id` const firstCollection = await api.subscriptions .getAllTimelineMessages({id: 'my-transaction'}); // alternatively you can specify one or more of them const params = {id: 'my-transaction', limit: 20, offset: 100}; const secondCollection = await api.subscriptions.getAllTimelineMessages(params); // access the collection items, each item is a Member secondCollection.items .forEach(message => console.log(message.fields.eventType)); post: x-products: - Core tags: - Orders timeline summary: Create an order timeline comment operationId: PostSubscriptionTimeline x-sdk-operation-name: createTimelineComment description: Creates an order timeline comment. requestBody: content: application/json: schema: $ref: '#/components/schemas/OrderTimeline' description: Order Timeline resource. required: true responses: '201': description: Order timeline comment created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/OrderTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- // Create a comment const firstComment = await api .subscriptions.createTimelineComment({id: 'my-subscription-id', data: {message: 'Your comment here'}}); // Using params object, mentions and references const message = `Example of mentions @user@mydomain.com and references #subscriptions-subscription-id`; const params = { id: 'my-subscription-id', data: { message, }, }; const secondComment = await api.subscriptions.createTimelineComment(params); /subscriptions/{id}/timeline/{messageId}: parameters: - $ref: '#/components/parameters/resourceId' - name: messageId in: path description: ID of the order timeline message. required: true schema: type: string get: x-products: - Core tags: - Orders timeline summary: Retrieve an order timeline message operationId: GetSubscriptionTimeline x-sdk-operation-name: getTimelineMessage description: Retrieves a order message with a specified ID. responses: '200': description: Order timeline message retrieved. content: application/json: schema: $ref: '#/components/schemas/OrderTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const message = await api.subscriptions .getTimelineMessage({id: 'foobar-001', messageId: 'message-202'}); console.log(message.fields.eventType); delete: x-products: - Core tags: - Orders timeline summary: Delete an order timeline message operationId: DeleteSubscriptionTimeline x-sdk-operation-name: deleteTimelineMessage description: Deletes an order timeline message with a specified ID. responses: '204': description: Order timeline message deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: JavaScript source: |- const request = await api.subscriptions .deleteTimelineMessage({id: 'foobar-001', messageId: 'message-202'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 /usages: get: x-products: - Core tags: - Usage summary: Retrieve usage records operationId: GetUsageCollection x-sdk-operation-name: getAll description: Retrieves a list of usage records. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of usage records retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Usage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Usage summary: Create a usage record operationId: PostUsage x-sdk-operation-name: create description: Creates a usage report. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Usage' responses: '201': description: Usage record created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Usage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /usages/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Usage summary: Retrieve a usage record operationId: GetUsage x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] description: Retrieves a usage record with a specified ID. responses: '200': description: Usage record retrieved. content: application/json: schema: $ref: '#/components/schemas/Usage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - Usage summary: Upsert a usage record operationId: PutUsage x-sdk-operation-name: update description: Creates or updates a usage record with a specified ID. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Usage' responses: '200': description: Usage record updated. content: application/json: schema: $ref: '#/components/schemas/Usage' '201': description: Usage record created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Usage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core tags: - Usage summary: Delete a usage record operationId: DeleteUsage x-sdk-operation-name: delete description: Deletes a usage record with a specified ID. responses: '204': description: Usage record deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /tags: get: x-products: - Core tags: - Tags summary: Retrieve tags operationId: GetTagCollection x-sdk-operation-name: getAll description: Retrieves a list of tags. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of tags retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Tag' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $tagsPaginator = $service->tags()->getAllPaginator(limit: 5); foreach ($tagsPaginator as $tagPage) { printf("Tags page %d/%d\n", $tagsPaginator->key() + 1, $tagsPaginator->count()); foreach ($tagPage as $tag) { printf("Tag #%s: %s\n", $tag->getId(), $tag->getName()); } } // OR $tags = $service->tags()->getAll(); foreach ($tags as $tag) { printf("Tag #%s: %s\n", $tag->getId(), $tag->getName()); } post: x-products: - Core tags: - Tags summary: Create a tag operationId: PostTag x-sdk-operation-name: create description: Creates a tag. requestBody: $ref: '#/components/requestBodies/Tag' responses: '201': description: Tag created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Tag' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $tagForm = new \Rebilly\Sdk\Model\Tag(); $tagForm->setName('tag-name'); $tagForm->setType(\Rebilly\Sdk\Model\Tag::TYPE_CUSTOMER); try { $service->tags()->create($tagForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /tags/{tag}: parameters: - $ref: '#/components/parameters/tag' get: x-products: - Core tags: - Tags summary: Retrieve a tag operationId: GetTag x-sdk-operation-name: get description: Retrieves a tag with a specified name. responses: '200': description: Tag with a specified name retrieved. content: application/json: schema: $ref: '#/components/schemas/Tag' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' patch: x-products: - Core tags: - Tags summary: Update a tag operationId: PatchTag x-sdk-operation-name: update description: Updates a tag with a specified name. requestBody: $ref: '#/components/requestBodies/UpdateTag' responses: '200': description: Tag updated. content: application/json: schema: $ref: '#/components/schemas/Tag' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core tags: - Tags summary: Delete a tag operationId: DeleteTag x-sdk-operation-name: delete description: |- Deletes a tag with a specified name. This is an asynchronous operation. responses: '204': description: Tag deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /tags/{tag}/customers: parameters: - $ref: '#/components/parameters/tag' post: x-products: - Core tags: - Tags summary: Tag a list of customers operationId: PostTagCustomerCollection x-sdk-operation-name: tagCustomers description: >- 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. requestBody: required: true content: application/json: schema: type: object required: - customerIds properties: customerIds: description: List of customer IDs. type: array minItems: 1 maxItems: 1000 items: type: string responses: '204': description: Customers tagging process has been scheduled. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core tags: - Tags summary: Untag a list of customers operationId: DeleteTagCustomerCollection x-sdk-operation-name: untagCustomers description: >- 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. requestBody: required: true content: application/json: schema: type: object required: - customerIds properties: customerIds: description: List of customer IDs. type: array minItems: 1 maxItems: 1000 items: type: string responses: '204': description: Customers untagging process has been scheduled. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /tags/{tag}/customers/{customerId}: parameters: - $ref: '#/components/parameters/tag' - $ref: '#/components/parameters/customerId' post: x-products: - Core tags: - Tags summary: Tag a customer operationId: PostTagCustomer x-sdk-operation-name: tagCustomer description: Tags a customer. responses: '204': description: Customer tagged. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Core tags: - Tags summary: Untag a customer operationId: DeleteTagCustomer x-sdk-operation-name: untagCustomer description: Untags a customer. responses: '204': description: Customer untagged. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /tags/{tag}/kyc-documents: parameters: - $ref: '#/components/parameters/tag' post: x-products: - Core tags: - Tags summary: Tag a list of KYC documents operationId: PostTagKycDocumentCollection x-sdk-operation-name: tagKycDocuments description: >- 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. requestBody: required: true content: application/json: schema: type: object required: - kycDocumentIds properties: kycDocumentIds: description: List of KYC document IDs. type: array minItems: 1 maxItems: 1000 items: type: string example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8 responses: '204': description: KYC documents tagging process has been scheduled. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core tags: - Tags summary: Untag a list of KYC documents operationId: DeleteTagKycDocumentCollection x-sdk-operation-name: untagKycDocuments description: >- 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. requestBody: required: true content: application/json: schema: type: object required: - kycDocumentIds properties: kycDocumentIds: description: List of KYC document IDs. type: array minItems: 1 maxItems: 1000 items: type: string example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8 responses: '204': description: KYC documents untagging process has been scheduled. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /tags/{tag}/kyc-documents/{kycDocumentId}: parameters: - $ref: '#/components/parameters/tag' - $ref: '#/components/parameters/kycDocumentId' post: x-products: - Core tags: - Tags summary: Tag a KYC document operationId: PostTagKycDocument x-sdk-operation-name: tagKycDocument description: Tags a KYC document. responses: '204': description: KYC document tagged. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Core tags: - Tags summary: Untag a KYC document operationId: DeleteTagKycDocument x-sdk-operation-name: untagKycDocument description: Untags a KYC document. responses: '204': description: KYC document untagged. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /tags/{tag}/aml-checks: parameters: - $ref: '#/components/parameters/tag' post: x-products: - Core tags: - Tags summary: Tag a list of AML checks operationId: PostTagAmlCheckCollection x-sdk-operation-name: tagAmlChecks description: >- 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. requestBody: required: true content: application/json: schema: type: object required: - amlCheckIds properties: amlCheckIds: description: List of AML check IDs to tag. type: array minItems: 1 maxItems: 1000 items: type: string example: aml_chk_0YV7JHY705C6DA487BFTAA33V8 responses: '204': description: AML checks tagging process has been scheduled. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core tags: - Tags summary: Untag a list of AML checks operationId: DeleteTagAmlCheckCollection x-sdk-operation-name: untagAmlChecks description: >- 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. requestBody: required: true content: application/json: schema: type: object required: - amlCheckIds properties: amlCheckIds: description: List of AML check IDs to tag. type: array minItems: 1 maxItems: 1000 items: type: string example: aml_chk_0YV7JHY705C6DA487BFTAA33V8 responses: '204': description: AML checks untagging process has been scheduled. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /tags/{tag}/aml-checks/{amlCheckId}: parameters: - $ref: '#/components/parameters/tag' - name: amlCheckId in: path description: ID of the AML check to tag. required: true schema: type: string post: x-products: - Core tags: - Tags summary: Tag an AML check operationId: PostTagAmlCheck x-sdk-operation-name: tagAmlCheck description: >- Tags an AML check. If an AML check in the list does not have the specified tag applied, the AML check is ignored. responses: '204': description: AML check tagged. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Core tags: - Tags summary: Untag an AML check operationId: DeleteTagAmlCheck x-sdk-operation-name: untagAmlCheck description: >- Untags an AML check. If an AML check in the list does not have the specified tag applied, the AML check is ignored. responses: '204': description: AML check untagged. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /tokens: post: x-products: - Core tags: - Payment tokens summary: Create a payment token operationId: PostToken x-sdk-operation-name: create description: >- Creates a payment token which can be exchanged into a payment instrument. [FramePay](https://docs.rebilly.com/docs/developer-docs/framepay/) is the recommended way to create a payment token because it minimizes PCI DSS compliance. Once a payment token is created, it can only be used once. A payment token expires upon first use or within 30 minutes of the token creation, whichever comes first. requestBody: content: application/json: schema: $ref: '#/components/schemas/CompositeToken' description: Payment token resource. required: true security: - PublishableApiKey: [] - SecretApiKey: [] - JWT: [] responses: '201': description: Token created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CompositeToken' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $paymentCardTokenForm = new Rebilly\Entities\PaymentCardToken(); $paymentCardTokenForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); $paymentInstrumentForm = new Entities\PaymentInstruments\PaymentCardPaymentInstrument(); $paymentInstrumentForm->setPan('4111111111111111'); $paymentInstrumentForm->setExpYear(2025); $paymentInstrumentForm->setExpMonth(8); $paymentInstrumentForm->setCvv(123); $paymentCardTokenForm->setPaymentInstrument($paymentInstrumentForm); try { $paymentCardToken = $client->paymentCardTokens()->create($paymentCardTokenForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: | // first set the properties for the new payment token const data = { method: 'payment-card', paymentInstrument: { pan: '4111111111111111', expYear: 2022, expMonth: 12, cvv: '123' }, billingAddress: { firstName: 'Johnny', lastName: 'Brown', emails: [{ label: 'main', value: 'johnny+test@grr.la', primary: true }] } }; const token = await api.paymentTokens.create({data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $paymentCardTokenForm = new \Rebilly\Sdk\Model\PaymentCardToken(); $paymentCardTokenForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], ]); $paymentInstrumentForm = new \Rebilly\Sdk\Model\PaymentCardTokenPaymentInstrument(); $paymentInstrumentForm->setPan('4111111111111111'); $paymentInstrumentForm->setExpYear(2025); $paymentInstrumentForm->setExpMonth(8); $paymentInstrumentForm->setCvv('123'); $paymentCardTokenForm->setPaymentInstrument($paymentInstrumentForm); try { $paymentCardToken = $service->paymentTokens()->create($paymentCardTokenForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } get: x-products: - Core tags: - Payment tokens summary: Retrieve tokens operationId: GetTokenCollection x-sdk-operation-name: getAll description: Retrieve a list of tokens. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: List of tokens retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/CompositeToken' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $paymentCardTokens = $client->paymentCardTokens()->search([ 'filter' => 'token:string', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.paymentTokens.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100}; const secondCollection = await api.paymentTokens.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(paymentToken => console.log(paymentToken.fields.id)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $paymentCardTokensPaginator = $service->paymentTokens()->getAllPaginator(limit: 5); foreach ($paymentCardTokensPaginator as $paymentCardTokensPage) { printf("Payment card tokens page %d/%d\n", $paymentCardTokensPaginator->key() + 1, $paymentCardTokensPaginator->count()); foreach ($paymentCardTokensPage as $paymentCardToken) { printf("Payment card token #%s\n", $paymentCardToken->getId()); } } // OR $paymentCardTokens = $service->paymentTokens()->getAll(); foreach ($paymentCardTokens as $paymentCardToken) { printf("Payment card token #%s\n", $paymentCardToken->getId()); } /tokens/{token}: parameters: - name: token in: path description: ID of the token. required: true schema: type: string get: x-products: - Core tags: - Payment tokens summary: Retrieve a token operationId: GetToken x-sdk-operation-name: get description: Retrieves a token with a specified ID. security: - PublishableApiKey: [] responses: '200': description: Token retrieved. content: application/json: schema: $ref: '#/components/schemas/CompositeToken' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $paymentCardToken = $client->paymentCardTokens()->load('tokenId'); - lang: JavaScript source: >- const paymentToken = await api.paymentTokens.get({id: 'foobar-001'}); console.log(paymentToken.fields.method); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $paymentCardToken = $service->paymentTokens()->get('tokenId'); /digital-wallets/validation: post: x-products: - Core tags: - Payment tokens summary: Validate a digital wallet session operationId: PostDigitalWalletValidation x-sdk-operation-name: validate description: >- Validates a digital wallet session. We recommend using [FramePay](https://docs.rebilly.com/docs/developer-docs/framepay/) to validate a digital wallet session. requestBody: content: application/json: schema: $ref: '#/components/schemas/DigitalWalletValidation' description: Digital wallet validation request. required: true security: - PublishableApiKey: [] - SecretApiKey: [] - JWT: [] responses: '201': description: Digital wallet validation complete. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/DigitalWalletValidation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /transactions: post: x-products: - Core tags: - Transactions summary: Create a transaction operationId: PostTransaction x-sdk-operation-name: create security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: >- Creates a transaction of type `sale`, `authorize` or `setup`. Use this operation for the following transactions. #### Real-time decision and response In this transaction, you send a request and inspect the `result` of the response for `approved` or `declined`. #### User approval/interaction required In this transaction, user approval is required to complete the transaction. User approval generally requires the user to interact with a third party, and is common in many transactions for alternative methods. For example, PayPal requires user permission to complete a payment or to accept a billing agreement. Payment cards may also require user approval for 3D secure authentication. If approval is required, you receive a response with a `result` value of `unknown` and a `status` value of `waiting-approval`. The `_links` property of the response has a link for the `approvalUrl`. Open the `approvalUrl` in an iframe or in a pop. A pop is a better workflow for mobile devices. parameters: - $ref: '#/components/parameters/collectionExpand' requestBody: $ref: '#/components/requestBodies/TransactionRequest' responses: '201': description: Transaction created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Transaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $transactionForm = new Rebilly\Entities\Transaction(); $transactionForm->setType('sale'); $transactionForm->setCustomerId('customerId'); $transactionForm->setWebsiteId('websiteId'); $transactionForm->setCurrency('USD'); $transactionForm->setAmount(1); $paymentInstruction = new Rebilly\Entities\Transactions\PaymentInstructions\PaymentTokenInstruction(); $paymentInstruction->setToken('payment-token'); $transactionForm->setPaymentInstruction($paymentInstruction); $transactionForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], 'dob' => '2000-06-01', ]); try { $transaction = $client->transactions()->create($transactionForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: | // first set the properties for the new transaction const data = { customerId: 'foobar-0001', type: 'sale', websiteId: 'my-main-website', paymentInstrument: { method: 'payment-card', paymentCardId: 'my-payment-card-id', gatewayAccountId: 'my-gateway-account-id' }, currency: 'USD', amount: 12.99, description: 'manual transaction', }; const transaction = await api.transactions.create({data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $transactionForm = new \Rebilly\Sdk\Model\PostTransactionRequest([ 'type' => 'sale', 'amount' => 1, ]); $transactionForm->setCustomerId('customerId'); $transactionForm->setWebsiteId('websiteId'); $transactionForm->setCurrency('USD'); $paymentInstruction = new \Rebilly\Sdk\Model\PaymentInstructionInstrument(); $paymentInstruction->setToken('payment-token'); $transactionForm->setPaymentInstruction($paymentInstruction); $transactionForm->setBillingAddress([ 'firstName' => 'John', 'lastName' => 'Doe', 'organization' => 'Test LTD', 'address' => 'Test street 5', 'address2' => 'Test house 5', 'city' => 'New York', 'region' => 'Long Island', 'country' => 'US', 'postalCode' => '123456', 'emails' => [ [ 'label' => 'main', 'value' => 'johndoe@testemail.com', 'primary' => true, ], [ 'label' => 'secondary', 'value' => 'otheremail@testemail.com', ], ], 'phoneNumbers' => [ [ 'label' => 'work', 'value' => '+123456789', 'primary' => true, ], [ 'label' => 'home', 'value' => '+9874654321', ], ], 'dob' => '2000-06-01', ]); try { $transaction = $service->transactions()->create($transactionForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } get: x-products: - Core tags: - Transactions summary: Retrieve transactions operationId: GetTransactionCollection x-sdk-operation-name: getAll security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a list of transactions. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: List of transactions retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Transaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $transactions = $client->transactions()->search([ 'filter' => 'result:approved', ]); - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.transactions.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.transactions.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(transaction => console.log(transaction.fields.type)); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $transactionsPaginator = $service->transactions()->getAllPaginator(limit: 5, filter: 'result:approved'); foreach ($transactionsPaginator as $transactionsPage) { printf("Transactions page %d/%d\n", $transactionsPaginator->key() + 1, $transactionsPaginator->count()); foreach ($transactionsPage as $transaction) { printf("Transaction #%s (%s): %s\n", $transaction->getId(), $transaction->getStatus(), $transaction->getDescription()); } } // OR $transactions = $service->transactions()->getAll(filter: 'result:approved'); foreach ($transactions as $transaction) { printf("Transaction #%s (%s): %s\n", $transaction->getId(), $transaction->getStatus(), $transaction->getDescription()); } /transactions/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Transactions summary: Retrieve a transaction operationId: GetTransaction x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a transaction with a specified ID. parameters: - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Transaction retrieved. content: application/json: schema: $ref: '#/components/schemas/Transaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $transaction = $client->transactions()->load('transactionId'); - lang: JavaScript source: |- const transaction = await api.transactions.get({id: 'foobar-001'}); console.log(transaction.fields.billingAddress.firstName); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $transaction = $service->transactions()->get('transactionId'); patch: x-products: - Core tags: - Transactions summary: Update a transaction operationId: PatchTransaction x-sdk-operation-name: patch description: Updates the custom fields of a transaction with a specified ID. requestBody: $ref: '#/components/requestBodies/PatchTransactionRequest' responses: '200': description: Transaction updated. content: application/json: schema: $ref: '#/components/schemas/Transaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | try { $transaction = $client->transactions()->patch($transactionId, $data); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // first set the custom fields to update for the transaction const data = { customFields: { 'myCustomField': 'myCustomData', 'myOtherField': 'myOtherData', } }; const transaction = await api.transactions.patch({id: 'my-transaction-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\CoreService($client); $transactionForm = new \Rebilly\Sdk\Model\PatchTransactionRequest(); $transactionForm->setCustomFields([ [ 'name' => 'customField', 'value' => 'customValue', ], ]); try { $transaction = $service->transactions()->patch('transactionId', $transactionForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /payouts: post: x-products: - Core tags: - Transactions summary: Create a credit transaction operationId: PostPayout x-sdk-operation-name: create security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Creates a transaction of type `credit`. requestBody: $ref: '#/components/requestBodies/CreditTransactionRequest' responses: '201': description: Transaction created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Transaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' /transactions/{id}/query: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Transactions summary: Query a transaction operationId: PostTransactionQuery x-sdk-operation-name: query description: >- 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](../PostTransactionUpdate). responses: '201': description: Transaction queried. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/TransactionQuery' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /transactions/{id}/update: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Transactions summary: Update a transaction status operationId: PostTransactionUpdate x-sdk-operation-name: update description: |- Updates the status of a transaction with a specified ID to `completed`, with a specified `result` and optional currency and amount values. requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionUpdate' required: true responses: '200': description: Transaction updated. content: application/json: schema: $ref: '#/components/schemas/Transaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /transactions/{id}/refund: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Transactions summary: Refund a transaction operationId: PostTransactionRefund x-sdk-operation-name: refund description: |- Refunds a transaction with a specified ID. The refund is in the same currency as the original transaction. requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionRefund' description: Transaction resource. required: true responses: '201': description: Transaction refunded. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Transaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $transaction = $client->transactions()->refund('transactionId', 1.99); - lang: JavaScript source: >- // define the refund amount const data = { amount: 12.99 }; const refund = await api.transactions.switch({id: 'my-transaction-id', data}); console.log(refund.fields.status); - lang: PHP source: >- $service = new \Rebilly\Sdk\CoreService($client); $transactionRefund = new \Rebilly\Sdk\Model\TransactionRefund(); $transactionRefund->setAmount(1.99); $transaction = $service->transactions()->refund('transactionId', $transactionRefund); /transactions/{id}/timeline: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Transactions timeline summary: Retrieve transaction timeline messages operationId: GetTransactionTimelineCollection x-sdk-operation-name: getAllTimelineMessages description: Retrieves a list of transaction timeline messages. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of transaction timeline messages retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/TransactionTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional except for the `id` const firstCollection = await api.transactions .getAllTimelineMessages({id: 'my-transaction'}); // alternatively you can specify one or more of them const params = {id: 'my-transaction', limit: 20, offset: 100}; const secondCollection = await api.transactions.getAllTimelineMessages(params); // access the collection items, each item is a Member secondCollection.items .forEach(message => console.log(message.fields.eventType)); post: x-products: - Core tags: - Transactions timeline summary: Create a transaction timeline comment operationId: PostTransactionTimeline x-sdk-operation-name: createTimelineComment description: Creates a transaction timeline comment. requestBody: content: application/json: schema: $ref: '#/components/schemas/TransactionTimeline' description: Transaction timeline resource. required: true responses: '201': description: Transaction timeline comment created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/TransactionTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- // Create a comment const firstComment = await api .transactions.createTimelineComment({id: 'my-transaction-id', data: {message: 'Your comment here'}}); // Using params object, mentions and references const message = `Example of mentions @user@mydomain.com and references #transactions-transaction-id`; const params = { id: 'my-transaction-id', data: { message, }, }; const secondComment = await api.transactions.createTimelineComment(params); /transactions/{id}/timeline/{messageId}: parameters: - $ref: '#/components/parameters/resourceId' - name: messageId in: path description: ID of the transaction timeline message. required: true schema: type: string get: x-products: - Core tags: - Transactions timeline summary: Retrieve a transaction Timeline message operationId: GetTransactionTimeline x-sdk-operation-name: getTimelineMessage description: Retrieves a timeline message with a specified ID. responses: '200': description: Timeline message retrieved. content: application/json: schema: $ref: '#/components/schemas/TransactionTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const message = await api.transactions .getTimelineMessage({id: 'foobar-001', messageId: 'message-202'}); console.log(message.fields.eventType); delete: x-products: - Core tags: - Transactions timeline summary: Delete a transaction timeline message operationId: DeleteTransactionTimeline x-sdk-operation-name: deleteTimelineMessage description: Deletes a transaction timeline message with a specified ID. responses: '204': description: Transaction timeline message deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' x-codeSamples: - lang: JavaScript source: |- const request = await api.transactions .deleteTimelineMessage({id: 'foobar-001', messageId: 'message-202'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 /fees: get: x-badges: - name: Experimental x-products: - Core tags: - Fees summary: Retrieve fee entries description: >- Retrieves a list of fee entries. > **Important:** This operation is experimental and may not be backward compatible. operationId: GetFeeCollection x-sdk-operation-name: getAll parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of fee entries retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/Fee' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-badges: - name: Experimental x-products: - Core tags: - Fees summary: Create a fee entry description: >- Creates a fee entry. > **Important:** This operation is experimental and may not be backward compatible. operationId: PostFee x-sdk-operation-name: create requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Fee' examples: stripe-trx: $ref: '#/components/examples/stripe-trx-request' stripe-us: $ref: '#/components/examples/stripe-us-request' stripe-intl: $ref: '#/components/examples/stripe-intl-request' responses: '201': description: Fee entry created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Fee' examples: stripe-trx: $ref: '#/components/examples/stripe-trx-response' stripe-us: $ref: '#/components/examples/stripe-us-response' stripe-intl: $ref: '#/components/examples/stripe-intl-response' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /fees/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-badges: - name: Experimental x-products: - Core tags: - Fees summary: Retrieve a fee entry description: >- Retrieves a fee entry. > **Important:** This operation is experimental and may not be backward compatible. operationId: GetFee x-sdk-operation-name: get responses: '200': description: Fee retrieved. content: application/json: schema: $ref: '#/components/schemas/Fee' examples: stripe-trx: $ref: '#/components/examples/stripe-trx-response' stripe-us: $ref: '#/components/examples/stripe-us-response' stripe-intl: $ref: '#/components/examples/stripe-intl-response' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-badges: - name: Experimental x-products: - Core tags: - Fees summary: Upsert a fee entry description: >- Creates or updates (upserts) a fee entry. > **Important:** This operation is experimental and may not be backward compatible. operationId: PutFee x-sdk-operation-name: upsert requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Fee' examples: stripe-trx: $ref: '#/components/examples/stripe-trx-request' stripe-us: $ref: '#/components/examples/stripe-us-request' stripe-intl: $ref: '#/components/examples/stripe-intl-request' responses: '200': description: Fee entry updated. content: application/json: schema: $ref: '#/components/schemas/Fee' examples: stripe-trx: $ref: '#/components/examples/stripe-trx-response' stripe-us: $ref: '#/components/examples/stripe-us-response' stripe-intl: $ref: '#/components/examples/stripe-intl-response' '201': description: Fee entry created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Fee' examples: stripe-trx: $ref: '#/components/examples/stripe-trx-response' stripe-us: $ref: '#/components/examples/stripe-us-response' stripe-intl: $ref: '#/components/examples/stripe-intl-response' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' patch: x-badges: - name: Experimental x-products: - Core tags: - Fees summary: Patch a fee entry description: >- Patches a fee entry. > **Important:** This operation is experimental and may not be backward compatible. operationId: PatchFee x-sdk-operation-name: patch requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PatchFee' examples: stripe-trx: $ref: '#/components/examples/stripe-trx-request' stripe-us: $ref: '#/components/examples/stripe-us-request' stripe-intl: $ref: '#/components/examples/stripe-intl-request' responses: '200': description: Fee entry patched. content: application/json: schema: $ref: '#/components/schemas/Fee' examples: stripe-trx: $ref: '#/components/examples/stripe-trx-response' stripe-us: $ref: '#/components/examples/stripe-us-response' stripe-intl: $ref: '#/components/examples/stripe-intl-response' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' delete: x-badges: - name: Experimental x-products: - Core tags: - Fees summary: Delete a fee entry description: >- Deletes a fee entry. > **Important:** This operation is experimental and may not be backward compatible. operationId: DeleteFee x-sdk-operation-name: delete responses: '204': description: Fee deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /api-keys/{id}: parameters: - $ref: '#/components/parameters/resourceId' /balance-transactions/{id}: parameters: - $ref: '#/components/parameters/resourceId' /billing-portals/{id}: parameters: - $ref: '#/components/parameters/resourceId' /broadcast-messages/{id}: parameters: - $ref: '#/components/parameters/resourceId' /deposit-requests: post: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Create a deposit request operationId: PostDepositRequest x-sdk-operation-name: create description: >- 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 `redirectUrl`. Corresponding transaction webhooks are sent to webhooks subscribers. requestBody: content: application/json: schema: $ref: '#/components/schemas/PostDepositRequest' description: Deposit request resource. required: true responses: '201': description: Deposit request created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/DepositRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' get: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Retrieve deposit requests operationId: GetDepositRequestCollection x-sdk-operation-name: getAll description: Retrieves a list of deposit requests. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of deposit requests retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/DepositRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /deposit-requests/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Retrieve a deposit request operationId: GetDepositRequest x-sdk-operation-name: get description: Retrieves a deposit request with a specified ID. parameters: - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Deposit request retrieved. content: application/json: schema: $ref: '#/components/schemas/DepositRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /deposit-strategies: post: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Create a deposit strategy operationId: PostDepositStrategy x-sdk-operation-name: create description: >- Creates a deposit strategy. To complete the deposit, the customer is redirected to the `deposit` link. After the deposit, the customer is redirected to the `redirectUrl`. Corresponding transaction webhooks are sent to webhooks subscribers. requestBody: content: application/json: schema: $ref: '#/components/schemas/DepositStrategy' description: Deposit strategy resource. required: true responses: '201': description: Deposit strategy created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/DepositStrategy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' get: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Retrieve deposit strategies operationId: GetDepositStrategyCollection x-sdk-operation-name: getAll description: Retrieves a list of deposit strategies. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of deposit strategies retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/DepositStrategy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /deposit-strategies/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Retrieve a deposit strategy operationId: GetDepositStrategy x-sdk-operation-name: get description: Retrieves a deposit strategy with a specified ID. responses: '200': description: Deposit strategy retrieved. content: application/json: schema: $ref: '#/components/schemas/DepositStrategy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Upsert a deposit strategy operationId: PutDepositStrategy x-sdk-operation-name: update description: Creates or updates (upserts) a deposit strategy with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/DepositStrategy' description: Deposit strategy resource. required: true responses: '200': description: Deposit strategy updated. content: application/json: schema: $ref: '#/components/schemas/DepositStrategy' '201': description: Deposit strategy created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/DepositStrategy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Delete a deposit strategy operationId: DeleteDepositStrategy x-sdk-operation-name: delete description: Deletes a deposit strategy with a specified ID. responses: '204': description: Deposit strategy deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /deposit-custom-property-sets: post: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Create a custom deposit property set operationId: PostDepositCustomPropertySet x-sdk-operation-name: create description: >- 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. requestBody: content: application/json: schema: $ref: '#/components/schemas/DepositCustomPropertySet' description: Custom deposit property set resource. required: true responses: '201': description: Custom deposit property set created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/DepositCustomPropertySet' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' get: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Retrieve custom deposit properties sets operationId: GetDepositCustomPropertySetCollection x-sdk-operation-name: getAll description: Retrieves a list of custom deposit property sets. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of custom deposit property sets retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/DepositCustomPropertySet' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /deposit-custom-property-sets/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Retrieve a custom deposit property set operationId: GetDepositCustomPropertySet x-sdk-operation-name: get description: Retrieves a custom deposit property set with a specified ID. responses: '200': description: Custom deposit property set retrieved. content: application/json: schema: $ref: '#/components/schemas/DepositCustomPropertySet' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Upsert a custom deposit property set operationId: PutDepositCustomPropertySet x-sdk-operation-name: update description: >- Creates or updates (upserts) a custom deposit property set with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/DepositCustomPropertySet' description: Custom deposit property set resource. required: true responses: '200': description: Custom deposit property updated. content: application/json: schema: $ref: '#/components/schemas/DepositCustomPropertySet' '201': description: Custom deposit property set created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/DepositCustomPropertySet' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Core x-badges: - name: Experimental tags: - Deposits summary: Delete a custom deposit property set operationId: DeleteDepositCustomPropertySet x-sdk-operation-name: delete description: Deletes a custom deposit property set with a specified ID. responses: '204': description: Custom deposit property set deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /checkout-forms/{id}: parameters: - $ref: '#/components/parameters/resourceId' /service-credentials/{type}: parameters: - $ref: '#/components/parameters/credentialType' /service-credentials/{type}/{id}: parameters: - $ref: '#/components/parameters/credentialType' - $ref: '#/components/parameters/resourceId' /service-credentials/{type}/{id}/items: parameters: - $ref: '#/components/parameters/credentialType' - $ref: '#/components/parameters/resourceId' /custom-domains/{domain}: parameters: - name: domain in: path description: Resource domain. required: true schema: type: string maxLength: 255 pattern: ^[@~\-\.\w]+$ /email-delivery-setting-verifications/{token}: parameters: - $ref: '#/components/parameters/token' /email-delivery-settings/{id}: parameters: - $ref: '#/components/parameters/resourceId' /email-delivery-settings/{id}/resend-email-verification: parameters: - $ref: '#/components/parameters/resourceId' /email-messages/{id}: parameters: - $ref: '#/components/parameters/resourceId' /events/{eventType}: parameters: - $ref: '#/components/parameters/systemEventType' /events/{eventType}/rules: parameters: - $ref: '#/components/parameters/systemEventType' /events/{eventType}/timeline: parameters: - $ref: '#/components/parameters/systemEventType' /events/{eventType}/timeline/{messageId}: parameters: - $ref: '#/components/parameters/systemEventType' - name: messageId in: path description: ID of the rules engine timeline message. required: true schema: type: string /events/{eventType}/rules/history: parameters: - $ref: '#/components/parameters/systemEventType' /events/{eventType}/rules/history/{version}: parameters: - $ref: '#/components/parameters/systemEventType' - $ref: '#/components/parameters/rulesVersion' /events/{eventType}/rules/versions/{version}: parameters: - $ref: '#/components/parameters/systemEventType' - $ref: '#/components/parameters/rulesVersion' /events/{eventType}/rules/drafts: parameters: - $ref: '#/components/parameters/systemEventType' /events/{eventType}/rules/drafts/{id}: parameters: - $ref: '#/components/parameters/systemEventType' - $ref: '#/components/parameters/resourceId' /forgot-password: servers: - url: https://api-sandbox.rebilly.com description: Sandbox server - url: https://api.rebilly.com description: Live server /gateway-accounts/{id}: parameters: - $ref: '#/components/parameters/resourceId' /gateway-accounts/{id}/close: parameters: - $ref: '#/components/parameters/resourceId' /gateway-accounts/{id}/disable: parameters: - $ref: '#/components/parameters/resourceId' /gateway-accounts/{id}/downtime-schedules: parameters: - $ref: '#/components/parameters/resourceId' /gateway-accounts/{id}/downtime-schedules/{downtimeId}: parameters: - $ref: '#/components/parameters/resourceId' - name: downtimeId in: path description: ID of the gateway account downtime. required: true schema: type: string /gateway-accounts/{id}/enable: parameters: - $ref: '#/components/parameters/resourceId' /gateway-accounts/{id}/limits: parameters: - $ref: '#/components/parameters/resourceId' /gateway-accounts/{id}/limits/{limitId}: parameters: - $ref: '#/components/parameters/resourceId' - name: limitId in: path description: ID of the gateway account limit. required: true schema: type: string enum: - daily-money - monthly-money - daily-count - monthly-count /gateway-accounts/{id}/timeline: parameters: - $ref: '#/components/parameters/resourceId' /gateway-accounts/{id}/timeline/{messageId}: parameters: - $ref: '#/components/parameters/resourceId' - name: messageId in: path description: ID of the gateway account timeline message. required: true schema: type: string /gateway-accounts/{id}/check-credentials: parameters: - $ref: '#/components/parameters/resourceId' /gateway-accounts/{id}/financial-settings: parameters: - $ref: '#/components/parameters/resourceId' /grid-segments/{id}: parameters: - $ref: '#/components/parameters/resourceId' /integrations/{label}: parameters: - $ref: '#/components/parameters/integrationLabel' /lists/{id}: parameters: - $ref: '#/components/parameters/resourceId' /lists/{id}/{version}: parameters: - $ref: '#/components/parameters/resourceId' - name: version in: path required: true description: Version of the list. schema: type: integer minimum: 1 /memberships/{organizationId}/{userId}: parameters: - name: organizationId in: path required: true description: >- 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). schema: $ref: '#/components/schemas/ResourceId' - name: userId in: path required: true description: ID of the user. schema: $ref: '#/components/schemas/ResourceId' /organizations/{id}: parameters: - $ref: '#/components/parameters/resourceId' /payment-methods: servers: - url: https://api-sandbox.rebilly.com description: Sandbox server - url: https://api.rebilly.com description: Live server /payment-methods/{apiName}: servers: - url: https://api-sandbox.rebilly.com description: Sandbox server - url: https://api.rebilly.com description: Live server parameters: - name: apiName in: path description: Name of the payment method API. required: true schema: description: Name of the payment method returned in the API response. type: string pattern: ^[\w\. -]+$ /payment-gateways-metadata/{apiName}: parameters: - name: apiName in: path description: Payment gateway metadata API name. required: true schema: description: Name of the payment gateway returned in the API response. type: string pattern: ^[\w\. -]+$ /payout-requests: get: x-products: - Core tags: - Transactions summary: Retrieve a list of payout requests operationId: GetPayoutRequestCollection x-sdk-operation-name: getAll description: Retrieves a list of payout requests. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of payout requests retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/PayoutRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Transactions summary: Create a payout request operationId: PostPayoutRequest x-sdk-operation-name: create description: >- Creates a payout request. In the response, the `selectPaymentInstrumentUrl` field is used to redirect the customer to select a preferred payment instrument. After a payment instrument is selected, the customer is redirected to the `selectedPaymentInstrumentRedirectUrl` value. requestBody: content: application/json: schema: $ref: '#/components/schemas/PayoutRequest' description: Payout request resource. required: true responses: '201': description: Payout request created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/PayoutRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /payout-requests/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Transactions summary: Retrieve a payout request operationId: GetPayoutRequest x-sdk-operation-name: get description: Retrieves a payout request with a specified ID. responses: '200': description: Payout request retrieved. content: application/json: schema: $ref: '#/components/schemas/PayoutRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - Transactions summary: Upsert a payout request operationId: PutPayoutRequest x-sdk-operation-name: update description: Creates or updates (upserts) a payout request with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/PayoutRequest' responses: '200': description: Payout request updated. content: application/json: schema: $ref: '#/components/schemas/PayoutRequest' '201': description: Payout request created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/PayoutRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /payout-requests/{id}/cancel: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Core tags: - Transactions summary: Cancel a payout request operationId: PostPayoutRequestCancellation x-sdk-operation-name: cancel description: Cancels a payout request with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/PayoutRequestCancellation' description: Payout request resource. required: true responses: '200': description: Payout request canceled. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/PayoutRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' /payout-requests/{id}/payment-instruments: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Transactions summary: Retrieve associated payment instruments operationId: GetPayoutRequestPaymentInstruments x-sdk-operation-name: getPaymentInstruments description: >- Retrieves the payment gateway and a list of payment instruments that are associated with a payout request with a specified ID. responses: '200': description: Payout request associated payment instruments retrieved. content: application/json: schema: type: array description: >- List of available payment instruments per an associated gateway to offer for the payout. items: type: object properties: paymentInstrumentId: type: string description: ID of the payment instrument to offer for the payout. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N gatewayName: description: >- Name of the payment gateway and payment instrument to use for the payout. This field is empty if the requested payment instrument has not been used yet. x-label: Gateway account x-basic: true type: - string - 'null' allOf: - $ref: '#/components/schemas/GatewayName' exposureAmount: description: >- Total amount of sales minus credit for the specified gateway and instrument. type: number format: double previousAllocatedAmount: description: >- Total amount of allocated credit for the payout request for the specified gateway and instrument. type: number format: double lastPaymentTime: description: >- Date and time when the last payment is created for the gateway and the payment instrument. type: string format: date-time lastPayoutTime: description: >- Date and time when the last payout is created for the gateway and the payment instrument. type: string format: date-time '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /previews/orders: post: x-products: - Core tags: - Orders summary: Preview an order operationId: PostPreviewOrder x-sdk-operation-name: order description: |- Previews an order. Use this operation to preview a draft order before making an order. requestBody: content: application/json: schema: $ref: '#/components/schemas/OrderPreview' responses: '200': description: Order preview retrieved. content: application/json: schema: $ref: '#/components/schemas/OrderPreview' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /roles/{id}: parameters: - $ref: '#/components/parameters/resourceId' /send-through-attribution/{eventType}: parameters: - $ref: '#/components/parameters/systemEventType' /status: servers: - url: https://api-sandbox.rebilly.com description: Sandbox server - url: https://api.rebilly.com description: Live server /tracking/api/{id}: parameters: - $ref: '#/components/parameters/resourceId' /tracking/taxes/{id}: parameters: - $ref: '#/components/parameters/resourceId' /tracking/webhooks/{id}: parameters: - $ref: '#/components/parameters/resourceId' /tracking/webhooks/{id}/resend: parameters: - $ref: '#/components/parameters/resourceId' /users/{id}: parameters: - $ref: '#/components/parameters/resourceId' /users/{id}/mfa: parameters: - $ref: '#/components/parameters/resourceId' /webhooks/{id}: parameters: - $ref: '#/components/parameters/resourceId' /websites/{id}: parameters: - $ref: '#/components/parameters/resourceId' /experimental/customers/{customerId}/summary-metrics: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). parameters: - name: customerId in: path required: true description: ID of the customer. schema: type: string /experimental/data-exports: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/data-exports/{id}: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). parameters: - $ref: '#/components/parameters/resourceId' /organization-exports/{id}: parameters: - $ref: '#/components/parameters/resourceId' /experimental/histograms/transactions: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/api-log-summary: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/cumulative-subscriptions: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/dashboard: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/dcc-markup: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/declined-transactions: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/disputes: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/events-triggered: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/events-triggered/{eventType}/rules: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). parameters: - name: eventType in: path required: true description: Type of system event. schema: $ref: '#/components/schemas/EventType' /experimental/reports/future-renewals: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/journal: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/kyc-acceptance-summary: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/kyc-rejection-summary: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/kyc-request-summary: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/monthly-recurring-revenue: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/renewal-sales: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/retention-percentage: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/retention-value: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/revenue-waterfall: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/revenue-audit: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/subscription-cancellation: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/subscription-renewal: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/tax: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/time-series-transaction: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/transactions-time-dispute: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/reports/transactions: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). /experimental/subscriptions/{subscriptionId}/summary-metrics: servers: - url: >- https://api-sandbox.rebilly.com/experimental/organizations/{organizationId} description: Sandbox server variables: organizationId: default: unknown description: >- 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). - url: https://api.rebilly.com/experimental/organizations/{organizationId} description: Live server variables: organizationId: default: unknown description: >- 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). parameters: - name: subscriptionId in: path required: true description: ID of the subscription order. schema: type: string /storefront/account/reset-password/{token}: parameters: - $ref: '#/components/parameters/token' /storefront/account/verification/{token}: parameters: - $ref: '#/components/parameters/token' /storefront/billing-portals/{slug}: parameters: - name: slug in: path description: Resource slug. required: true schema: type: string maxLength: 100 pattern: ^[@~\-\.\w]+$ /storefront/experimental/billing-portals/{slug}: parameters: - name: slug in: path description: Resource slug. required: true schema: type: string maxLength: 100 pattern: ^[@~\-\.\w]+$ /storefront/deposit-strategies/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/deposit-requests/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/checkout-forms/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/custom-fields/{resource}: parameters: - $ref: '#/components/parameters/storefrontCustomFieldResource' /storefront/invoices/{id}: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/collectionExpand' /storefront/orders/{id}/upcoming-invoice: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/collectionExpand' /storefront/kyc-documents/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/kyc-requests/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/kyc-liveness-sessions/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/kyc-liveness-sessions/{id}/finish: parameters: - $ref: '#/components/parameters/resourceId' /storefront/orders/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/orders/{id}/cancellation: parameters: - $ref: '#/components/parameters/resourceId' /storefront/orders/{id}/pause: parameters: - $ref: '#/components/parameters/resourceId' /storefront/subscriptions/{id}/change-items: parameters: - $ref: '#/components/parameters/resourceId' /storefront/payment-instruments/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/payment-instruments/{id}/deactivation: parameters: - $ref: '#/components/parameters/resourceId' /storefront/payment-instruments/{id}/setup: parameters: - $ref: '#/components/parameters/resourceId' /storefront/payout-requests/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/plans/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/products/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/quotes/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/quotes/{id}/accept: parameters: - $ref: '#/components/parameters/resourceId' /storefront/quotes/{id}/reject: parameters: - $ref: '#/components/parameters/resourceId' /storefront/transactions/{id}: parameters: - $ref: '#/components/parameters/resourceId' /storefront/transactions/{id}/{token}/continue: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/token' /storefront/transactions/{id}/{token}/bypass: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/token' /storefront/websites/{id}: parameters: - $ref: '#/components/parameters/resourceId' /customers/{id}/edd-score: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Customers summary: Retrieve a customer's EDD score operationId: GetCustomerEddScore x-sdk-operation-name: getCustomerEddScore description: Retrieves an EDD score for a customer with a specified ID. responses: '200': description: EDD score retrieved. content: application/json: schema: $ref: '#/components/schemas/Edd' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' patch: x-products: - Core tags: - Customers summary: Update a customer's EDD score operationId: PatchCustomerEddScore x-sdk-operation-name: patchCustomerEddScore description: Updates an EDD score for a customer with a specified ID. requestBody: content: application/json: schema: type: object title: PatchCustomerEddScoreRequest required: - score properties: score: type: object description: Customer's EDD score. properties: occupation: $ref: '#/components/schemas/EddScore' arrest: $ref: '#/components/schemas/EddScore' bankruptcy: $ref: '#/components/schemas/EddScore' fraud: $ref: '#/components/schemas/EddScore' responses: '200': description: EDD score updated. content: application/json: schema: $ref: '#/components/schemas/Edd' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /customers/{id}/edd-timeline: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Customers timeline summary: Retrieve EDD timeline messages operationId: GetCustomerEddTimelineCollection x-sdk-operation-name: getEddTimelineCollection description: Retrieves a list of EDD timeline messages. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of EDD timeline messages retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/EddTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Customers timeline summary: Create an EDD timeline comment operationId: PostCustomerEddTimeline x-sdk-operation-name: createEddTimelineComment description: Creates an EDD timeline comment. requestBody: content: application/json: schema: $ref: '#/components/schemas/EddTimeline' description: EDD timeline resource. required: true responses: '201': description: EDD timeline comment created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/EddTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /customers/{id}/edd-timeline/{messageId}: parameters: - $ref: '#/components/parameters/resourceId' - name: messageId in: path description: ID of the EDD timeline message. required: true schema: type: string get: x-products: - Core tags: - Customers timeline summary: Retrieve an EDD timeline message operationId: GetCustomerEddTimeline x-sdk-operation-name: getEddTimelineMessage description: Retrieves an EDD message with a specified ID. responses: '200': description: EDD timeline message retrieved. content: application/json: schema: $ref: '#/components/schemas/EddTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Core tags: - Customers timeline summary: Delete an EDD timeline message operationId: DeleteCustomerEddTimeline x-sdk-operation-name: deleteEddTimelineMessage description: Deletes an EDD timeline message with a specified ID. responses: '204': description: EDD timeline message deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /customers/{id}/edd-search-results: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Customers summary: Retrieve customer EDD search results operationId: GetCustomerEddSearchResultCollection x-sdk-operation-name: getAllEddSearchResults description: Retrieve EDD search results for a customer with a specified ID. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: EDD search results retrieved. content: application/json: schema: type: array items: $ref: '#/components/schemas/EddSearchResult' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /customers/{id}/edd-search-results/{searchResultId}: parameters: - $ref: '#/components/parameters/resourceId' - name: searchResultId in: path description: ID of the EDD search result. required: true schema: type: string get: x-products: - Full - Risk Management - Core tags: - Customers summary: Retrieve a customer's EDD search result operationId: GetCustomerEddSearchResult x-sdk-operation-name: getEddSearchResult description: Retrieves an EDD search result for a customer with a specified ID. responses: '200': description: EDD search result retrieved. content: application/json: schema: $ref: '#/components/schemas/EddSearchResult' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /risk-score-rules: get: x-products: - Core tags: - Risk score summary: Retrieve risk score rules operationId: GetRiskScoreRules x-sdk-operation-name: getAll security: - SecretApiKey: [] - JWT: [] description: Retrieves risk score rules. responses: '200': description: Risk score rules retrieved. content: application/json: schema: $ref: '#/components/schemas/RiskScoreRules' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' put: x-products: - Core tags: - Risk score summary: Modify risk score rules operationId: PutRiskScoreRules x-sdk-operation-name: updateRiskScoreRules description: Modifies risk score rules. requestBody: content: application/json: schema: $ref: '#/components/schemas/RiskScoreRules' description: Risk score rules. required: true responses: '200': description: Risk score rules set. content: application/json: schema: $ref: '#/components/schemas/RiskScoreRules' '201': description: Risk score rules set. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/RiskScoreRules' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /risk-score-rules/blocklists: get: x-products: - Core tags: - Risk score summary: Retrieve risk score blocklist rules operationId: GetRiskScoreBlocklistRules x-sdk-operation-name: getAllBlocklistRules security: - SecretApiKey: [] - JWT: [] description: Retrieves risk score blocklist rules. responses: '200': description: Risk score blocklist rules retrieved. content: application/json: schema: $ref: '#/components/schemas/RiskScoreBlocklist' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' put: x-products: - Core tags: - Risk score summary: Modify risk score blocklist rules operationId: PutRiskScoreBlocklistRules x-sdk-operation-name: updateRiskScoreBlocklistRules description: Modifies risk score blocklist rules. requestBody: content: application/json: schema: $ref: '#/components/schemas/RiskScoreBlocklist' description: Risk score blocklist rules. required: true responses: '200': description: Risk score blocklist rules set. content: application/json: schema: $ref: '#/components/schemas/RiskScoreBlocklist' '201': description: Risk score blocklist rules set. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/RiskScoreBlocklist' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /allowlists: get: x-products: - Core tags: - Allowlists summary: Retrieve allowlist collection operationId: GetAllowlistCollection x-sdk-operation-name: getAllowlistCollection security: - SecretApiKey: [] - JWT: [] description: Retrieves allowlist collection. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Allowlist collection retrieved. content: application/json: schema: type: array items: $ref: '#/components/schemas/Allowlist' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Allowlists summary: Create allowlist record operationId: PostAllowlist x-sdk-operation-name: storeAllowlist security: - PublishableApiKey: [] description: Creates allowlist record. requestBody: content: application/json: schema: $ref: '#/components/schemas/Allowlist' description: Allowlist record. required: true responses: '201': description: Allowlist record created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Allowlist' '401': $ref: '#/components/responses/Unauthorized' '409': $ref: '#/components/responses/Conflict' /allowlists/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Allowlists summary: Retrieve allowlist record operationId: GetAllowlist x-sdk-operation-name: getAllowlist security: - SecretApiKey: [] - JWT: [] description: Retrieves allowlist record. responses: '200': description: Allowlist record retrieved. content: application/json: schema: $ref: '#/components/schemas/Allowlist' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' delete: x-products: - Core tags: - Allowlists summary: Delete allowlist record operationId: DeleteAllowlist x-sdk-operation-name: delete description: Deletes allowlist record with a specified ID. responses: '204': description: Allowlist record deleted. /tags-rules: get: x-products: - Core tags: - Tags summary: Retrieve tags rules list operationId: GetTagsRulesCollection x-sdk-operation-name: getAllTagsRules description: Retrieves a list of tags rules. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of tags rules retrieved. headers: Pagination-Total: $ref: '#/components/headers/Pagination-Total' Pagination-Limit: $ref: '#/components/headers/Pagination-Limit' Pagination-Offset: $ref: '#/components/headers/Pagination-Offset' content: application/json: schema: type: array items: $ref: '#/components/schemas/TagUntagRule' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Core tags: - Tags summary: Create tags rule operationId: PostTagRules x-sdk-operation-name: createTagsRule description: Creates a tags rule. requestBody: content: application/json: schema: $ref: '#/components/schemas/TagUntagRule' description: Tags rule resource. required: true responses: '201': description: Tags rule created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/TagUntagRule' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /tags-rules/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Core tags: - Tags summary: Retrieve a tags rule operationId: GetTagsRule x-sdk-operation-name: getTagsRule description: Retrieves a tags rule with a specified ID. responses: '200': description: Tags rule retrieved. content: application/json: schema: $ref: '#/components/schemas/TagUntagRule' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Core tags: - Tags summary: Create a tags rule with specified ID operationId: PutTagsRule x-sdk-operation-name: updateTagsRule description: Creates a tags rule with a specified ID. responses: '200': description: Tags rule updated. content: application/json: schema: $ref: '#/components/schemas/TagUntagRule' '201': description: Tags rule created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/TagUntagRule' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/TagUntagRule' description: Tags rule resource. required: true delete: x-products: - Core tags: - Tags summary: Delete tags rule operationId: DeleteTagsRule x-sdk-operation-name: deleteTagsRule description: Deletes a tags rule with a specified ID. responses: '204': description: Tags rule deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' webhooks: aml-list-possibly-matched: post: summary: AML list possibly matched operationId: aml-list-possibly-matched x-products: - Core tags: - AML requestBody: $ref: '#/components/requestBodies/CustomerWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. coupon-application-removed: post: summary: Coupon application removed operationId: coupon-application-removed x-products: - Core tags: - Coupons requestBody: $ref: '#/components/requestBodies/CouponRedemptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. coupon-applied: post: summary: Coupon applied operationId: coupon-applied x-products: - Core tags: - Coupons requestBody: $ref: '#/components/requestBodies/CouponRedemptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. coupon-expiration-modified: post: summary: Coupon expiration modified operationId: coupon-expiration-modified x-products: - Core tags: - Coupons requestBody: $ref: '#/components/requestBodies/CouponWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. coupon-expired: post: summary: Coupon expired operationId: coupon-expired x-products: - Core tags: - Coupons requestBody: $ref: '#/components/requestBodies/CouponWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. coupon-issued: post: summary: Coupon issued operationId: coupon-issued x-products: - Core tags: - Coupons requestBody: $ref: '#/components/requestBodies/CouponWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. coupon-modified: post: summary: Coupon modified operationId: coupon-modified x-products: - Core tags: - Coupons requestBody: $ref: '#/components/requestBodies/CouponWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. coupon-redeemed: post: summary: Coupon redeemed operationId: coupon-redeemed x-products: - Core tags: - Coupons requestBody: $ref: '#/components/requestBodies/CouponRedemptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. coupon-redemption-canceled: post: summary: Coupon redemption canceled operationId: coupon-redemption-canceled x-products: - Core tags: - Coupons requestBody: $ref: '#/components/requestBodies/CouponRedemptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. credit-memo-applied: post: summary: Credit memo applied operationId: credit-memo-applied x-products: - Core tags: - Credit memos requestBody: $ref: '#/components/requestBodies/CreditMemoWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. credit-memo-created: post: summary: Credit memo created operationId: credit-memo-created x-products: - Core tags: - Credit memos requestBody: $ref: '#/components/requestBodies/CreditMemoWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. credit-memo-modified: post: summary: Credit memo modified operationId: credit-memo-modified x-products: - Core tags: - Credit memos requestBody: $ref: '#/components/requestBodies/CreditMemoWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. credit-memo-partially-applied: post: summary: Credit memo partially applied operationId: credit-memo-partially-applied x-products: - Core tags: - Credit memos requestBody: $ref: '#/components/requestBodies/CreditMemoWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. credit-memo-voided: post: summary: Credit memo voided operationId: credit-memo-voided x-products: - Core tags: - Credit memos requestBody: $ref: '#/components/requestBodies/CreditMemoWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. customer-created: post: summary: Customer created operationId: customer-created x-products: - Core tags: - Customers requestBody: $ref: '#/components/requestBodies/CustomerWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. customer-merged: post: summary: Customer merged operationId: customer-merged x-products: - Core tags: - Customers requestBody: $ref: '#/components/requestBodies/MergedCustomer' responses: 2xx: description: Returns any 2xx status to indicate that data is received. customer-one-time-password-requested: post: summary: Customer one-time-password requested operationId: customer-one-time-password-requested x-products: - Core tags: - Customers requestBody: $ref: '#/components/requestBodies/CustomerWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. customer-redirected-offsite: post: summary: Customer redirected offsite operationId: customer-redirected-offsite x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/CustomerRedirect' responses: 2xx: description: Returns any 2xx status to indicate that data is received. customer-returned: post: summary: Customer returned operationId: customer-returned x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/CustomerRedirect' responses: 2xx: description: Returns any 2xx status to indicate that data is received. customer-updated: post: summary: Customer updated operationId: customer-updated x-products: - Core tags: - Customers requestBody: $ref: '#/components/requestBodies/CustomerWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. dispute-created: post: summary: Dispute created operationId: dispute-created x-products: - Core tags: - Disputes requestBody: $ref: '#/components/requestBodies/DisputeWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. dispute-modified: post: summary: Dispute modified operationId: dispute-modified x-products: - Core tags: - Disputes requestBody: $ref: '#/components/requestBodies/DisputeWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. experian-check-performed: post: summary: Experian check performed operationId: experian-check-performed x-products: - Core tags: - Customers requestBody: $ref: '#/components/requestBodies/ExperianCheckPerformed' responses: 2xx: description: Returns any 2xx status to indicate that data is received. hard-usage-limit-reached: post: summary: Soft usage limit reached operationId: soft-usage-limit-reached x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/UsageLimitWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-tax-calculation-failed: post: summary: Invoice tax calculation failed operationId: invoice-tax-calculation-failed x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceTaxCalculationFailed' responses: 2xx: description: Returns any 2xx status to indicate that data is received. gateway-account-requested: post: summary: Gateway account requested operationId: gateway-account-requested x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-abandoned: post: summary: Invoice abandoned operationId: invoice-abandoned x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-created: post: summary: Invoice created operationId: invoice-created x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-issued: post: summary: Invoice issued operationId: invoice-issued x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-modified: post: summary: Invoice modified operationId: invoice-modified x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-paid: post: summary: Invoice paid operationId: invoice-paid x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-partially-paid: post: summary: Invoice partially paid operationId: invoice-partially-paid x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-refunded: post: summary: Invoice refunded operationId: invoice-refunded x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-partially-refunded: post: summary: Invoice partially refunded operationId: invoice-partially-refunded x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-past-due: post: summary: Invoice past due operationId: invoice-past-due x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-past-due-reminder: post: summary: Invoice past due reminder operationId: invoice-past-due-reminder x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-reissued: post: summary: Invoice reissued operationId: invoice-reissued x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. invoice-voided: post: summary: Invoice voided operationId: invoice-voided x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. kyc-document-accepted: post: summary: KYC document accepted operationId: kyc-document-accepted x-products: - Core tags: - KYC documents requestBody: $ref: '#/components/requestBodies/KycDocumentWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. kyc-document-modified: post: summary: KYC document modified operationId: kyc-document-modified x-products: - Core tags: - KYC documents requestBody: $ref: '#/components/requestBodies/KycDocumentWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. kyc-document-rejected: post: summary: KYC document rejected operationId: kyc-document-rejected x-products: - Core tags: - KYC documents requestBody: $ref: '#/components/requestBodies/KycDocumentWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. kyc-document-reviewed: post: summary: KYC document reviewed operationId: kyc-document-reviewed x-products: - Core tags: - KYC documents requestBody: $ref: '#/components/requestBodies/KycDocumentWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. kyc-document-archived: post: summary: KYC document archived operationId: kyc-document-archived x-products: - Core tags: - KYC documents requestBody: $ref: '#/components/requestBodies/KycDocumentWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. kyc-request-attempted: post: summary: KYC request attempted operationId: kyc-request-attempted x-products: - Core tags: - KYC documents requestBody: $ref: '#/components/requestBodies/KycRequestWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. kyc-request-failed: post: summary: KYC request failed operationId: kyc-request-failed x-products: - Core tags: - KYC documents requestBody: $ref: '#/components/requestBodies/KycRequestWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. kyc-request-fulfilled: post: summary: KYC request fulfilled operationId: kyc-request-fulfilled x-products: - Core tags: - KYC documents requestBody: $ref: '#/components/requestBodies/KycRequestWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. kyc-request-partially-fulfilled: post: summary: KYC request partially fulfilled operationId: kyc-request-partially-fulfilled x-products: - Core tags: - KYC documents requestBody: $ref: '#/components/requestBodies/KycRequestWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. nsf-response-received: post: summary: NSF response received operationId: nsf-response-received x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. offsite-payment-completed: post: summary: Offsite payment completed operationId: offsite-payment-completed x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. order-abandoned: post: summary: Order abandoned operationId: order-abandoned x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. order-completed: post: summary: Order completed operationId: order-completed x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. payment-card-created: post: summary: Payment card created operationId: payment-card-created x-products: - Core tags: - Payment instruments requestBody: $ref: '#/components/requestBodies/PaymentCardWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. payment-card-expiration-reminder: post: summary: Payment card expiration reminder operationId: payment-card-expiration-reminder x-products: - Core tags: - Payment instruments requestBody: $ref: '#/components/requestBodies/PaymentCardWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. payment-card-expired: post: summary: Payment card expired operationId: payment-card-expired x-products: - Core tags: - Payment instruments requestBody: $ref: '#/components/requestBodies/PaymentCardWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. payment-instrument-modified: post: summary: Payment instrument modified operationId: payment-instrument-modified x-products: - Core tags: - Payment instruments requestBody: $ref: '#/components/requestBodies/PaymentInstrumentWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. payout-request-canceled: post: summary: Payout request canceled operationId: payout-request-canceled x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/PayoutRequestWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. payout-request-created: post: summary: Payout request created operationId: payout-request-created x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/PayoutRequestWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. payout-request-modified: post: summary: Payout request modified operationId: payout-request-modified x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/PayoutRequestWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. quote-accepted: post: summary: Quote accepted operationId: quote-accepted x-products: - Core tags: - Quotes requestBody: $ref: '#/components/requestBodies/QuoteWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. quote-canceled: post: summary: Quote canceled operationId: quote-canceled x-products: - Core tags: - Quotes requestBody: $ref: '#/components/requestBodies/QuoteWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. quote-created: post: summary: Quote created operationId: quote-created x-products: - Core tags: - Quotes requestBody: $ref: '#/components/requestBodies/QuoteWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. quote-expired: post: summary: Quote expired operationId: quote-expired x-products: - Core tags: - Quotes requestBody: $ref: '#/components/requestBodies/QuoteWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. quote-issued: post: summary: Quote issued operationId: quote-issued x-products: - Core tags: - Quotes requestBody: $ref: '#/components/requestBodies/QuoteWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. quote-recalled: post: summary: Quote recalled operationId: quote-recalled x-products: - Core tags: - Quotes requestBody: $ref: '#/components/requestBodies/QuoteWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. quote-rejected: post: summary: Quote rejected operationId: quote-rejected x-products: - Core tags: - Quotes requestBody: $ref: '#/components/requestBodies/QuoteWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. quote-updated: post: summary: Quote updated operationId: quote-updated x-products: - Core tags: - Quotes requestBody: $ref: '#/components/requestBodies/QuoteWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. renewal-invoice-issued: post: summary: Renewal invoice issued operationId: renewal-invoice-issued x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/RenewalInvoiceIssued' responses: 2xx: description: Returns any 2xx status to indicate that data is received. renewal-invoice-payment-canceled: post: summary: Renewal invoice payment canceled operationId: renewal-invoice-payment-canceled x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceAndTransaction' responses: 2xx: description: Returns any 2xx status to indicate that data is received. renewal-invoice-payment-declined: post: summary: Renewal invoice payment declined operationId: renewal-invoice-payment-declined x-products: - Core tags: - Invoices requestBody: $ref: '#/components/requestBodies/InvoiceAndTransaction' responses: 2xx: description: Returns any 2xx status to indicate that data is received. risk-score-changed: post: summary: Risk score changed operationId: risk-score-changed x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. soft-usage-limit-reached: post: summary: Hard usage limit reached operationId: hard-usage-limit-reached x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/UsageLimitWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-activated: post: summary: Subscription order activated operationId: subscription-activated x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-canceled: post: summary: Subscription order canceled operationId: subscription-canceled x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-churned: post: summary: Subscription order churned operationId: subscription-churned x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-downgraded: post: summary: Subscription order downgraded operationId: subscription-downgraded x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-items-changed: post: summary: Subscription items changed operationId: subscription-items-changed x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-modified: post: summary: Order modified operationId: subscription-modified x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-reactivated: post: summary: Subscription order reactivated operationId: subscription-reactivated x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-renewal-reminder: post: summary: Subscription renewal reminder operationId: subscription-renewal-reminder x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-renewed: post: summary: Subscription order renewed operationId: subscription-renewed x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-trial-converted: post: summary: Subscription order trial converted operationId: subscription-trial-converted x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-trial-end-reminder: post: summary: Subscription order trial end reminder operationId: subscription-trial-end-reminder x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-trial-ended: post: summary: Subscription order trial ended operationId: subscription-trial-ended x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-trial-end-changed: post: summary: Subscription order trial end changed operationId: subscription-trial-end-changed x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-upgraded: post: summary: Subscription order upgraded operationId: subscription-upgraded x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-paused: post: summary: Subscription order paused operationId: subscription-paused x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionAndSubscriptionPause' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-pause-created: post: summary: Subscription order pause created operationId: subscription-pause-created x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionAndSubscriptionPause' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-pause-modified: post: summary: Subscription order pause modified operationId: subscription-pause-modified x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionAndSubscriptionPause' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-pause-revoked: post: summary: Subscription order pause revoked operationId: subscription-pause-revoked x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionAndSubscriptionPause' responses: 2xx: description: Returns any 2xx status to indicate that data is received. subscription-resumed: post: summary: Subscription order resumed operationId: subscription-resumed x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionAndSubscriptionPause' responses: 2xx: description: Returns any 2xx status to indicate that data is received. transaction-amount-discrepancy-found: post: summary: Transaction amount discrepancy found operationId: transaction-amount-discrepancy-found x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. transaction-declined: post: summary: Transaction declined operationId: transaction-declined x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. transaction-discrepancy-found: post: summary: Transaction discrepancy found operationId: transaction-discrepancy-found x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. transaction-process-requested: post: summary: Transaction process requested operationId: transaction-process-requested x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. transaction-processed: post: summary: Transaction processed operationId: transaction-processed x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. transaction-timeout-resolved: post: summary: Transaction timeout resolved operationId: transaction-timeout-resolved x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. waiting-gateway-transaction-completed: post: summary: Waiting gateway transaction completed operationId: waiting-gateway-transaction-completed x-products: - Core tags: - Transactions requestBody: $ref: '#/components/requestBodies/TransactionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. order-delinquency-reached: post: summary: Order delinquency time reached operationId: order-delinquency-reached x-products: - Core tags: - Orders requestBody: $ref: '#/components/requestBodies/SubscriptionWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received.