openapi: 3.1.0 info: version: latest title: All 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 collectionCriteria: name: criteria in: query description: Criteria parameter for requesting a collection. schema: type: string 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 ExternalIdentifier: type: object required: - externalIdentifier properties: resource: type: string description: Type of the resource. enum: - customers - invoices - invoice-items - transactions - journal-accounts - journal-entries readOnly: true resourceId: type: string description: ID of the resource entity. readOnly: true service: type: string description: Name of the external service. enum: - quickbooks-online readOnly: true externalIdentifier: type: string description: ID of the referenced entity within an external service. createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: description: Related links. type: array readOnly: true items: type: object properties: rel: type: string description: Type of link. enum: - self - externalService href: type: string description: Link URL. ExternalServiceSettings: type: object description: Settings for external service integration. properties: quickBooksOnline: type: object title: QuickBooksOnlineExternalServiceSettings description: QuickBooks Online settings. properties: customer: type: object title: QuickBooksOnlineCustomerExternalServiceSettings description: Customer settings. properties: sync: type: string description: >- Specifies how to synchronize customers between your Rebilly and QuickBooks Online account. default: manually enum: - manually - when-used - always x-enumDescriptions: manually: >- Customer data is only synchronized when it is manually executed. when-used: >- Customer data is synchronized when related entities, such as transactions or invoices are created or updated. always: >- Customer data is synchronized automatically as data is created or updated. displayName: type: string default: full-name enum: - id - full-name - organization-name invoice: type: object title: QuickBooksOnlineInvoiceExternalServiceSettings description: Invoice settings. properties: sync: type: string description: >- Specifies how to synchronize invoices between your Rebilly and QuickBooks Online account. default: manually enum: - manually - when-issued - always x-enumDescriptions: manually: >- Invoice data is only synchronized when it is manually executed. when-issued: Invoice data is synchronized when issued. always: >- Invoice data is synchronized automatically as data it is issued or updated. unearnedRevenueAccountId: type: string description: ID of the journal account where all products are created. example: jrn_acc_01H32J1C97KWGRCKF1E1JY0QG8 taxesAccountId: type: - string - 'null' default: null description: ID of the journal account where all taxes are created. example: jrn_acc_01H32J1KGXSRDH0K8Q7YYA552T department: type: - string - 'null' default: null description: >- ID of the QuickBooks Online department that invoices are related to. example: jrn_acc_01H32J1KGXSRDH0K8Q7YYA552T itemName: type: string description: Name of the invoice item. itemDescription: type: string description: Description of the invoice item. itemSku: type: string description: Stock Keeping Unit (SKU) of the invoice item. itemLineDescription: type: string description: Description of the invoice line item. taxName: type: string description: Name of the tax that is applied to the invoice. taxDescription: type: string description: Description of the tax that is applied to the invoice. taxSku: type: string description: >- Stock Keeping Unit (SKU) of the tax that is applied to the invoice. taxLineDescription: type: string description: Description of the tax line. transaction: type: object title: QuickBooksOnlineTransactionExternalServiceSettings description: Transaction settings. properties: syncPayments: type: string description: >- Specifies how to synchronize transactions between your Rebilly and QuickBooks Online account. default: manually enum: - manually - always x-enumDescriptions: manually: >- Transaction data is only synchronized when it is manually executed. always: >- Transaction data is synchronized automatically as data is created or updated. syncRefundReceipts: type: string description: >- Specifies how to synchronize invoices between your Rebilly and QuickBooks Online account. default: manually enum: - manually - always x-enumDescriptions: manually: >- Invoice data is only synchronized when it is manually executed. always: >- Invoice data is synchronized automatically as data is created or updated. depositAccountId: type: string description: >- ID of the journal account where all payments and refund receipts are deposited. example: jrn_acc_01H32J1C97KWGRCKF1E1JY0QG8 department: type: - string - 'null' default: null description: >- ID of the QuickBooks Online department that payments and refund receipts are related to. example: jrn_acc_01H32J1KGXSRDH0K8Q7YYA552T journalEntry: type: object title: QuickBooksOnlineJournalEntryExternalServiceSettings description: Journal entry settings. properties: sync: type: string description: >- Specifies how to synchronize journal entries between your Rebilly and QuickBooks Online account. default: manually enum: - manually - always x-enumDescriptions: manually: >- Journal entry data is only synchronized when it is manually executed. always: >- Journal entry data is synchronized automatically as data is created or updated. 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 ApplicationInstance: type: object description: Application instance object. properties: status: description: Status of the application instance. readOnly: true type: string enum: - enabling - enabled - disabling - disabled isConfigured: description: >- Determines if the configuration of the application instance is complete. Configuration is completed using the [Upsert an application instance configuration](https://www.rebilly.com/catalog/all/application-users/putapplicationinstanceconfiguration) operation. type: boolean readOnly: true settings: description: Configuration settings that are available during installation. type: object additionalProperties: type: string description: >- Additional properties that the user may want to add when installing an application. example: color: red limit: '5' deprecated: true readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' ApplicationInstanceConfiguration: type: object required: - settings description: >- Application instance configuration. If the `configuredBy` field is set to `user`, only user can change application settings. If the `configuredBy` field is set to `application`, only the application itself can change settings. properties: settings: description: Configuration settings that are available during installation. type: object additionalProperties: type: string description: >- Additional properties that the user may want to add when installing an application. example: color: red level: gold _links: readOnly: true type: array description: Related links. items: type: object properties: rel: type: string description: Type of link. enum: - self - configuration x-enumDescriptions: self: Link to the application instance configuration. configuration: >- Link to the external resource where the application instance must be configured. This field contains a JWT in the query parameter. Direct the user to this URL where application settings must be submitted. href: type: string description: Link URL. Application: type: object description: Application object. required: - name - logoId - authorName - tagline - description - permissions properties: id: type: string description: ID of the application. readOnly: true maxLength: 50 example: app_01H0HT25X7XXCJGS4H8VJSYF2Y name: description: Name of the application. type: string logoId: type: string description: File ID of the application logo. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 authorName: description: Name of the application author. type: string authorLogoId: type: - string - 'null' description: File ID of the author's logo. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 tagline: description: Tagline of the application. type: string description: description: >- Detailed application description. This field accepts markdown and simple text. type: string status: description: Status of the application. readOnly: true type: string enum: - pending-approval - available - disabled permissions: description: >- List of permissions that are available to the application. If you would like to add permissions, contact [Rebilly Support](mailto:info@rebilly.com). type: array items: type: string format: operationId enum: - DeleteApplicationInstance - GetApplicationInstanceConfiguration - GetCustomer - GetCustomerCollection - GetInvoice - GetInvoiceCollection - GetPlan - GetPlanCollection - GetProduct - GetProductCollection - GetSubscription - GetSubscriptionCollection - GetTransaction - GetTransactionCollection - GetWebhook - GetWebsite - GetWebsiteCollection - PostCoupon - PostCouponRedemption - PostGatewayAccountDowntimeSchedule - PostPayout - PostServiceCredential - PostWebhook - PostWebhookCredentialHash - PutApplicationInstanceConfiguration - PutCoupon example: - GetInvoice - GetInvoiceCollection - GetCustomer - GetCustomerCollection configurationUrl: description: >- External URL where the application is configured during installation. type: - string - 'null' format: url configuredBy: type: string description: Specifies who can configure the application. readOnly: true enum: - user - application properties: description: >- Defines settings that users can complete when they install the application. This field accepts [JSON-schema](https://json-schema.org/) drafts 4, 6, and 7. 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: 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 - applicationInstance - logoUrl - authorLogoUrl UserApplication: allOf: - $ref: '#/components/schemas/Application' - properties: _embedded: type: object description: >- Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: applicationInstance: $ref: '#/components/schemas/ApplicationInstance' OwnerApplicationInstance: allOf: - $ref: '#/components/schemas/ApplicationInstance' - type: object properties: organizationId: readOnly: true allOf: - $ref: '#/components/schemas/OrganizationId' token: description: Session token used to authenticate an organization. type: string readOnly: true 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_01HVKA5975PJBSQ1SX72G3MSZC 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 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: sub_01HRF27SATGE4Z6PBJE6PD8328 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: sub_01HRF27SATGE4Z6PBJE6PD8328 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 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_01HVKA5975PJBSQ1SX72G3MSZC 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_01HVKA5975PJBSQ1SX72G3MSZC 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' AllowedIps: description: |- List of IP addresses that are permitted access. Private subnets are prohibited. To remove restrictions, set this value to `null`. type: - array - 'null' items: type: string format: ip example: - 153.12.32.33 - 201.54.122.0/24 - 76.*.*.* - 2001:0db8:abcd:0012:0000:0000:0000:ffff - 2001:db8:abcd:12::0/64 ApiKey: type: object description: API secret Key. required: - description properties: id: type: string readOnly: true description: ID of the API key. maxLength: 50 example: api_key_0YV7JQMY6ED2FBE58BMFHBWBZH description: description: API key description. type: string type: description: Type of API key. type: string default: secret enum: - secret - publishable acl: description: >- Specify access control list here if creating a restricted API key. Send all matching permission with an empty scope to allow all permissions. $ref: '#/components/schemas/Acl' allowedIps: $ref: '#/components/schemas/AllowedIps' apiUser: description: API user name. type: string readOnly: true secretKey: description: API secret key's value. type: string readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' ChargeTransaction: type: object required: - type properties: id: type: string description: ID of the balance transaction. readOnly: true maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP type: description: Type of balance transaction. type: string readOnly: true enum: - charge parentId: description: >- ID of the parent entry if one exists. Some types of transactions relate to parent transactions. For example, a `risk-reserve` relates to a `charge`, and a `risk-reserve-release` relates a to `risk-reserve`. type: - string - 'null' maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP transactionId: description: ID of the related transaction. $ref: '#/components/schemas/TransactionId' settlementCurrency: $ref: '#/components/schemas/CurrencyCode' settlementAmount: x-type: Money x-currency-field: settlementCurrency x-sortable: true x-basic: true description: Amount of the settlement. type: - number - 'null' format: double settlementTime: description: Date and time of the expected settlement. $ref: '#/components/schemas/ServerTimestamp' settlementRate: description: |- If the settlement currency does not match the transaction currency. This field displays the exchange rate of the settlement. type: - number - 'null' format: double createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' RefundTransaction: type: object required: - type properties: id: type: string description: ID of the balance transaction. readOnly: true maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP type: description: Type of balance transaction. type: string readOnly: true enum: - refund parentId: description: >- ID of the parent entry if one exists. Some types of transactions relate to parent transactions. For example, a `risk-reserve` relates to a `charge`, and a `risk-reserve-release` relates a to `risk-reserve`. type: - string - 'null' maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP transactionId: description: ID of the related transaction. $ref: '#/components/schemas/TransactionId' settlementCurrency: $ref: '#/components/schemas/CurrencyCode' settlementAmount: x-type: Money x-currency-field: settlementCurrency x-sortable: true x-basic: true description: Amount of the settlement. type: - number - 'null' format: double settlementTime: description: Date and time of the expected settlement. $ref: '#/components/schemas/ServerTimestamp' settlementRate: description: |- If the settlement currency does not match the transaction currency. This field displays the exchange rate of the settlement. type: - number - 'null' format: double createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' BuyFeeTransaction: type: object required: - type properties: id: type: string description: ID of the balance transaction. readOnly: true maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP type: description: Type of balance transaction. type: string readOnly: true enum: - buy-fee fee: type: object properties: name: description: Name of the fee. type: string parentId: description: >- ID of the parent entry if one exists. Some types of transactions relate to parent transactions. For example, a `risk-reserve` relates to a `charge`, and a `risk-reserve-release` relates a to `risk-reserve`. type: - string - 'null' maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP transactionId: description: ID of the related transaction. $ref: '#/components/schemas/TransactionId' settlementCurrency: $ref: '#/components/schemas/CurrencyCode' settlementAmount: x-type: Money x-currency-field: settlementCurrency x-sortable: true x-basic: true description: Amount of the settlement. type: - number - 'null' format: double settlementTime: description: Date and time of the expected settlement. $ref: '#/components/schemas/ServerTimestamp' settlementRate: description: |- If the settlement currency does not match the transaction currency. This field displays the exchange rate of the settlement. type: - number - 'null' format: double createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' SellFeeTransaction: type: object required: - type properties: id: type: string description: ID of the balance transaction. readOnly: true maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP type: description: Type of balance transaction. type: string readOnly: true enum: - sell-fee fee: type: object properties: name: description: Name of the fee. type: string parentId: description: >- ID of the parent entry if one exists. Some types of transactions relate to parent transactions. For example, a `risk-reserve` relates to a `charge`, and a `risk-reserve-release` relates a to `risk-reserve`. type: - string - 'null' maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP transactionId: description: ID of the related transaction. $ref: '#/components/schemas/TransactionId' settlementCurrency: $ref: '#/components/schemas/CurrencyCode' settlementAmount: x-type: Money x-currency-field: settlementCurrency x-sortable: true x-basic: true description: Amount of the settlement. type: - number - 'null' format: double settlementTime: description: Date and time of the expected settlement. $ref: '#/components/schemas/ServerTimestamp' settlementRate: description: |- If the settlement currency does not match the transaction currency. This field displays the exchange rate of the settlement. type: - number - 'null' format: double createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' RiskReserveTransaction: type: object required: - type properties: id: type: string description: ID of the balance transaction. readOnly: true maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP type: description: Type of balance transaction. type: string readOnly: true enum: - risk-reserve riskReserve: type: object properties: releaseTime: description: Time of risk reserve release. type: - string - 'null' format: date-time readOnly: true parentId: description: >- ID of the parent entry if one exists. Some types of transactions relate to parent transactions. For example, a `risk-reserve` relates to a `charge`, and a `risk-reserve-release` relates a to `risk-reserve`. type: string maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP transactionId: description: ID of the related transaction. $ref: '#/components/schemas/TransactionId' settlementCurrency: $ref: '#/components/schemas/CurrencyCode' settlementAmount: x-type: Money x-currency-field: settlementCurrency x-sortable: true x-basic: true description: Amount of the settlement. type: - number - 'null' format: double settlementTime: description: Date and time of the expected settlement. $ref: '#/components/schemas/ServerTimestamp' settlementRate: description: |- If the settlement currency does not match the transaction currency. This field displays the exchange rate of the settlement. type: - number - 'null' format: double createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' RiskReserveReleaseTransaction: type: object required: - type properties: id: type: string description: ID of the balance transaction. readOnly: true maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP type: description: Type of balance transaction. type: string readOnly: true enum: - risk-reserve-release parentId: description: >- ID of the parent entry if one exists. Some types of transactions relate to parent transactions. For example, a `risk-reserve` relates to a `charge`, and a `risk-reserve-release` relates a to `risk-reserve`. type: string maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP transactionId: description: ID of the related transaction. $ref: '#/components/schemas/TransactionId' settlementCurrency: $ref: '#/components/schemas/CurrencyCode' settlementAmount: x-type: Money x-currency-field: settlementCurrency x-sortable: true x-basic: true description: Amount of the settlement. type: - number - 'null' format: double settlementTime: description: Date and time of the expected settlement. $ref: '#/components/schemas/ServerTimestamp' settlementRate: description: |- If the settlement currency does not match the transaction currency. This field displays the exchange rate of the settlement. type: - number - 'null' format: double createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' ReverseTransaction: type: object required: - type properties: id: type: string description: ID of the balance transaction. readOnly: true maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP type: description: Type of balance transaction. type: string readOnly: true enum: - reverse parentId: description: >- ID of the parent entry if one exists. Some types of transactions relate to parent transactions. For example, a `risk-reserve` relates to a `charge`, and a `risk-reserve-release` relates a to `risk-reserve`. type: string maxLength: 50 example: btxn_0YVCNJYRXTDDQ9QF2Z60ZA05WP transactionId: description: ID of the related transaction. $ref: '#/components/schemas/TransactionId' settlementCurrency: $ref: '#/components/schemas/CurrencyCode' settlementAmount: x-type: Money x-currency-field: settlementCurrency x-sortable: true x-basic: true description: Amount of the settlement. type: - number - 'null' format: double settlementTime: description: Date and time of the expected settlement. $ref: '#/components/schemas/ServerTimestamp' settlementRate: description: |- If the settlement currency does not match the transaction currency. This field displays the exchange rate of the settlement. type: - number - 'null' format: double createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' BalanceTransaction: type: object title: Balance transaction discriminator: propertyName: type mapping: charge: '#/components/schemas/ChargeTransaction' refund: '#/components/schemas/RefundTransaction' buy-fee: '#/components/schemas/BuyFeeTransaction' sell-fee: '#/components/schemas/SellFeeTransaction' risk-reserve: '#/components/schemas/RiskReserveTransaction' risk-reserve-release: '#/components/schemas/RiskReserveReleaseTransaction' reverse: '#/components/schemas/ReverseTransaction' oneOf: - $ref: '#/components/schemas/ChargeTransaction' - $ref: '#/components/schemas/RefundTransaction' - $ref: '#/components/schemas/BuyFeeTransaction' - $ref: '#/components/schemas/SellFeeTransaction' - $ref: '#/components/schemas/RiskReserveTransaction' - $ref: '#/components/schemas/RiskReserveReleaseTransaction' - $ref: '#/components/schemas/ReverseTransaction' BillingPortal: type: object required: - websiteId - slug - name properties: id: type: string description: ID of the billing portal. readOnly: true maxLength: 50 example: bill_prt_0YV7K5TYV5D1P9ZNKDT39KZC3C websiteId: $ref: '#/components/schemas/WebsiteId' slug: description: >- Path segment that is appended to the billing portal URL to help make it human-readable. Example: `https://example.com/billing-portal/{slug}`. type: string minLength: 5 maxLength: 100 name: description: >- Billing portal name. This name is for internal use and helps you to organize and differentiate billing portals. This value is not displayed to your customers. type: string customDomain: description: |- Custom domain for the billing portal. The default domain is: `portal.secure-payments.app`. type: - string - 'null' maxLength: 255 features: description: Features that can be enabled for the billing portal. type: object properties: authenticateWithPassword: description: Specifies if a customer can authenticate with a password. type: boolean default: true orderCancel: description: Specifies if a customer can cancel an order. type: boolean default: true orderAddressEdit: description: Specifies if a customer can change an order address. type: boolean default: true paymentInstrumentAdd: description: Specifies if a customer can add a new payment instrument. type: boolean default: true paymentInstrumentUpdate: description: Specifies if a customer can update their payment instruments. type: boolean default: true paymentInstrumentDeactivate: description: Specifies if a customer can disable their payment instruments. type: boolean default: true customization: description: Visual customization options for the billing portal. type: object properties: logoId: type: - string - 'null' description: File ID of the billing portal logo. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 colors: description: Various colors used in the billing portal. type: object properties: primary: description: Primary color for the billing portal in hexadecimal format. type: string maxLength: 6 default: 0044d4 secondary: description: >- Secondary color for the billing portal in hexadecimal format. type: string maxLength: 6 default: ffffff links: description: URLs that are displayed in the billing portal. type: object properties: refundPolicy: description: Website refund policy URL. type: - string - 'null' format: url privacyPolicy: description: Website privacy policy URL. type: - string - 'null' format: url termsOfService: description: Website terms of service URL. type: - string - 'null' format: url status: description: |- Status of the billing portal. If the status is `inactive`, the billing portal URL results in a 404 error. type: string enum: - active - inactive default: active createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' BroadcastMessage: type: object required: - startSendingTime - messages properties: id: type: string description: ID of the broadcast message. readOnly: true maxLength: 50 example: mail_bcst_0YV8XW5EXWDVEAP64XP8CY2X40 filter: type: - string - 'null' description: >- Use this filter to select customers during broadcast message processing. This field uses the same syntax as the `query` filter, but without the `filter=` prefix. Examples: `firstName:John`, `firstName:John;lastName:Doe`. > **Important**: Do not URL encode the filter value. example: firstName:John;lastName:Doe title: type: string description: Title of the message. This title displays in reports. messages: type: array description: List of messages. minItems: 1 items: type: object properties: id: type: string format: uuid description: ID of the message. version: type: string description: >- Version number of the message. Use this field to distinguish between multiple messages by name and version number. If there are no versions, this field is empty. weight: type: integer description: >- Weight distribution value that is assigned to a template for a split test. Each template in a split test can be assigned a weight. The higher the weight value, the more likely the message template is used. The split test algorithm does not assess locale when making a weighted template selection. minimum: 0 maximum: 100 example: 75 default: 100 templates: description: >- Split test templates. Use split tests to determine which content is most effective. Split tests send variations of the same message to different customers or leads. You can then send the winning message to the remaining customers or leads. type: array minItems: 1 items: type: object properties: from: type: string description: >- Email address of the sender. > **Important:** This value must be a verified email address. To verify an email address: 1. [Create an email delivery setting](https://www.rebilly.com/catalog/all/email-delivery-settings/postemaildeliverysetting/). In the response, you receive the email and a token. 1. [Verify the email delivery](https://www.rebilly.com/catalog/all/email-delivery-settings/putemaildeliverysettingsverification/) by passing the token as the path parameter. maxLength: 254 example: example@example.com subject: type: string description: >- Subject of the message. The use of template placeholders is permitted for this field. maxLength: 998 example: Demonstration subject text: type: string description: >- Text body of the message. To use content from the `html` field, leave this field empty. The use of template placeholders is permitted for this field. example: Demonstration text html: type: string description: >- HTML body of the message. To use content from the `text` field, leave this field empty. The use of template placeholders is permitted for this field. example:

Demonstration text

locale: type: string description: >- Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format. example: fr-FR required: - from - subject - text - html - locale required: - templates splitTestStartTime: readOnly: true type: - string - 'null' format: date-time description: Date and time when the split test messages are scheduled to send. startSendingTime: type: string format: date-time description: Date and time when the message is scheduled to send. status: readOnly: true type: string description: Status of the broadcast message. enum: - draft - sending - sent - archived createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' 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' CheckoutFormFixedPlan: title: Fixed quantity type: object required: - planId - type - quantity properties: planId: type: string description: ID of the plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X type: description: |- Type of plan. If this value is set to `fixed`, customers cannot choose the plan quantity. If this value is set to `variable`, customers can choose the plan quantity. type: string enum: - fixed quantity: description: Quantity of the plan. type: integer minimum: 1 CheckoutFormVariablePlan: title: Variable quantity type: object required: - planId - type - quantity properties: planId: type: string description: ID of the plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X type: description: |- Type of plan. If this value is set to `variable`, customers can choose the plan quantity. If this value is set to `fixed`, customers cannot choose the plan quantity. type: string enum: - variable quantity: description: Default plan quantity. type: integer minimum: description: Minimum plan quantity. type: integer minimum: 1 default: 1 multipleOf: description: Multiple by which the plan quantity increases. type: integer minimum: 1 default: 1 maximum: description: Maximum plan quantity. type: integer minimum: 1 default: 100 CheckoutFormPlan: type: object discriminator: propertyName: type mapping: fixed: '#/components/schemas/CheckoutFormFixedPlan' variable: '#/components/schemas/CheckoutFormVariablePlan' oneOf: - $ref: '#/components/schemas/CheckoutFormFixedPlan' - $ref: '#/components/schemas/CheckoutFormVariablePlan' CheckoutForm: type: object required: - name - websiteId - plans properties: id: type: string description: ID of the checkout form. readOnly: true maxLength: 50 example: chkt_frm_0YV8XZ6174C2MBS5011SAZNMBP websiteId: $ref: '#/components/schemas/WebsiteId' customDomain: description: Custom domain for the checkout form. type: - string - 'null' maxLength: 255 plans: type: array description: >- List of plans that are applied to a customer order by default. Plans describe how the customer must pay for products. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/). minItems: 1 items: $ref: '#/components/schemas/CheckoutFormPlan' addonPlans: type: array description: >- List of add-on plans that are displayed to the customer on the payment screen. Add-ons are plans that the customer has not already subscribed to. The customer selects whether to add an add-on plan to their current order. default: [] items: $ref: '#/components/schemas/CheckoutFormPlan' bumpPlans: type: array description: >- List of bump plans that are displayed to the customer on the payment screen. Use bump plans to offer purchase bonuses, discounts, and deals to the customer. The customer selects whether to purchase bump plans, or to use the plans that are specified in their current order. default: [] items: $ref: '#/components/schemas/CheckoutFormPlan' accountsEnabled: description: >- Specifies if the account is enabled. If this value is `true`, the customer can sign-up and sign-in using the checkout form. type: boolean default: false couponsEnabled: description: >- Specifies if coupons are enabled in the checkout form. If this value is `true`, the customer can use coupons in the checkout form. Use coupons to reward customers, generate sales, or to test new pricing strategies. type: boolean default: false purchaseLimit: description: >- Limits the number of purchases that can be made using a specific checkout form. If a purchase limit value is set, each purchase decreases this value. When the purchases limit value reaches zero, the checkout form becomes inactive. type: - integer - 'null' minimum: 0 default: null paymentMethods: description: |- List of available payment methods. Payment methods must have at least one active gateway account. If not specified, all available payment methods are displayed. type: array items: $ref: '#/components/schemas/PaymentMethod' customization: description: Visual customization options for the checkout form. type: object properties: logoId: description: ID of the linked file object. type: - string - 'null' maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N summary: description: Summary text. type: - string - 'null' buttonText: description: >- Button text. Use the `{{amount}}` placeholder to display the checkout form total. type: string default: Pay {{amount}} colors: description: Primary color used in the checkout form and button text. type: object properties: primary: description: Primary color for the checkout form in hexadecimal format. type: string maxLength: 6 default: 0044d4 buttonText: description: >- Button text color for the checkout form in hexadecimal format. type: string maxLength: 6 default: ffffff links: description: URLs that are displayed on the checkout form. type: object properties: refundPolicy: description: Website refund policy URL. type: - string - 'null' format: url privacyPolicy: description: Website privacy policy URL. type: - string - 'null' format: url termsOfService: description: Website terms of service URL. type: - string - 'null' format: url tracking: description: Tracking system IDs. type: object properties: googleAnalytics: description: Google Analytics tracking ID. type: - string - 'null' example: UA-XXXXX-YY googleTagManager: description: Google Tag Manager tracking ID. type: - string - 'null' example: GTM-XXXXX gtagJs: description: >- Google Analytics tracking ID. This value is used by Google Global Site Tag (gtag.js) service. type: - string - 'null' example: UA-XXXXX-YY facebookPixel: description: Facebook Pixel tracking ID. type: - string - 'null' example: '1234567890' segmentAnalytics: description: Segment Analytics tracking ID. type: - string - 'null' example: '1234567890' heapIo: description: Heap.io tracking ID. type: - string - 'null' example: '1234567890' requiredAdditionalFields: description: List of required fields. type: array items: type: string example: - information.companyName - information.phoneNumber name: description: >- Name of the checkout form. This name value is for internal display, and is not visible to your customers. Use this name to locate and organize your checkout forms. type: string status: description: |- Status of the checkout form. If the `status` value is `inactive`, the checkout form URL produces a 404 error. type: string enum: - active - inactive default: active 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 - preview SmtpAuthorizationNone: type: object required: - type properties: type: type: string enum: - none default: none SmtpAuthorizationCramMd5: type: object properties: username: description: Authentication username. type: string password: description: Authentication password. type: string format: password type: type: string enum: - cram-md5 default: none required: - username - password - type SmtpAuthorizationLogin: type: object properties: username: description: Authentication username. type: string password: description: Authentication password. type: string format: password type: type: string enum: - login default: none required: - username - password - type SmtpAuthorizationPlain: type: object properties: username: description: Authentication username. type: string password: description: Authentication password. type: string format: password type: type: string enum: - plain default: none required: - username - password - type SmtpAuthorization: type: object description: Authentication type and details. discriminator: propertyName: type mapping: none: '#/components/schemas/SmtpAuthorizationNone' cram-md5: '#/components/schemas/SmtpAuthorizationCramMd5' login: '#/components/schemas/SmtpAuthorizationLogin' plain: '#/components/schemas/SmtpAuthorizationPlain' oneOf: - $ref: '#/components/schemas/SmtpAuthorizationNone' - $ref: '#/components/schemas/SmtpAuthorizationCramMd5' - $ref: '#/components/schemas/SmtpAuthorizationLogin' - $ref: '#/components/schemas/SmtpAuthorizationPlain' SmtpCredential: type: object description: SMTP credential. required: - host - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - smtp host: type: string description: SMTP host name. port: type: integer description: SMTP port value. minimum: 1 maximum: 65535 default: 25 encryption: type: string description: Encryption value. enum: - none - tls - ssl default: none auth: $ref: '#/components/schemas/SmtpAuthorization' _links: $ref: '#/components/schemas/SelfLink' WebhookAuthorizationNone: type: object properties: type: type: string description: Type of authorization. enum: - none default: none required: - type WebhookAuthorizationBasic: type: object properties: type: type: string description: Type of authorization. enum: - basic default: none username: description: Authentication username. type: string password: description: Authentication password. type: string format: password required: - username - password - type WebhookAuthorizationDigest: type: object properties: type: type: string description: Type of authorization. enum: - digest default: none username: description: Authentication username. type: string password: description: Authentication password. type: string format: password required: - username - password - type WebhookAuthorizationOAuth1: type: object properties: type: type: string description: Type of authorization. enum: - oauth1 default: none consumerKey: description: Consumer key. type: string consumerSecret: description: Customer secret. type: string token: description: Authentication token. type: string tokenSecret: description: Secret token. type: string required: - consumerKey - consumerSecret - token - tokenSecret - type WebhookAuthorization: type: object description: Authentication type and details. discriminator: propertyName: type mapping: none: '#/components/schemas/WebhookAuthorizationNone' basic: '#/components/schemas/WebhookAuthorizationBasic' digest: '#/components/schemas/WebhookAuthorizationDigest' oauth1: '#/components/schemas/WebhookAuthorizationOAuth1' oneOf: - $ref: '#/components/schemas/WebhookAuthorizationNone' - $ref: '#/components/schemas/WebhookAuthorizationBasic' - $ref: '#/components/schemas/WebhookAuthorizationDigest' - $ref: '#/components/schemas/WebhookAuthorizationOAuth1' WebhookCredential: type: object description: Webhook credential. properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - webhook host: type: string description: Name of the host. auth: $ref: '#/components/schemas/WebhookAuthorization' required: - host - type ExperianCredential: type: object description: >- Experian integration provides identity verification. For more information, see [Experian integration](https://www.rebilly.com/docs/automations/experian-integration/#experian-integration). required: - username - password - hmacKey - publicKey - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - experian username: type: string description: Username of the Experian account. password: type: string description: Password of the Experian account. format: password hmacKey: type: string description: >- HMAC key that is used to generate the signature for Experian requests. format: password example: PxOclToLSxW4oAB5N5HSdfoslyEWuvfkLjfHeNG2aZY~ publicKey: type: string description: >- HMAC public key that is included in the signature for Experian requests. example: 8831AA5552FE10CD _links: $ref: '#/components/schemas/SelfLink' MailgunCredential: type: object description: Mailgun credential. required: - emailFrom - apiKey - domain - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - mailgun emailFrom: type: string format: email description: Address from which emails are sent. apiKey: type: string description: Mailgun API key. domain: type: string description: Mailgun domain. _links: $ref: '#/components/schemas/SelfLink' OAuth2Credential: type: object description: OAuth2 credential. required: - code - scopes - service - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - oauth2 service: description: Name of the service to which the OAuth2 credential relates. type: string enum: - google-sheets - keap-infusionsoft - intuit-quickbooks code: description: OAuth2 code provided by the authentication server. type: string example: 2/smAHUUr9jOxw_IOp47Y_dH1r2Y accessToken: description: OAuth2 access token. readOnly: true type: string example: >- zw34.PltIPtJZHmEgZS9R4RoGpzaRrJd5MYjZIONQ2MjWSCj7N7Iqp9BXXFIbkhDRfAPs6cB1pKtTjLUgb3ofzgHUprJfnRiMDTnB_yPMK7vtgobCX4SUs7fhrR6bdApq refreshToken: description: OAuth2 refresh token. readOnly: true type: string example: 2/4DPERp2EiySF6JUIOTS4jM5f0JmLG2gPcpGaWYTGU94 scopes: description: List of URLs that are granted OAuth2 access. type: array items: type: string example: - https://www.googleapis.com/auth/drive.metadata.readonly _links: $ref: '#/components/schemas/SelfLink' PostmarkCredential: type: object description: Postmark credential. required: - serverApiToken - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - postmark serverApiToken: type: string description: Postmark server API token. example: dd0508z9-2291-6794-3376-z0a70g12eqm9 _links: $ref: '#/components/schemas/SelfLink' SendGridCredential: type: object description: SendGrid credential. required: - apiKey - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - sendgrid apiKey: type: string description: SendGrid API key. example: >- SO.WFbRlSWUQJSb40eny4RuZQ.7liHLZ4l1jaPCgbu02b-aGH-bo4RB8z9fK3aUd1heeL _links: $ref: '#/components/schemas/SelfLink' SESCredential: type: object description: Amazon Web Services (AWS) Simple Email Service (SES) credential. required: - key - secret - region - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - aws-ses key: type: string description: ID of the AWS access key. example: BWITYO4UARGDLMFY6UDP secret: type: string description: Secret AWS access key. example: 8D34yYHOK9+yM7pDnNUO3UTO/5b8Wy/PGNyzTRmG region: type: string description: AWS region name. example: us-west-2 configurationSetName: type: string description: Name of configuration set from which emails are sent. example: SpecialConfigurationSet _links: $ref: '#/components/schemas/SelfLink' TaxJarCredential: type: object description: >- TaxJar integration enables you to calculate taxes and create transactions for the Sales Tax AutoFile feature in your TaxJar account. For more information, see [TaxJar integration](https://www.rebilly.com/docs/automations/tax-jar-integration/#taxjar-integration). required: - apiToken - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - taxjar apiToken: type: string description: TaxJar API token. format: password example: 0ab15e3c1cc608b6f592fbddaddeb8f2 omitFromAddress: type: boolean description: >- Specifies if `from_` address fields must be omitted in TaxJar request. For more information, see [TaxJar API guide](https://developers.taxjar.com/api/guides/#when-to-use-from_-address-information). default: false example: false _links: $ref: '#/components/schemas/SelfLink' AvalaraCredential: type: object description: >- Avalara integration enables you to calculate taxes and create transactions in your Avalara account. required: - licenseKey - accountId - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - avalara licenseKey: type: string description: Avalara license key. format: password example: 0ab15e3c1cc608b6f592fbddaddeb8f2 accountId: type: string description: ID of the Avalara account. example: a1b2c3d4e5f6 _links: $ref: '#/components/schemas/SelfLink' PlaidCredential: type: object description: >- Plaid integration provides customer bank credential verification, and simplifies the process of providing credentials for your customers. For more information, see [Plaid integration](https://www.rebilly.com/docs/automations/plaid-integration/). required: - clientId - secretToken - type properties: id: type: string description: ID of the credential. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH hash: deprecated: true type: string description: ID of the credential. Use `id` field instead. readOnly: true maxLength: 36 example: crd_0YV9Y706QGCB39FQD380G1ZHZH status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. deactivationTime: description: Date and time when the credential is deactivated. type: - string - 'null' format: date-time readOnly: true type: description: Type of credential. type: string readOnly: true enum: - plaid websiteId: type: string description: |- ID of the website that is assigned to the Plaid account. If this value is not set, credentials are for all websites. maxLength: 50 example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG clientId: type: string description: ID of the Plaid client. example: 5efc712byyf502zz11f9bexx secretToken: type: string description: Plaid secret token. format: password example: d184cfdgdb4597dfsa9365f59356b useStripe: type: boolean description: |- Specifies if a Stripe integration is enabled for the Plaid account. This setting enables the creation of Stripe bank account tokens. default: false example: true _links: $ref: '#/components/schemas/SelfLink' ServiceCredential: discriminator: propertyName: type mapping: smtp: '#/components/schemas/SmtpCredential' webhook: '#/components/schemas/WebhookCredential' experian: '#/components/schemas/ExperianCredential' mailgun: '#/components/schemas/MailgunCredential' oauth2: '#/components/schemas/OAuth2Credential' postmark: '#/components/schemas/PostmarkCredential' sendgrid: '#/components/schemas/SendGridCredential' aws-ses: '#/components/schemas/SESCredential' taxjar: '#/components/schemas/TaxJarCredential' avalara: '#/components/schemas/AvalaraCredential' plaid: '#/components/schemas/PlaidCredential' oneOf: - $ref: '#/components/schemas/SmtpCredential' - $ref: '#/components/schemas/WebhookCredential' - $ref: '#/components/schemas/ExperianCredential' - $ref: '#/components/schemas/MailgunCredential' - $ref: '#/components/schemas/OAuth2Credential' - $ref: '#/components/schemas/PostmarkCredential' - $ref: '#/components/schemas/SendGridCredential' - $ref: '#/components/schemas/SESCredential' - $ref: '#/components/schemas/TaxJarCredential' - $ref: '#/components/schemas/AvalaraCredential' - $ref: '#/components/schemas/PlaidCredential' PatchServiceCredential: type: object required: - status properties: status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. PatchPlaidCredential: type: object description: Plaid credential. properties: status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. websiteId: type: string description: |- ID of the website that is assigned to the Plaid account. If this value is not set, credentials are for all websites. maxLength: 50 example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG clientId: type: string description: ID of the Plaid client. example: 5efc712byyf502zz11f9bexx secretToken: type: string description: Plaid secret token. format: password example: d184cfdgdb4597dfsa9365f59356b useStripe: type: boolean description: |- Specifies if a Stripe integration is enabled for the Plaid account. This setting enables the creation of Stripe bank account tokens. default: false example: true PatchTaxJarCredential: type: object description: TaxJar credential. required: - status properties: status: description: Status of the credential. type: string enum: - active - inactive - deactivated x-enumDescriptions: active: Credential is active and can be used. inactive: >- Credential is temporarily inactivated and cannot be used until reactivated. deactivated: Credential is permanently deactivated and cannot be reactivated. omitFromAddress: type: boolean description: >- Specifies if `from_` address fields must be omitted in TaxJar request. For more information, see [TaxJar API guide](https://developers.taxjar.com/api/guides/#when-to-use-from_-address-information). example: false GoogleSpreadsheet: type: object properties: id: description: ID of the Google Spreadsheet. readOnly: true type: string example: 2ytkMntAC2Ke7aIgpaOBjz9IORRlNRjwFqO7KvyNam3B name: readOnly: true description: Name of the Google Spreadsheet. type: string example: Spreadsheet 1 CustomDomain: type: object required: - domain properties: id: description: ID of the custom domain. type: string maxLength: 255 readOnly: true domain: description: Fully qualified domain name. type: string maxLength: 255 isVerified: description: True if the domain is verified by Rebilly. type: boolean readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' EmailDeliverySetting: type: object required: - from - name properties: id: type: string description: ID of the email delivery setting. readOnly: true maxLength: 50 example: mail_dst_0YVCNQV8PSCERAJ7N1V4WWPZN2 from: description: >- Email address of the sender. > **Important:** This email address must be unique within your account. type: string format: email maxLength: 254 example: from-example@rebilly.com name: description: Name of the sender. type: string example: John Doe status: description: Status of the email message. readOnly: true type: string enum: - pending - verified credentialId: type: - string - 'null' description: ID of the SMTP or Email Service Provider (ESP) credential. example: b120c2ca-6c2b-4690-9dff-3b0d87852dc7 provider: readOnly: true description: Email service provider name. type: string enum: - rebilly - smtp - aws-ses - mailgun - postmark - sendgrid example: rebilly isDefault: type: boolean description: Specifies if the email delivery setting is used by default. default: false createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' EmailMessage: type: object required: - from - to - subject - text - html properties: id: type: string description: ID of the email message. readOnly: true maxLength: 50 example: mail_msg_0YVCNR8ZRBCVMAX28DP4XRFZVA status: description: Status of the email message. type: string enum: - draft - outbox - sending - sent - failed default: draft metadata: description: Metadata associated with the email message. type: - object - 'null' additionalProperties: type: string example: eventType: subscription-canceled credentialHash: type: - string - 'null' description: ID of the SMTP or Email Service Provider (ESP) credential. example: b120c2ca-6c2b-4690-9dff-3b0d87852dc7 from: description: Email address of the sender. type: string format: email maxLength: 254 example: from-example@rebilly.com to: description: List of email addresses to which the email message is sent. type: array minItems: 1 items: type: string format: email maxLength: 254 example: - to-example@rebilly.com cc: description: List of CC email addresses to which the email message is sent. type: array items: type: string format: email maxLength: 254 example: - cc-example@rebilly.com bcc: description: List of BCC email addresses to which the email message is sent. type: array items: type: string format: email maxLength: 254 example: - cc-example@rebilly.com subject: description: Subject of the email message. type: string maxLength: 998 example: Welcome dear customer! text: description: Body of the email message in plain text. type: string example: Email message text body html: description: Body of the email message in HTML format. type: string example:

Email message html body

attachments: description: Attachments of the email message. type: array items: type: object required: - resourceType - resourceId properties: resourceType: description: Type of attachment resource. type: string example: invoice resourceId: type: string description: ID of the attachment resource. maxLength: 50 example: att_0YV7J787J0DW0918MQQMDHWA7M responseCode: type: - integer - 'null' description: >- Status code returned by a mail service after an attempt to send email. readOnly: true example: 250 responseBody: type: - string - 'null' description: >- Body of response returned by a mail service after an attempt to send email. readOnly: true initiatedTime: type: - string - 'null' description: Date and time when the email is initiated. format: date-time readOnly: true sentTime: type: - string - 'null' description: Date and time when the email is sent. format: date-time readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' 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 EmailNotification: type: object description: Email notification event. readOnly: true properties: eventType: $ref: '#/components/schemas/EventType' count: type: integer readOnly: true description: Total number of binds with `send-email` actions per event. notifications: readOnly: true type: array description: List of notifications. items: type: object properties: labels: description: Labels of the notification. type: array items: type: string title: type: string description: Title of the notification. _links: $ref: '#/components/schemas/SelfLink' SystemEvent: type: object description: Application event. readOnly: true properties: eventType: $ref: '#/components/schemas/EventType' title: description: Title of the system event. type: string description: description: Description of the system event. type: string category: description: Category of system event. type: string enum: - billing - payments rulesCount: description: >- Total number of rules associated with the system event. A rule is a configuration of an event and one or more actions. A rule can be configured to stop subsequent rules in the event list from being executed. type: integer readOnly: true bindsCount: description: |- Total number of binds associated with the system event. A bind is a configuration of an event and one or more actions. 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 - history - rules RuleAction: type: object discriminator: propertyName: name mapping: abandon-scheduled-payments: '#/components/schemas/RuleActionAbandonScheduledPayments' add-risk-score: '#/components/schemas/RuleActionAddRiskScore' adjust-ready-to-pay: '#/components/schemas/RuleActionAdjustReadyToPay' adjust-ready-to-payout: '#/components/schemas/RuleActionAdjustReadyToPayout' blocklist: '#/components/schemas/RuleActionAddBlockList' cancel-scheduled-payments: '#/components/schemas/RuleActionCancelScheduledPayments' create-intuit-quickbooks-balance-transaction-entry: >- #/components/schemas/RuleActionCreateIntuitQuickbooksBalanceTransactionEntry create-intuit-quickbooks-invoice: '#/components/schemas/RuleActionCreateIntuitQuickbooksInvoice' create-intuit-quickbooks-payment: '#/components/schemas/RuleActionCreateIntuitQuickbooksPayment' create-intuit-quickbooks-refund-receipt: '#/components/schemas/RuleActionCreateIntuitQuickbooksRefundReceipt' create-intuit-quickbooks-revenue-recognition-entry: >- #/components/schemas/RuleActionCreateIntuitQuickbooksRevenueRecognitionEntry create-keap-infusionsoft-order: '#/components/schemas/RuleActionCreateInfusionsoftOrder' create-keap-infusionsoft-payment: '#/components/schemas/RuleActionCreateInfusionsoftPayment' decline-transaction: '#/components/schemas/RuleActionDeclineTransaction' check-ontario-restriction: '#/components/schemas/RuleActionCheckOntarioRestriction' display-message: '#/components/schemas/RuleActionDisplayMessage' display-other-choices: '#/components/schemas/RuleActionDisplayOtherChoices' guess-payment-card-expiration: '#/components/schemas/RuleActionGuessPaymentCardExpiration' offer-purchase-bump: '#/components/schemas/RuleActionOfferPurchaseBump' perform-experian-check: '#/components/schemas/RuleActionPerformExperianCheck' pick-gateway-account: '#/components/schemas/RuleActionPickGatewayAccount' remove-reminder: '#/components/schemas/RuleActionRemoveReminder' request-kyc: '#/components/schemas/RuleActionRequestKyc' reset-reminder: '#/components/schemas/RuleActionResetReminder' schedule-invoice-retry: '#/components/schemas/RuleActionScheduleInvoiceRetry' schedule-payment: '#/components/schemas/RuleActionSchedulePayment' schedule-reminder: '#/components/schemas/RuleActionScheduleReminder' send-email: '#/components/schemas/RuleActionSendEmail' stop-subscriptions: '#/components/schemas/RuleActionStopSubscriptions' tag-or-untag-customer: '#/components/schemas/RuleActionTagOrUntagCustomer' update-intuit-quickbooks-invoice: '#/components/schemas/RuleActionUpdateIntuitQuickbooksInvoice' void-intuit-quickbooks-invoice: '#/components/schemas/RuleActionVoidIntuitQuickbooksInvoice' properties: name: type: string description: Name of the action. enum: - abandon-scheduled-payments - add-risk-score - adjust-ready-to-pay - blocklist - cancel-scheduled-payments - create-intuit-quickbooks-balance-transaction-entry - create-intuit-quickbooks-invoice - create-intuit-quickbooks-payment - create-intuit-quickbooks-refund-receipt - create-intuit-quickbooks-revenue-recognition-entry - create-keap-infusionsoft-order - create-keap-infusionsoft-payment - decline-transaction - check-ontario-restriction - display-message - display-other-choices - guess-payment-card-expiration - offer-purchase-bump - perform-experian-check - pick-gateway-account - remove-reminder - request-kyc - reset-reminder - schedule-invoice-retry - schedule-payment - schedule-reminder - send-email - stop-subscriptions - tag-or-untag-customer - update-intuit-quickbooks-invoice - void-intuit-quickbooks-invoice status: description: Status of the action. type: string default: active enum: - active - inactive required: - name RuleActionAbandonScheduledPayments: description: >- Abandon scheduled payments for an order that exceeds the configured delinquency period. allOf: - $ref: '#/components/schemas/RuleAction' RuleActionAddRiskScore: allOf: - $ref: '#/components/schemas/RuleAction' - type: object description: Add risk score. properties: score: type: integer default: 0 AdjustReadyToPayPaymentCard: type: object title: Payment card properties: paymentMethod: type: string enum: - payment-card feature: type: - string - 'null' description: Name of the feature. enum: - Apple Pay - Google Pay AdjustReadyToPayAch: type: object title: ACH properties: paymentMethod: type: string enum: - ach feature: type: - string - 'null' description: Feature name. enum: - Plaid AdjustReadyToPayPaypal: type: object title: PayPal properties: paymentMethod: type: string enum: - paypal feature: type: - string - 'null' description: Feature name. enum: - PayPal billing agreement AdjustReadyToPayGeneric: type: object title: Generic properties: paymentMethod: description: Payment method of the payment instrument. allOf: - $ref: '#/components/schemas/AlternativePaymentMethods' - not: enum: - paypal feature: type: - string - 'null' AdjustPaymentMethod: type: object required: - paymentMethod - feature discriminator: propertyName: paymentMethod mapping: payment-card: '#/components/schemas/AdjustReadyToPayPaymentCard' ach: '#/components/schemas/AdjustReadyToPayAch' paypal: '#/components/schemas/AdjustReadyToPayPaypal' cash: '#/components/schemas/AdjustReadyToPayGeneric' check: '#/components/schemas/AdjustReadyToPayGeneric' AdvCash: '#/components/schemas/AdjustReadyToPayGeneric' Alfa-click: '#/components/schemas/AdjustReadyToPayGeneric' Alipay: '#/components/schemas/AdjustReadyToPayGeneric' AstroPay Card: '#/components/schemas/AdjustReadyToPayGeneric' AstroPay-GO: '#/components/schemas/AdjustReadyToPayGeneric' BankReferenced: '#/components/schemas/AdjustReadyToPayGeneric' bank-transfer: '#/components/schemas/AdjustReadyToPayGeneric' bank-transfer-2: '#/components/schemas/AdjustReadyToPayGeneric' bank-transfer-3: '#/components/schemas/AdjustReadyToPayGeneric' bank-transfer-4: '#/components/schemas/AdjustReadyToPayGeneric' bank-transfer-5: '#/components/schemas/AdjustReadyToPayGeneric' bank-transfer-6: '#/components/schemas/AdjustReadyToPayGeneric' bank-transfer-7: '#/components/schemas/AdjustReadyToPayGeneric' bank-transfer-8: '#/components/schemas/AdjustReadyToPayGeneric' bank-transfer-9: '#/components/schemas/AdjustReadyToPayGeneric' Baloto: '#/components/schemas/AdjustReadyToPayGeneric' Beeline: '#/components/schemas/AdjustReadyToPayGeneric' Belfius-direct-net: '#/components/schemas/AdjustReadyToPayGeneric' bitcoin: '#/components/schemas/AdjustReadyToPayGeneric' Bizum: '#/components/schemas/AdjustReadyToPayGeneric' Boleto: '#/components/schemas/AdjustReadyToPayGeneric' cash-deposit: '#/components/schemas/AdjustReadyToPayGeneric' CASHlib: '#/components/schemas/AdjustReadyToPayGeneric' CashToCode: '#/components/schemas/AdjustReadyToPayGeneric' China UnionPay: '#/components/schemas/AdjustReadyToPayGeneric' Cleo: '#/components/schemas/AdjustReadyToPayGeneric' CODVoucher: '#/components/schemas/AdjustReadyToPayGeneric' Conekta-oxxo: '#/components/schemas/AdjustReadyToPayGeneric' Cupon-de-pagos: '#/components/schemas/AdjustReadyToPayGeneric' cryptocurrency: '#/components/schemas/AdjustReadyToPayGeneric' domestic-cards: '#/components/schemas/AdjustReadyToPayGeneric' echeck: '#/components/schemas/AdjustReadyToPayGeneric' ecoPayz: '#/components/schemas/AdjustReadyToPayGeneric' ecoVoucher: '#/components/schemas/AdjustReadyToPayGeneric' Efecty: '#/components/schemas/AdjustReadyToPayGeneric' EPS: '#/components/schemas/AdjustReadyToPayGeneric' ePay.bg: '#/components/schemas/AdjustReadyToPayGeneric' eZeeWallet: '#/components/schemas/AdjustReadyToPayGeneric' FasterPay: '#/components/schemas/AdjustReadyToPayGeneric' Flexepin: '#/components/schemas/AdjustReadyToPayGeneric' Giropay: '#/components/schemas/AdjustReadyToPayGeneric' Gpaysafe: '#/components/schemas/AdjustReadyToPayGeneric' Google Pay: '#/components/schemas/AdjustReadyToPayGeneric' iDebit: '#/components/schemas/AdjustReadyToPayGeneric' iDEAL: '#/components/schemas/AdjustReadyToPayGeneric' ING-homepay: '#/components/schemas/AdjustReadyToPayGeneric' INOVAPAY-pin: '#/components/schemas/AdjustReadyToPayGeneric' INOVAPAY-wallet: '#/components/schemas/AdjustReadyToPayGeneric' InstaDebit: '#/components/schemas/AdjustReadyToPayGeneric' instant-bank-transfer: '#/components/schemas/AdjustReadyToPayGeneric' InstantPayments: '#/components/schemas/AdjustReadyToPayGeneric' Interac: '#/components/schemas/AdjustReadyToPayGeneric' Interac-online: '#/components/schemas/AdjustReadyToPayGeneric' Interac-eTransfer: '#/components/schemas/AdjustReadyToPayGeneric' invoice: '#/components/schemas/AdjustReadyToPayGeneric' iWallet: '#/components/schemas/AdjustReadyToPayGeneric' Jeton: '#/components/schemas/AdjustReadyToPayGeneric' jpay: '#/components/schemas/AdjustReadyToPayGeneric' Khelocard: '#/components/schemas/AdjustReadyToPayGeneric' Klarna: '#/components/schemas/AdjustReadyToPayGeneric' KNOT: '#/components/schemas/AdjustReadyToPayGeneric' loonie: '#/components/schemas/AdjustReadyToPayGeneric' Matrix: '#/components/schemas/AdjustReadyToPayGeneric' MaxiCash: '#/components/schemas/AdjustReadyToPayGeneric' Megafon: '#/components/schemas/AdjustReadyToPayGeneric' MiFinity-eWallet: '#/components/schemas/AdjustReadyToPayGeneric' miscellaneous: '#/components/schemas/AdjustReadyToPayGeneric' Bancontact: '#/components/schemas/AdjustReadyToPayGeneric' Bancontact-mobile: '#/components/schemas/AdjustReadyToPayGeneric' MTS: '#/components/schemas/AdjustReadyToPayGeneric' MuchBetter: '#/components/schemas/AdjustReadyToPayGeneric' Multibanco: '#/components/schemas/AdjustReadyToPayGeneric' Neosurf: '#/components/schemas/AdjustReadyToPayGeneric' Netbanking: '#/components/schemas/AdjustReadyToPayGeneric' Neteller: '#/components/schemas/AdjustReadyToPayGeneric' Nordea-Solo: '#/components/schemas/AdjustReadyToPayGeneric' OchaPay: '#/components/schemas/AdjustReadyToPayGeneric' online-bank-transfer: '#/components/schemas/AdjustReadyToPayGeneric' Onlineueberweisen: '#/components/schemas/AdjustReadyToPayGeneric' oriental-wallet: '#/components/schemas/AdjustReadyToPayGeneric' OXXO: '#/components/schemas/AdjustReadyToPayGeneric' P24: '#/components/schemas/AdjustReadyToPayGeneric' Pagadito: '#/components/schemas/AdjustReadyToPayGeneric' PagoEffectivo: '#/components/schemas/AdjustReadyToPayGeneric' Pagsmile-deposit-express: '#/components/schemas/AdjustReadyToPayGeneric' Pagsmile-lottery: '#/components/schemas/AdjustReadyToPayGeneric' PayCash: '#/components/schemas/AdjustReadyToPayGeneric' Payeer: '#/components/schemas/AdjustReadyToPayGeneric' PaymentAsia-crypto: '#/components/schemas/AdjustReadyToPayGeneric' Paymero: '#/components/schemas/AdjustReadyToPayGeneric' Perfect-money: '#/components/schemas/AdjustReadyToPayGeneric' Piastrix: '#/components/schemas/AdjustReadyToPayGeneric' plaid-account: '#/components/schemas/AdjustReadyToPayGeneric' PayTabs: '#/components/schemas/AdjustReadyToPayGeneric' Paysafecard: '#/components/schemas/AdjustReadyToPayGeneric' Paysafecash: '#/components/schemas/AdjustReadyToPayGeneric' Pay4Fun: '#/components/schemas/AdjustReadyToPayGeneric' Paynote: '#/components/schemas/AdjustReadyToPayGeneric' PinPay: '#/components/schemas/AdjustReadyToPayGeneric' phone: '#/components/schemas/AdjustReadyToPayGeneric' PhonePe: '#/components/schemas/AdjustReadyToPayGeneric' POLi: '#/components/schemas/AdjustReadyToPayGeneric' PostFinance-card: '#/components/schemas/AdjustReadyToPayGeneric' PostFinance-e-finance: '#/components/schemas/AdjustReadyToPayGeneric' QIWI: '#/components/schemas/AdjustReadyToPayGeneric' QPay: '#/components/schemas/AdjustReadyToPayGeneric' QQPay: '#/components/schemas/AdjustReadyToPayGeneric' rapyd-checkout: '#/components/schemas/AdjustReadyToPayGeneric' Resurs: '#/components/schemas/AdjustReadyToPayGeneric' SafetyPay: '#/components/schemas/AdjustReadyToPayGeneric' SEPA: '#/components/schemas/AdjustReadyToPayGeneric' Skrill: '#/components/schemas/AdjustReadyToPayGeneric' Skrill Rapid Transfer: '#/components/schemas/AdjustReadyToPayGeneric' SMSVoucher: '#/components/schemas/AdjustReadyToPayGeneric' Sofort: '#/components/schemas/AdjustReadyToPayGeneric' SparkPay: '#/components/schemas/AdjustReadyToPayGeneric' swift-dbt: '#/components/schemas/AdjustReadyToPayGeneric' Tele2: '#/components/schemas/AdjustReadyToPayGeneric' Terminaly-RF: '#/components/schemas/AdjustReadyToPayGeneric' ToditoCash-card: '#/components/schemas/AdjustReadyToPayGeneric' Trustly: '#/components/schemas/AdjustReadyToPayGeneric' UPayCard: '#/components/schemas/AdjustReadyToPayGeneric' UPI: '#/components/schemas/AdjustReadyToPayGeneric' USD-coin: '#/components/schemas/AdjustReadyToPayGeneric' VCreditos: '#/components/schemas/AdjustReadyToPayGeneric' VenusPoint: '#/components/schemas/AdjustReadyToPayGeneric' voucher: '#/components/schemas/AdjustReadyToPayGeneric' voucher-2: '#/components/schemas/AdjustReadyToPayGeneric' voucher-3: '#/components/schemas/AdjustReadyToPayGeneric' voucher-4: '#/components/schemas/AdjustReadyToPayGeneric' Webmoney: '#/components/schemas/AdjustReadyToPayGeneric' Webpay: '#/components/schemas/AdjustReadyToPayGeneric' Webpay-2: '#/components/schemas/AdjustReadyToPayGeneric' Webpay Card: '#/components/schemas/AdjustReadyToPayGeneric' WeChat Pay: '#/components/schemas/AdjustReadyToPayGeneric' XPay-P2P: '#/components/schemas/AdjustReadyToPayGeneric' XPay-QR: '#/components/schemas/AdjustReadyToPayGeneric' Yandex-money: '#/components/schemas/AdjustReadyToPayGeneric' Zotapay: '#/components/schemas/AdjustReadyToPayGeneric' Zimpler: '#/components/schemas/AdjustReadyToPayGeneric' anyOf: - $ref: '#/components/schemas/AdjustReadyToPayPaymentCard' - $ref: '#/components/schemas/AdjustReadyToPayAch' - $ref: '#/components/schemas/AdjustReadyToPayPaypal' - $ref: '#/components/schemas/AdjustReadyToPayGeneric' RuleActionAdjustReadyToPay: allOf: - $ref: '#/components/schemas/RuleAction' - type: object description: Adjust ready to pay. properties: prioritizeActivePaymentInstruments: type: boolean default: false description: >- If set as `true`, the payment methods associated to the customer's active payment instruments are displayed at the top of the list. paymentMethods: type: array description: >- Ordered list of payment methods allowed. If empty, then no payment methods are allowed. items: $ref: '#/components/schemas/AdjustPaymentMethod' AdjustReadyToPayoutGeneric: type: object title: Generic properties: paymentMethod: description: Payment method of the payment instrument. $ref: '#/components/schemas/AlternativePaymentMethods' AdjustReadyToPayoutPaymentMethod: type: object required: - paymentMethod - feature discriminator: propertyName: paymentMethod mapping: payment-card: '#/components/schemas/AdjustReadyToPayoutGeneric' ach: '#/components/schemas/AdjustReadyToPayoutGeneric' paypal: '#/components/schemas/AdjustReadyToPayoutGeneric' cash: '#/components/schemas/AdjustReadyToPayoutGeneric' check: '#/components/schemas/AdjustReadyToPayoutGeneric' AdvCash: '#/components/schemas/AdjustReadyToPayoutGeneric' Alfa-click: '#/components/schemas/AdjustReadyToPayoutGeneric' Alipay: '#/components/schemas/AdjustReadyToPayoutGeneric' AstroPay Card: '#/components/schemas/AdjustReadyToPayoutGeneric' AstroPay-GO: '#/components/schemas/AdjustReadyToPayoutGeneric' BankReferenced: '#/components/schemas/AdjustReadyToPayoutGeneric' bank-transfer: '#/components/schemas/AdjustReadyToPayoutGeneric' bank-transfer-2: '#/components/schemas/AdjustReadyToPayoutGeneric' bank-transfer-3: '#/components/schemas/AdjustReadyToPayoutGeneric' bank-transfer-4: '#/components/schemas/AdjustReadyToPayoutGeneric' bank-transfer-5: '#/components/schemas/AdjustReadyToPayoutGeneric' bank-transfer-6: '#/components/schemas/AdjustReadyToPayoutGeneric' bank-transfer-7: '#/components/schemas/AdjustReadyToPayoutGeneric' bank-transfer-8: '#/components/schemas/AdjustReadyToPayoutGeneric' bank-transfer-9: '#/components/schemas/AdjustReadyToPayoutGeneric' Baloto: '#/components/schemas/AdjustReadyToPayoutGeneric' Beeline: '#/components/schemas/AdjustReadyToPayoutGeneric' Belfius-direct-net: '#/components/schemas/AdjustReadyToPayoutGeneric' bitcoin: '#/components/schemas/AdjustReadyToPayoutGeneric' Bizum: '#/components/schemas/AdjustReadyToPayoutGeneric' Boleto: '#/components/schemas/AdjustReadyToPayoutGeneric' cash-deposit: '#/components/schemas/AdjustReadyToPayoutGeneric' CASHlib: '#/components/schemas/AdjustReadyToPayoutGeneric' CashToCode: '#/components/schemas/AdjustReadyToPayoutGeneric' China UnionPay: '#/components/schemas/AdjustReadyToPayoutGeneric' Cleo: '#/components/schemas/AdjustReadyToPayoutGeneric' CODVoucher: '#/components/schemas/AdjustReadyToPayoutGeneric' Conekta-oxxo: '#/components/schemas/AdjustReadyToPayoutGeneric' Cupon-de-pagos: '#/components/schemas/AdjustReadyToPayoutGeneric' cryptocurrency: '#/components/schemas/AdjustReadyToPayoutGeneric' domestic-cards: '#/components/schemas/AdjustReadyToPayoutGeneric' echeck: '#/components/schemas/AdjustReadyToPayoutGeneric' ecoPayz: '#/components/schemas/AdjustReadyToPayoutGeneric' ecoVoucher: '#/components/schemas/AdjustReadyToPayoutGeneric' Efecty: '#/components/schemas/AdjustReadyToPayoutGeneric' EPS: '#/components/schemas/AdjustReadyToPayoutGeneric' ePay.bg: '#/components/schemas/AdjustReadyToPayoutGeneric' eZeeWallet: '#/components/schemas/AdjustReadyToPayoutGeneric' FasterPay: '#/components/schemas/AdjustReadyToPayoutGeneric' Flexepin: '#/components/schemas/AdjustReadyToPayoutGeneric' Giropay: '#/components/schemas/AdjustReadyToPayoutGeneric' Gpaysafe: '#/components/schemas/AdjustReadyToPayoutGeneric' Google Pay: '#/components/schemas/AdjustReadyToPayoutGeneric' iDebit: '#/components/schemas/AdjustReadyToPayoutGeneric' iDEAL: '#/components/schemas/AdjustReadyToPayoutGeneric' ING-homepay: '#/components/schemas/AdjustReadyToPayoutGeneric' INOVAPAY-pin: '#/components/schemas/AdjustReadyToPayoutGeneric' INOVAPAY-wallet: '#/components/schemas/AdjustReadyToPayoutGeneric' InstaDebit: '#/components/schemas/AdjustReadyToPayoutGeneric' instant-bank-transfer: '#/components/schemas/AdjustReadyToPayoutGeneric' InstantPayments: '#/components/schemas/AdjustReadyToPayoutGeneric' Interac: '#/components/schemas/AdjustReadyToPayoutGeneric' Interac-online: '#/components/schemas/AdjustReadyToPayoutGeneric' Interac-eTransfer: '#/components/schemas/AdjustReadyToPayoutGeneric' invoice: '#/components/schemas/AdjustReadyToPayoutGeneric' iWallet: '#/components/schemas/AdjustReadyToPayoutGeneric' Jeton: '#/components/schemas/AdjustReadyToPayoutGeneric' jpay: '#/components/schemas/AdjustReadyToPayoutGeneric' Khelocard: '#/components/schemas/AdjustReadyToPayoutGeneric' Klarna: '#/components/schemas/AdjustReadyToPayoutGeneric' KNOT: '#/components/schemas/AdjustReadyToPayoutGeneric' loonie: '#/components/schemas/AdjustReadyToPayoutGeneric' Matrix: '#/components/schemas/AdjustReadyToPayoutGeneric' MaxiCash: '#/components/schemas/AdjustReadyToPayoutGeneric' Megafon: '#/components/schemas/AdjustReadyToPayoutGeneric' MiFinity-eWallet: '#/components/schemas/AdjustReadyToPayoutGeneric' miscellaneous: '#/components/schemas/AdjustReadyToPayoutGeneric' Bancontact: '#/components/schemas/AdjustReadyToPayoutGeneric' Bancontact-mobile: '#/components/schemas/AdjustReadyToPayoutGeneric' MTS: '#/components/schemas/AdjustReadyToPayoutGeneric' MuchBetter: '#/components/schemas/AdjustReadyToPayoutGeneric' Multibanco: '#/components/schemas/AdjustReadyToPayoutGeneric' Neosurf: '#/components/schemas/AdjustReadyToPayoutGeneric' Netbanking: '#/components/schemas/AdjustReadyToPayoutGeneric' Neteller: '#/components/schemas/AdjustReadyToPayoutGeneric' Nordea-Solo: '#/components/schemas/AdjustReadyToPayoutGeneric' OchaPay: '#/components/schemas/AdjustReadyToPayoutGeneric' online-bank-transfer: '#/components/schemas/AdjustReadyToPayoutGeneric' Onlineueberweisen: '#/components/schemas/AdjustReadyToPayoutGeneric' oriental-wallet: '#/components/schemas/AdjustReadyToPayoutGeneric' OXXO: '#/components/schemas/AdjustReadyToPayoutGeneric' P24: '#/components/schemas/AdjustReadyToPayoutGeneric' Pagadito: '#/components/schemas/AdjustReadyToPayoutGeneric' PagoEffectivo: '#/components/schemas/AdjustReadyToPayoutGeneric' Pagsmile-deposit-express: '#/components/schemas/AdjustReadyToPayoutGeneric' Pagsmile-lottery: '#/components/schemas/AdjustReadyToPayoutGeneric' PayCash: '#/components/schemas/AdjustReadyToPayoutGeneric' Payeer: '#/components/schemas/AdjustReadyToPayoutGeneric' PaymentAsia-crypto: '#/components/schemas/AdjustReadyToPayoutGeneric' Paymero: '#/components/schemas/AdjustReadyToPayoutGeneric' Perfect-money: '#/components/schemas/AdjustReadyToPayoutGeneric' Piastrix: '#/components/schemas/AdjustReadyToPayoutGeneric' plaid-account: '#/components/schemas/AdjustReadyToPayoutGeneric' PayTabs: '#/components/schemas/AdjustReadyToPayoutGeneric' Paysafecard: '#/components/schemas/AdjustReadyToPayoutGeneric' Paysafecash: '#/components/schemas/AdjustReadyToPayoutGeneric' Pay4Fun: '#/components/schemas/AdjustReadyToPayoutGeneric' Paynote: '#/components/schemas/AdjustReadyToPayoutGeneric' PinPay: '#/components/schemas/AdjustReadyToPayoutGeneric' phone: '#/components/schemas/AdjustReadyToPayoutGeneric' PhonePe: '#/components/schemas/AdjustReadyToPayoutGeneric' POLi: '#/components/schemas/AdjustReadyToPayoutGeneric' PostFinance-card: '#/components/schemas/AdjustReadyToPayoutGeneric' PostFinance-e-finance: '#/components/schemas/AdjustReadyToPayoutGeneric' QIWI: '#/components/schemas/AdjustReadyToPayoutGeneric' QPay: '#/components/schemas/AdjustReadyToPayoutGeneric' QQPay: '#/components/schemas/AdjustReadyToPayoutGeneric' rapyd-checkout: '#/components/schemas/AdjustReadyToPayoutGeneric' Resurs: '#/components/schemas/AdjustReadyToPayoutGeneric' SafetyPay: '#/components/schemas/AdjustReadyToPayoutGeneric' SEPA: '#/components/schemas/AdjustReadyToPayoutGeneric' Skrill: '#/components/schemas/AdjustReadyToPayoutGeneric' Skrill Rapid Transfer: '#/components/schemas/AdjustReadyToPayoutGeneric' SMSVoucher: '#/components/schemas/AdjustReadyToPayoutGeneric' Sofort: '#/components/schemas/AdjustReadyToPayoutGeneric' SparkPay: '#/components/schemas/AdjustReadyToPayoutGeneric' swift-dbt: '#/components/schemas/AdjustReadyToPayoutGeneric' Tele2: '#/components/schemas/AdjustReadyToPayoutGeneric' Terminaly-RF: '#/components/schemas/AdjustReadyToPayoutGeneric' ToditoCash-card: '#/components/schemas/AdjustReadyToPayoutGeneric' Trustly: '#/components/schemas/AdjustReadyToPayoutGeneric' UPayCard: '#/components/schemas/AdjustReadyToPayoutGeneric' UPI: '#/components/schemas/AdjustReadyToPayoutGeneric' USD-coin: '#/components/schemas/AdjustReadyToPayoutGeneric' VCreditos: '#/components/schemas/AdjustReadyToPayoutGeneric' VenusPoint: '#/components/schemas/AdjustReadyToPayoutGeneric' voucher: '#/components/schemas/AdjustReadyToPayoutGeneric' voucher-2: '#/components/schemas/AdjustReadyToPayoutGeneric' voucher-3: '#/components/schemas/AdjustReadyToPayoutGeneric' voucher-4: '#/components/schemas/AdjustReadyToPayoutGeneric' Webmoney: '#/components/schemas/AdjustReadyToPayoutGeneric' Webpay: '#/components/schemas/AdjustReadyToPayoutGeneric' Webpay-2: '#/components/schemas/AdjustReadyToPayoutGeneric' Webpay Card: '#/components/schemas/AdjustReadyToPayoutGeneric' WeChat Pay: '#/components/schemas/AdjustReadyToPayoutGeneric' XPay-P2P: '#/components/schemas/AdjustReadyToPayoutGeneric' XPay-QR: '#/components/schemas/AdjustReadyToPayoutGeneric' Yandex-money: '#/components/schemas/AdjustReadyToPayoutGeneric' Zotapay: '#/components/schemas/AdjustReadyToPayoutGeneric' Zimpler: '#/components/schemas/AdjustReadyToPayoutGeneric' anyOf: - $ref: '#/components/schemas/AdjustReadyToPayoutGeneric' RuleActionAdjustReadyToPayout: allOf: - $ref: '#/components/schemas/RuleAction' - type: object description: Adjust ready to payout. properties: prioritizeActivePaymentInstruments: type: boolean default: false description: >- Specifies if payment methods, that are associated with the customer's active payment instruments, are displayed at the top of the list. paymentMethods: type: array description: >- Ordered list of allowed payment methods. If this field is empty, no payment methods are allowed. items: $ref: '#/components/schemas/AdjustReadyToPayoutPaymentMethod' RuleActionAddBlockList: description: Add customer data to blocklist. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: type: type: string enum: - customer-id - email - fingerprint - ip-address - payment-card ttl: type: integer description: >- Blocklist TTL. Defaults to zero, meaning blocklist record won't expire ever. default: 0 required: - type RuleActionCancelScheduledPayments: allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: skipStartedServicePeriod: type: boolean description: Skip invoices with started service period. default: false RuleActionCreateIntuitQuickbooksBalanceTransactionEntry: description: Create an Intuit QuickBooks balance transaction entry. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: debitAccount: description: ID of the debit QuickBooks account. type: string creditAccount: description: ID of the credit QuickBooks account. type: string description: description: >- QuickBooks balance transaction entry description. For example, `Balance transaction of type {{ balanceTransaction.type }} for transaction #{{ transaction.id }}`. type: string credentialHash: type: string description: ID of the OAuth2 credential. required: - credentialHash - debitAccount - creditAccount - description RuleActionUpdateIntuitQuickbooksInvoice: description: Update an Intuit QuickBooks invoice. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: unearnedRevenueAccount: description: ID of the unearned revenue QuickBooks account. type: string taxesAccount: description: >- ID of the taxes QuickBooks account. If supplied taxes are represented as separate line items instead of integrated tax field. type: - string - 'null' discountsAccount: description: |- ID of the discounts QuickBooks account. If not set `unearnedRevenueAccount` is used for discounts. type: - string - 'null' department: description: ID of the QuickBooks department. type: - string - 'null' template: type: object properties: itemName: description: Name of the line item. type: string default: >- {{ item.plan.id | default: item.product.id | default: item.description }} itemDescription: description: Description of the line item. type: string default: '{{ item.product.description | default: item.description }}' itemSku: description: SKU of the line item. type: string default: >- {{ item.plan.id | default: item.product.id | default: item.id }} itemLineDescription: description: Description of the line item. type: string default: >- {{ item.plan.id | default: item.product.id | default: item.description }}{% if item.periodStartTime and item.periodEndTime %} ({{ item.periodStartTime | datetime: "M jS, Y" }} – {{ item.periodEndTime | datetime: "M jS, Y" }}){% endif %} taxName: description: >- Name of the tax item name. This value is used when the `taxesAccount` field is configured. type: string default: '{{ tax.description }}' taxDescription: description: Description of the tax item. type: string default: >- {{ tax.description }} This value is used when the `taxesAccount` field is configured. taxSku: description: SKU of the tax item. type: string default: tax taxLineDescription: description: >- Description of the tax line. This value is used when the `taxesAccount` field is configured. type: string default: >- {{ tax.description }}{% if item %} for {{ item.plan.id | default: item.description }}{% if item.periodStartTime and item.periodEndTime %} ({{ item.periodStartTime | datetime: "M jS, Y" }} – {{ item.periodEndTime | datetime: "M jS, Y" }}){% else %} for multiple items{% endif %}{% endif %} credentialHash: type: string description: ID of the OAuth2 credential. required: - credentialHash - customerDisplayName - unearnedRevenueAccount RuleActionCreateIntuitQuickbooksInvoice: description: Create an Intuit QuickBooks invoice. allOf: - $ref: '#/components/schemas/RuleActionUpdateIntuitQuickbooksInvoice' - type: object properties: customerDisplayName: description: >- Customer display name in QuickBooks. Duplicate names are mapped to a single QuickBooks customer. Event placeholders could be used as follows: - Organization name: `{{ invoice.customer.primaryAddress.organization }}`; - Full customer name: `{{ invoice.customer.firstName }} {{ invoice.customer.lastName }}`; - Customer ID: `{{ invoice.customer.id }}`. type: string required: - customerDisplayName RuleActionCreateIntuitQuickbooksPayment: description: Create an Intuit QuickBooks payment. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: depositAccount: description: ID of the deposit QuickBooks account. type: string credentialHash: type: string description: ID of the OAuth2 credential. required: - credentialHash - depositAccount RuleActionCreateIntuitQuickbooksRefundReceipt: description: Create an Intuit QuickBooks refund receipt. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: depositAccount: description: ID of the deposit QuickBooks account. type: string department: description: ID of the QuickBooks department. type: - string - 'null' credentialHash: type: string description: ID of the OAuth2 credential. required: - credentialHash - depositAccount RuleActionCreateIntuitQuickbooksRevenueRecognitionEntry: description: Create an Intuit QuickBooks revenue recognition entry. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: debitAccount: description: ID of the debit QuickBooks account. type: string creditAccount: description: ID of the credit QuickBooks account. type: string description: description: >- QuickBooks revenue recognition entry description. For example, `Revenue recognition for invoice #{{ invoice.id }} item #{{ item.id }} – {{ item.description }}`. type: string credentialHash: type: string description: ID of the OAuth2 credential. required: - credentialHash - debitAccount - creditAccount - description RuleActionCreateInfusionsoftOrder: description: Create a Keap Infusionsoft order along with a contact. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: contactBody: description: >- List of contact attributes used during Keap Infusionsoft creation process. type: object properties: email_addresses: description: >- Contact email addresses used during Keap Infusionsoft creation process. type: array minItems: 1 items: type: object properties: email: description: >- Contact email address used during Keap Infusionsoft creation process. type: string example: '{{ invoice.customer.email }}' field: description: >- Contact email field type used during Keap Infusionsoft creation process. type: string enum: - EMAIL1 - EMAIL2 - EMAIL3 example: EMAIL1 phone_numbers: description: >- Contact phone numbers used during Keap Infusionsoft creation process. type: array minItems: 1 items: type: object properties: number: description: >- Contact phone number used during Keap Infusionsoft creation process. type: string example: '{{ invoice.customer.customFields.phoneNumber }}' field: description: >- Contact phone field type used during Keap Infusionsoft creation process. type: string enum: - PHONE1 - PHONE2 - PHONE3 - PHONE4 - PHONE5 example: PHONE1 orderBody: description: >- List of order attributes used during Keap Infusionsoft creation process except `contact_id`. type: object properties: order_date: description: Order date used during Keap Infusionsoft creation process. type: string example: '{{ invoice.issuedTime }}' order_title: description: Order title used during Keap Infusionsoft creation process. type: string example: '{{ invoice.id }}' order_type: description: >- Order type that used during Keap Infusionsoft creation process. type: string enum: - Offline - Online example: Offline required: - order_date - order_title - order_type credentialHash: type: string description: ID of the OAuth2 credential. required: - credentialHash - contactBody - orderBody RuleActionCreateInfusionsoftPayment: description: Create a Keap Infusionsoft payment. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: paymentBody: description: >- List of payment attributes used during Keap Infusionsoft creation process. type: object credentialHash: type: string description: ID of the OAuth2 credential. required: - credentialHash RuleActionDeclineTransaction: description: Decline transaction. allOf: - $ref: '#/components/schemas/RuleAction' RuleActionCheckOntarioRestriction: description: Decline transaction not conforming Ontario's restrictions. allOf: - $ref: '#/components/schemas/RuleAction' RuleActionDisplayMessage: description: Display message. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: messages: type: array minItems: 1 items: type: object properties: langIso: description: Language in ISO 639-1 code format. type: string content: type: string required: - langIso - content required: - messages RuleActionDisplayOtherChoices: description: Display other choices. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: choices: type: array minItems: 1 items: type: object properties: langIso: description: Language in ISO 639-1 code format. type: string content: type: string required: - langIso - content required: - choices RuleActionGuessPaymentCardExpiration: allOf: - $ref: '#/components/schemas/RuleAction' RuleActionOfferPurchaseBump: description: Offer purchase bump. allOf: - $ref: '#/components/schemas/RuleAction' - type: object required: - bumpOffers properties: bumpOffers: type: array minItems: 1 items: type: object required: - name - weight - offers - choices properties: name: type: string description: |- Name of the bump offer version. This field is useful when measuring split tests. weight: description: Weight of the bump offer. type: integer minimum: 0 offers: type: array minItems: 1 items: $ref: '#/components/schemas/PurchaseBumpOffer' choices: type: array minItems: 1 items: type: object required: - langIso - content properties: langIso: $ref: '#/components/schemas/LanguageIsoCode' content: type: string RuleActionPerformExperianCheck: description: Perform Experian ProveID check on the customer. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: experianCredentialHash: description: Hash of the Experian credential to use for performing the check. type: string example: 58816e40-387e-4834-982f-fa1855a75f64 tagOnApprove: description: >- Tag ID that should be used to tag the customer when the identity matches Experian records. type: string tagOnReject: description: >- Tag ID that should be used to tag the customer when the identity doesn't match Experian records. type: string tagOnUnknown: description: >- Tag ID that should be used to tag the customer when the identity is not found in Experian records or further analysis needed. type: string required: - experianCredentialHash GatewayAccountPickInstruction: type: object discriminator: propertyName: method mapping: gateway-account-weights: '#/components/schemas/PickInstructionGatewayAccountWeights' gateway-acquirer-weights: '#/components/schemas/PickInstructionGatewayAcquirerWeights' properties: strategy: type: string enum: - weighted-random - round-robin description: >- Controls the picking strategy for gateway accounts. The weighted-random strategy picks based on weighted-random every time. The round-robin strategy tries a weighted-random different gateway account for consecutive attempts from same payment instrument. default: weighted-random method: type: string enum: - gateway-account-weights - gateway-acquirer-weights required: - method PickInstructionGatewayAccountWeights: allOf: - $ref: '#/components/schemas/GatewayAccountPickInstruction' - type: object properties: weightedList: type: array uniqueItems: true minimum: 0 items: type: object properties: gatewayAccountId: type: string description: Unique resource ID. maxLength: 50 example: gw_acc_0YVCXMF26DDNKAERE5NW727S34 weight: type: integer minimum: 0 required: - gatewayAccountId - weight example: - gatewayAccountId: my_gateway_account_1 weight: 80 - gatewayAccountId: my_gateway_account_2 weight: 20 required: - weightedList PickInstructionGatewayAcquirerWeights: allOf: - $ref: '#/components/schemas/GatewayAccountPickInstruction' - type: object properties: weightedList: type: array uniqueItems: true minimum: 0 items: type: object properties: gatewayName: $ref: '#/components/schemas/GatewayName' acquirerName: $ref: '#/components/schemas/AcquirerName' weight: type: integer minimum: 0 required: - gatewayName - acquirerName - weight example: - gatewayName: TestProcessor acquirerName: AIB weight: 80 - gatewayName: TestProcessor acquirerName: B+S weight: 20 required: - weightedList RuleActionPickGatewayAccount: allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: pickInstruction: $ref: '#/components/schemas/GatewayAccountPickInstruction' required: - pickInstruction RuleActionRemoveReminder: allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: role: type: string enum: - all - renewal - trial-end description: >- Role of Reminder (available only on Order events, other events should use `all`). required: - role RuleActionRequestKyc: description: Request KYC page to verify customer identity. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: documents: type: array description: Documents to request from the customer. minItems: 1 items: $ref: '#/components/schemas/KycRequestDocument' excludePolicy: type: string description: Specifies who should be excluded from the verification. enum: - customers-with-accepted-document - customers-with-document - none default: customers-with-accepted-document isMandatory: type: boolean description: Is the verification mandatory. default: true promptPolicy: type: string description: When to prompt, before or after processing the transaction. enum: - before-transaction-process - after-transaction-process default: before-transaction-process rejectedBeforeTransactionProcessPolicy: type: string description: >- What to do if verification is before transaction processing, and is rejected. enum: - process-transaction - decline - use-alternate-gateway default: decline alternateGatewayAccountIfRejected: type: string description: >- Gateway account to use if use-alternate-gateway is selected for rejectedBeforeTransactionProcessPolicy. rejectedAfterTransactionProcessPolicy: type: string description: >- What to do if verification is after transaction processing, and is rejected. enum: - proceed default: proceed optionalPolicy: type: string description: What to do if verification is optional. enum: - allow-bypass - allow-use-alternate-gateway default: allow-bypass alternateGatewayAccountIfOptional: type: string description: >- Gateway account to use if allow-use-alternate-gateway is selected for optionalPolicy. bypassCurrencyToDisplay: description: >- Currency three letter code to display on the bypass link, if optional. type: string default: USD required: - documents - excludePolicy - isMandatory - promptPolicy - rejectedBeforeTransactionProcessPolicy - rejectedAfterTransactionProcessPolicy - optionalPolicy RuleActionResetReminder: allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: role: type: string enum: - all - renewal - trial-end description: >- Role of Reminder (available only on Order events, other events should use `all`). required: - role RuleActionScheduleInvoiceRetry: description: Schedule an invoice retry. allOf: - $ref: '#/components/schemas/RuleAction' - type: object 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: Policy on the attempt finishes. type: array items: type: string enum: - change-subscription-renewal-time afterRetryEndPolicies: description: Policy on the retry ends. type: array items: type: string enum: - abandon-invoice - cancel-subscription overrideRetryInstruction: description: Specifies whether to replace the existing retry. type: boolean required: - attempts - afterAttemptPolicies - afterRetryEndPolicies - overrideRetryInstruction SchedulingMethodAuto: type: object required: - method properties: method: type: string enum: - auto ScheduleInstruction: type: object description: Specifies when the instruction is performed. discriminator: propertyName: method mapping: auto: '#/components/schemas/SchedulingMethodAuto' 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/SchedulingMethodAuto' - $ref: '#/components/schemas/SchedulingMethodDateInterval' - $ref: '#/components/schemas/SchedulingMethodDayOfMonth' - $ref: '#/components/schemas/SchedulingMethodDayOfWeek' - $ref: '#/components/schemas/SchedulingMethodImmediately' - $ref: '#/components/schemas/SchedulingMethodIntelligent' RuleActionSchedulePayment: allOf: - $ref: '#/components/schemas/RuleAction' - type: object description: Calculation instruction of scheduled time for payment. properties: scheduleInstruction: $ref: '#/components/schemas/ScheduleInstruction' amountPolicy: type: string enum: - invoice-amount-due required: - scheduleInstruction - amountPolicy ReminderScheduleInstruction: type: object description: Calculation instruction of the scheduled time. discriminator: propertyName: method mapping: date-interval: '#/components/schemas/SchedulingMethodDateInterval' day-of-month: '#/components/schemas/SchedulingMethodDayOfMonth' day-of-week: '#/components/schemas/SchedulingMethodDayOfWeek' anyOf: - $ref: '#/components/schemas/SchedulingMethodDateInterval' - $ref: '#/components/schemas/SchedulingMethodDayOfMonth' - $ref: '#/components/schemas/SchedulingMethodDayOfWeek' RuleActionScheduleReminder: allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: role: type: string enum: - all - renewal - trial-end description: >- Specifies the types of events that the reminder is applicable to. The `renewal` and `trial-end` options are only available for order events. Other events must use the `all` option. schedule: type: object description: Collection of schedule instructions. properties: instructions: type: array items: $ref: '#/components/schemas/ReminderScheduleInstruction' chronology: type: string enum: - before - after required: - instructions - chronology required: - role RulesEmailNotification: type: object properties: id: type: string format: uuid description: ID of the message. version: type: string description: >- Version number of the message. Use this field to distinguish between multiple messages by name and version number. If there are no versions, this field is empty. weight: type: integer description: >- Weight distribution value that is assigned to a template for a split test. Each template in a split test can be assigned a weight. The higher the weight value, the more likely the message template is used. The split test algorithm does not assess locale when making a weighted template selection. minimum: 0 maximum: 100 example: 75 default: 100 templates: description: >- Array of message templates with language locale identifiers in [RFC 5646](https://tools.ietf.org/html/rfc5646) format. A language is selected based on the customer's locale. If no locale is configured for the customer, `en-US` (US English) is used. If no template is available in the customer's locale, a template locale is selected using a closest match algorithm. If your email message templates are localized into more than one language, set a customer locale. Invalid placeholders render as empty strings. For example, `Hello {{invalid.placeholder}}!` is rendered as `Hello !`. type: array minItems: 1 items: type: object required: - locale - subject - text - html - from - to properties: locale: type: string description: >- Language locale identifier in [RFC 5646](https://tools.ietf.org/html/rfc5646) format. example: fr-FR from: type: string description: >- Email address of the sender. > **Important:** This value must be a verified email address. To verify an email address: 1. [Create an email delivery setting](https://www.rebilly.com/catalog/all/email-delivery-settings/postemaildeliverysetting/). In the response, you receive the email and a token. 1. [Verify the email delivery](https://www.rebilly.com/catalog/all/email-delivery-settings/putemaildeliverysettingsverification/) by passing the token as the path parameter. Template placeholders are permitted. If a placeholder does not resolve to a verified `from` address, the default verified `from` address is used. maxLength: 254 example: example@example.com to: type: array description: |- List of email addresses to which the email message is sent. Template placeholders are permitted. If a placeholder does not resolve to an email address, the address is not added. minItems: 1 items: type: string maxLength: 254 example: '{{ invoice.customer.email }}' cc: type: array description: |- List of CC email addresses to which the email message is sent. Template placeholders are permitted. If a placeholder does not resolve to an email address, the address is not added. items: type: string maxLength: 254 example: '{{ invoice.customer.email }}' bcc: type: array description: >- List of BCC email addresses to which the email message is sent. Template placeholders are permitted. If a placeholder does not resolve to an email address, the address is not added. items: type: string maxLength: 254 example: '{{ invoice.customer.email }}' subject: type: string description: |- Subject of the message. The use of template placeholders is permitted for this field. maxLength: 998 example: Demonstration subject text: type: string description: |- Text body of the message. To use content from the `html` field, leave this field empty. The use of template placeholders is permitted for this field. example: Demonstration text html: type: string description: |- HTML body of the message. To use content from the `text` field, leave this field empty. The use of template placeholders is permitted for this field. example:

Demonstration text

editor: type: string description: >- Source of the message. This value is required for the email editor. This value is not used for sending emails. It is used by the editor to reproduce the message for future updates. example:
Demonstration text
attachments: description: Attachments of the email message. type: array items: type: object required: - resourceType - resourceId properties: resourceType: type: string description: Type of the attachment resource. example: customer resourceId: type: string description: |- ID of the attachment resource. Template placeholders are permitted. maxLength: 50 example: cus_0YV7DDSDD1C8DA64KHH2W33CPF example: locale: fr-FR from: example@example.com to: - '{{ invoice.customer.email }}' subject: Sujet de démonstration text: Texte de démonstration html:

Texte de démonstration

editor:
Texte de démonstration
required: - templates RuleActionSendEmail: allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: id: type: string format: uuid description: ID of the action. title: type: string description: Title of the messages (this title appears in reports). emails: type: array description: List of messages. minItems: 1 items: $ref: '#/components/schemas/RulesEmailNotification' splitTestStartTime: type: string format: date-time description: Split test start time. required: - emails RuleActionStopSubscriptions: description: Stop active subscriptions. allOf: - $ref: '#/components/schemas/RuleAction' RuleActionTagOrUntagCustomer: description: Tag or untag a customer with a specified list of tags. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: addingTags: description: List of tag ID customer should be tagged with. type: array maxItems: 1000 items: type: string removingTags: description: List of tag ID customer should be untagged from. type: array maxItems: 1000 items: type: string required: - addingTags - removingTags RuleActionVoidIntuitQuickbooksInvoice: description: Void an Intuit QuickBooks invoice. allOf: - $ref: '#/components/schemas/RuleAction' - type: object properties: credentialHash: type: string description: ID of the OAuth2 credential. required: - credentialHash - customerDisplayName - unearnedRevenueAccount Bind: type: object description: Rule information. properties: id: description: ID of the rule. $ref: '#/components/schemas/ResourceId' name: description: Name of the rule. type: string labels: description: Labels of the rule. type: array uniqueItems: true example: - test-rule - category:foo items: type: string pattern: '[a-zA-Z][a-zA-Z0-9:-]*' status: description: Status of the rule. type: string default: active enum: - active - inactive filter: 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). type: string actions: description: Actions that execute when an event occurs. type: array uniqueItems: true items: $ref: '#/components/schemas/RuleAction' required: - name - actions Rule: type: object allOf: - $ref: '#/components/schemas/Bind' - type: object properties: final: description: >- Specifies if the rule stops subsequent rules in the event list from being executed. type: boolean default: true RuleSet: type: object description: Ruleset for a specific event. properties: version: description: Version of the ruleset. type: integer readOnly: true binds: type: array description: |- Binds always execute, regardless of rule based events. A bind is a configuration of an event and one or more actions. items: $ref: '#/components/schemas/Bind' rules: type: array description: >- Rules can be configured to stop subsequent rules in the event list from being executed. A rule is a configuration of an event and one or more actions. items: $ref: '#/components/schemas/Rule' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' required: - rules RulesEngineTimeline: 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: - timeline-comment-created - ruleset-created - ruleset-changed 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' RuleSetHistoryItem: type: object description: Version of ruleset. readOnly: true properties: version: description: Version of the ruleset. type: integer 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 - history - rules RuleSetVersion: type: object description: Version of ruleset. readOnly: true properties: version: description: Version of the ruleset. type: integer binds: type: array description: |- Binds always execute, regardless of rule based events. A bind is a configuration of an event and one or more actions. items: $ref: '#/components/schemas/Bind' rules: type: array description: >- Rules can be configured to stop subsequent rules in the event list from being executed. A rule is a configuration of an event and one or more actions. items: $ref: '#/components/schemas/Rule' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' RuleSetDraft: type: object description: Draft ruleset for specific event. properties: id: type: string readOnly: true description: ID of the draft rule set. maxLength: 50 example: rule_dft_0YVDN3FN43CEQ8CQ93Y0H00ZQ7 baseVersion: type: integer minimum: 0 description: >- Ruleset version on which the draft ruleset is based. Generally, a draft ruleset is cloned from an existing ruleset. Use this field to determine if the active ruleset changed since the draft creation. `0` denotes a draft ruleset that is not created from an existing ruleset. The value of this field is informational only, it is not assigned to the active ruleset. binds: type: array description: |- Binds always execute, regardless of rule based events. A rule is a configuration of an event and one or more actions. items: $ref: '#/components/schemas/Bind' rules: type: array description: >- Rule can be configured to stop subsequent rules in the event list from being executed. A rule is a configuration of an event and one or more actions. items: $ref: '#/components/schemas/Rule' author: description: Author of the draft. readOnly: true type: object properties: id: description: Author's user ID. type: string $ref: '#/components/schemas/ResourceId' name: description: Author's first and last name. type: string name: type: string description: Name of the draft. description: type: string description: Detailed description of the drafted ruleset. 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 - user required: - rules - name - baseVersion ForgotPassword: type: object required: - email properties: email: description: Email address to which a reset password link is sent. type: string format: email GatewayAccount: description: Gateway account details. type: object required: - gatewayName - method - acceptedCurrencies discriminator: propertyName: gatewayName mapping: A1Gateway: '#/components/schemas/A1Gateway' ACI: '#/components/schemas/ACI' Adyen: '#/components/schemas/Adyen' Aircash: '#/components/schemas/Aircash' Airpay: '#/components/schemas/Airpay' Airwallex: '#/components/schemas/Airwallex' AmazonPay: '#/components/schemas/AmazonPay' AmexVPC: '#/components/schemas/AmexVPC' ApcoPay: '#/components/schemas/ApcoPay' AsiaPaymentGateway: '#/components/schemas/AsiaPaymentGateway' AstroPayCard: '#/components/schemas/AstroPayCard' AuthorizeNet: '#/components/schemas/AuthorizeNet' Awepay: '#/components/schemas/Awepay' Bambora: '#/components/schemas/Bambora' BankSEND: '#/components/schemas/BankSEND' BitPay: '#/components/schemas/BitPay' BlueSnap: '#/components/schemas/BlueSnap' BraintreePayments: '#/components/schemas/BraintreePayments' Buckaroo: '#/components/schemas/Buckaroo' BVNK: '#/components/schemas/BVNK' CASHlib: '#/components/schemas/CASHlib' CODVoucher: '#/components/schemas/CODVoucher' Coinbase: '#/components/schemas/Coinbase' CoinGate: '#/components/schemas/CoinGate' CoinPayments: '#/components/schemas/CoinPayments' Cardknox: '#/components/schemas/Cardknox' Cashflows: '#/components/schemas/Cashflows' Cashterminal: '#/components/schemas/Cashterminal' CashToCode: '#/components/schemas/CashToCode' CauriPayment: '#/components/schemas/CauriPayment' Cayan: '#/components/schemas/Cayan' CCAvenue: '#/components/schemas/CCAvenue' Chase: '#/components/schemas/Chase' CheckoutCom: '#/components/schemas/CheckoutCom' Chillstock: '#/components/schemas/Chillstock' Circle: '#/components/schemas/Circle' Citadel: '#/components/schemas/Citadel' Clearhaus: '#/components/schemas/Clearhaus' Cleo: '#/components/schemas/Cleo' Conekta: '#/components/schemas/Conekta' Coppr: '#/components/schemas/Coppr' Credorax: '#/components/schemas/Credorax' Cryptonator: '#/components/schemas/Cryptonator' CyberSource: '#/components/schemas/CyberSource' DataCash: '#/components/schemas/DataCash' Dengi: '#/components/schemas/Dengi' Dimoco: '#/components/schemas/Dimoco' dLocal: '#/components/schemas/dLocal' Dragonphoenix: '#/components/schemas/Dragonphoenix' Dropayment: '#/components/schemas/Dropayment' Directa24: '#/components/schemas/Directa24' EasyPayDirect: '#/components/schemas/EasyPayDirect' EBANX: '#/components/schemas/EBANX' EPG: '#/components/schemas/EPG' EPro: '#/components/schemas/EPro' EcorePay: '#/components/schemas/EcorePay' Elavon: '#/components/schemas/Elavon' EMS: '#/components/schemas/EMS' ePay: '#/components/schemas/ePay' Euteller: '#/components/schemas/Euteller' Ezeebill: '#/components/schemas/Ezeebill' eZeeWallet: '#/components/schemas/eZeeWallet' ezyEFT: '#/components/schemas/ezyEFT' FinTecSystems: '#/components/schemas/FinTecSystems' Finrax: '#/components/schemas/Finrax' Flexepin: '#/components/schemas/Flexepin' Forte: '#/components/schemas/Forte' FundSend: '#/components/schemas/FundSend' GET: '#/components/schemas/GET' Gigadat: '#/components/schemas/Gigadat' GlobalOne: '#/components/schemas/GlobalOne' Gooney: '#/components/schemas/Gooney' Gpaysafe: '#/components/schemas/Gpaysafe' Greenbox: '#/components/schemas/Greenbox' HiPay: '#/components/schemas/HiPay' ICEPAY: '#/components/schemas/ICEPAY' INOVAPAY: '#/components/schemas/INOVAPAY' Ilixium: '#/components/schemas/Ilixium' Ingenico: '#/components/schemas/Ingenico' Inovio: '#/components/schemas/Inovio' InstaDebit: '#/components/schemas/InstaDebit' Intuit: '#/components/schemas/Intuit' IpayOptions: '#/components/schemas/IpayOptions' JetPay: '#/components/schemas/JetPay' Jeton: '#/components/schemas/Jeton' JPMOrbital: '#/components/schemas/JPMOrbital' Khelocard: '#/components/schemas/Khelocard' Klarna: '#/components/schemas/Klarna' Konnektive: '#/components/schemas/Konnektive' LaCore: '#/components/schemas/LaCore' loonie: '#/components/schemas/loonie' LPG: '#/components/schemas/LPG' MaxiCash: '#/components/schemas/MaxiCash' MercadoPago: '#/components/schemas/MercadoPago' MiFinity: '#/components/schemas/MiFinity' MobilePay: '#/components/schemas/MobilePay' Moneris: '#/components/schemas/Moneris' MtaPay: '#/components/schemas/MtaPay' MuchBetter: '#/components/schemas/MuchBetter' MuchBetterGateway: '#/components/schemas/MuchBetterGateway' MyFatoorah: '#/components/schemas/MyFatoorah' Neosurf: '#/components/schemas/Neosurf' NMI: '#/components/schemas/NMI' Netbanking: '#/components/schemas/Netbanking' Neteller: '#/components/schemas/Neteller' NGenius: '#/components/schemas/NGenius' NinjaWallet: '#/components/schemas/NinjaWallet' NordikCoin: '#/components/schemas/NordikCoin' NOWPayments: '#/components/schemas/NOWPayments' NuaPay: '#/components/schemas/NuaPay' OchaPay: '#/components/schemas/OchaPay' Onlineueberweisen: '#/components/schemas/Onlineueberweisen' OnRamp: '#/components/schemas/OnRamp' Orbital: '#/components/schemas/Orbital' Pagadito: '#/components/schemas/Pagadito' Pagsmile: '#/components/schemas/Pagsmile' Panamerican: '#/components/schemas/Panamerican' PandaGateway: '#/components/schemas/PandaGateway' ParamountCommerce: '#/components/schemas/ParamountCommerce' ParamountEft: '#/components/schemas/ParamountEft' ParamountInterac: '#/components/schemas/ParamountInterac' Pay4Fun: '#/components/schemas/Pay4Fun' PayCash: '#/components/schemas/PayCash' PayClub: '#/components/schemas/PayClub' PayEcards: '#/components/schemas/PayEcards' Paynote: '#/components/schemas/Paynote' PayPal: '#/components/schemas/PayPal' Payeezy: '#/components/schemas/Payeezy' Payflow: '#/components/schemas/Payflow' PaymentAsia: '#/components/schemas/PaymentAsia' PaymenTechnologies: '#/components/schemas/PaymenTechnologies' PaymentsOS: '#/components/schemas/PaymentsOS' Paymero: '#/components/schemas/Paymero' Payper: '#/components/schemas/Payper' Payr: '#/components/schemas/Payr' PayRedeem: '#/components/schemas/PayRedeem' PayRetailers: '#/components/schemas/PayRetailers' Paysafe: '#/components/schemas/Paysafe' Paysafecard: '#/components/schemas/Paysafecard' Paysafecash: '#/components/schemas/Paysafecash' PayTabs: '#/components/schemas/PayTabs' PayULatam: '#/components/schemas/PayULatam' Payvision: '#/components/schemas/Payvision' PharosPayments: '#/components/schemas/PharosPayments' Piastrix: '#/components/schemas/Piastrix' Pin4Pay: '#/components/schemas/Pin4Pay' Plugnpay: '#/components/schemas/Plugnpay' PostFinance: '#/components/schemas/PostFinance' PSiGate: '#/components/schemas/PSiGate' PPRO: '#/components/schemas/PPRO' Prosa: '#/components/schemas/Prosa' Rapyd: '#/components/schemas/Rapyd' RPN: '#/components/schemas/RPN' Realex: '#/components/schemas/Realex' Realtime: '#/components/schemas/Realtime' Redsys: '#/components/schemas/Redsys' Rotessa: '#/components/schemas/Rotessa' Safecharge: '#/components/schemas/Safecharge' SaltarPay: '#/components/schemas/SaltarPay' SMSVoucher: '#/components/schemas/SMSVoucher' Sofort: '#/components/schemas/Sofort' Sagepay: '#/components/schemas/Sagepay' SeamlessChex: '#/components/schemas/SeamlessChex' SecureTrading: '#/components/schemas/SecureTrading' SecurionPay: '#/components/schemas/SecurionPay' Skrill: '#/components/schemas/Skrill' SmartInvoice: '#/components/schemas/SmartInvoice' SparkPay: '#/components/schemas/SparkPay' StaticGateway: '#/components/schemas/StaticGateway' STPMexico: '#/components/schemas/STPMexico' Stripe: '#/components/schemas/Stripe' Telr: '#/components/schemas/Telr' TestProcessor: '#/components/schemas/TestProcessor' ToditoCash: '#/components/schemas/ToditoCash' Truevo: '#/components/schemas/Truevo' TrustsPay: '#/components/schemas/TrustsPay' Trustly: '#/components/schemas/Trustly' TWINT: '#/components/schemas/TWINT' Unlimit: '#/components/schemas/Unlimit' UPayCard: '#/components/schemas/UPayCard' USAePay: '#/components/schemas/USAePay' VantivLitle: '#/components/schemas/VantivLitle' VCreditos: '#/components/schemas/VCreditos' VegaWallet: '#/components/schemas/VegaWallet' Wallet88: '#/components/schemas/Wallet88' Walpay: '#/components/schemas/Walpay' WesternUnion: '#/components/schemas/WesternUnion' Wirecard: '#/components/schemas/Wirecard' WorldlineAtosFrankfurt: '#/components/schemas/WorldlineAtosFrankfurt' Worldpay: '#/components/schemas/Worldpay' Zotapay: '#/components/schemas/Zotapay' eMerchantPay: '#/components/schemas/eMerchantPay' ecoPayz: '#/components/schemas/ecoPayz' iCanPay: '#/components/schemas/iCanPay' iCheque: '#/components/schemas/iCheque' iDebit: '#/components/schemas/iDebit' vegaaH: '#/components/schemas/vegaaH' XPay: '#/components/schemas/XPay' Zimpler: '#/components/schemas/Zimpler' properties: id: type: string description: ID of the payment gateway account. readOnly: true maxLength: 50 example: gw_acc_0YVCXMF26DDNKAERE5NW727S34 gatewayName: $ref: '#/components/schemas/GatewayName' acquirerName: default: Other allOf: - $ref: '#/components/schemas/AcquirerName' method: $ref: '#/components/schemas/PaymentMethod' acceptedCurrencies: description: Accepted currencies. An array of ISO 4217 currency codes. type: array items: type: string paymentCardSchemes: description: Accepted payment card brands. type: array items: $ref: '#/components/schemas/PaymentCardBrand' status: description: Status of the gateway account. readOnly: true type: string enum: - active - inactive - pending - closed merchantCategoryCode: description: Merchant category code of the payment gateway account. type: string pattern: ^[0-9]{4}$ default: '0000' dccMarkup: description: Dynamic currency conversion markup in basis points. type: - integer - 'null' minimum: -10000 maximum: 10000 dccForceCurrency: type: - string - 'null' description: >- Forces Dynamic Currency Conversion (DCC) to the specified currency on each sale. To disable forced DCC, leave this field empty. dccForceRounding: type: boolean default: false description: >- Specifies that DCC quote amounts must be rounded half up to the nearest whole number. descriptor: description: Gateway account descriptor value. type: - string - 'null' cityField: description: >- Gateway account city field. This value is also known as a line 2 descriptor. type: - string - 'null' excludedDccQuoteCurrencies: description: Excluded Dynamic Currency Conversion (DCC) quote currencies. type: array items: type: string monthlyLimit: description: >- Monthly limit on the amount money that the gateway account can process. type: - number - 'null' format: double minimum: 0 approvalWindowTtl: description: >- Allotted time, in seconds, in which an offsite transaction must be approved before it is automatically `abandoned`. type: integer default: 3600 minimum: 300 maximum: 16777215 reconciliationWindowEnabled: description: >- Specifies that if a transaction is not reconciled within the `reconciliationWindowTtl` time, the transaction is marked as `abandoned`. type: boolean default: false reconciliationWindowTtl: description: >- Allotted time, in seconds, in which a reconciliation must occur before it is automatically `abandoned`. type: - integer - 'null' minimum: 300 maximum: 16777215 threeDSecure: description: Specifies if a gateway account allows 3D Secure. type: boolean default: false dynamicDescriptor: description: Specifies if a gateway allows dynamic descriptors. type: boolean default: false digitalWallets: $ref: '#/components/schemas/DigitalWallets' isDown: description: Specifies if a gateway is in a downtime period. type: boolean readOnly: true additionalFilters: description: >- Additional filters used to determine if the gateway account can be selected to process a transaction. For example, the filter may place a maximum amount value on transaction. If a transaction exceeds this value, the gateway account is not used. For more information see, [Using filters](https://www.rebilly.com/docs/dev-docs/search-filters). type: - string - 'null' example: amount:1..100;bin:411111,444433 timeout: description: Gateway account request timeout, in seconds. type: - integer - 'null' minimum: 10 maximum: 120 token: description: Gateway account token. type: - string - 'null' readOnly: true example: TwiX3f92k4AiBE27BzTbQ38hHjicBz_w sticky: description: >- Specifies if all future payments by the customer's payment instrument 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: boolean default: true setupInstruction: type: string default: do-nothing description: >- Creates zero, one, or more child transactions such as `authorize` and `void`. The transactions are linked to the `setup` transaction by the `parentTransactionId` relationship. enum: - authorize - authorize-and-void - sca - do-nothing x-enumDescriptions: authorize: >- Creates an `authorize` transaction in the amount and currency of the request. authorize-and-void: >- Creates an `authorize` transaction followed by a `void`, if the `authorize` is approved. If the request amount is $0, then a $1 authorize is created. Otherwise the request amount is used. sca: >- Uses Strong Customer Authentication (SCA) without an `authorize` transaction. SCA includes 3DS, and specific wallet behavior, such as setting up a billing agreement with PayPal. do-nothing: |- Does nothing except return an approved `setup` transaction. This is the default behavior. readyToPayoutInstruction: type: string default: none description: >- Defines the mode of gateway payout behaviour for the [Ready to payout](https://www.rebilly.com/catalog/all/storefront-purchases/storefrontpostreadytopayout) operation. enum: - all - covered-payout - approved-payment - none x-enumDescriptions: all: Payout any amount from this gateway. covered-payout: >- Payout from this gateway if it previously processed a payment for the same, or a greater, amount. approved-payment: >- Payout any amount from this gateway if it processed an earlier payment. The customer must have a previously approved transaction, in the same currency, on this gateway. none: >- Do not allow any payouts with this gateway. This is the default value, merchants must opt into payouts. customFields: $ref: '#/components/schemas/ResourceCustomFields' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' organizationId: deprecated: true readOnly: true allOf: - $ref: '#/components/schemas/OrganizationId' _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 - onBoardingUrl - dynamicIpnUrl - staticIpnUrl A1Gateway: description: A1Gateway gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: A1Gateway credentials object. properties: accountId: type: string description: ID of the A1Gateway account. password: type: string description: A1Gateway password. format: password writeOnly: true required: - accountId - password ThreeDSecureIO3dsServer: description: ThreeDSecureIO 3DS Server. type: object required: - name - acquirerMerchantIdVisa - acquirerMerchantIdMastercard - merchantName - merchantAcquirerBinVisa - merchantAcquirerBinMastercard - merchantCountry - merchantUrl - transactionType properties: name: type: string description: Merchant plug-in name. enum: - ThreeDSecureIO3dsServer acquirerMerchantIdVisa: type: string description: Merchant ID (MID) of the Visa acquirer. maxLength: 35 acquirerMerchantIdMastercard: type: string description: Merchant ID (MID) of the Mastercard acquirer. maxLength: 35 acquirerMerchantIdAmex: type: string description: Merchant ID (MID) of the American Express acquirer. maxLength: 35 acquirerMerchantIdDiscover: type: string description: Merchant ID (MID) of the Discover/Diners acquirer. maxLength: 35 acquirerMerchantIdJcb: type: string description: Merchant ID (MID) of the JCB acquirer. maxLength: 35 merchantName: type: string description: Name of the merchant. maxLength: 40 merchantAcquirerBinVisa: type: string description: BIN of the Visa acquirer. minLength: 6 maxLength: 11 merchantAcquirerBinMastercard: type: string description: BIN of the Mastercard acquirer. minLength: 6 maxLength: 11 merchantAcquirerBinAmex: type: string description: BIN of the American Express acquirer. minLength: 6 maxLength: 11 merchantAcquirerBinDiscover: type: string description: BIN of the Discover/Diners acquirer. minLength: 6 maxLength: 11 merchantAcquirerBinJcb: type: string description: BIN of the JCB acquirer. minLength: 6 maxLength: 11 merchantCountry: type: string description: Merchant country in ISO Alpha-2 code format. maxLength: 2 example: US merchantUrl: type: string description: URL of the merchant's website. maxLength: 2048 transactionType: type: string enum: - '01' - '03' - '10' - '11' - '28' description: Identifies the type of transaction that is being authenticated. x-enumDescriptions: '1': Goods/Service purchase. '3': Check acceptance. '10': Account funding. '11': Quasi-Cash transaction. Indicates the type of 3RI request. '28': Prepaid activation and load. declineNotEnrolled: type: boolean description: >- Specifies whether to decline transactions if a payment card is not enrolled. default: false use3dsForMerchantInitiated: type: boolean description: Specifies whether to use 3DS for merchant initiated transactions. default: false threeRIInd: type: string enum: - '01' - '02' - '03' - '04' - '05' - '06' - '07' - '08' - '09' - '10' - '11' description: |- Indicates the type of 3RI request. Values 06 - 11 are only supported in 3DS 2.2.0. x-enumDescriptions: '10': Whitelist status check. '11': Other payment. '01': Recurring transaction. '02': Instalment transaction. '03': Add card. '04': Maintain card information. '05': Account verification. '06': Split/delayed shipment. '07': Top-up. '08': Mail order. '09': Telephone order. ACI: description: ACI gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: ACI credentials object. properties: entityId: type: string accessToken: type: string format: password writeOnly: true required: - entityId - accessToken settings: type: object description: ACI settings object. properties: url: type: string description: ACI custom server URL. threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' Adyen: description: Adyen gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: Adyen credentials object. properties: merchantAccount: type: string description: Adyen merchant account. apiKey: type: string description: Adyen API key. format: password writeOnly: true required: - merchantAccount - apiKey settings: type: object description: Adyen settings object. properties: store: type: string description: >- E-commerce or point-of-sale store that is processing the payment. minLength: 1 maxLength: 16 url: type: string description: Adyen post URL. splitPayments: type: array description: Adyen split payments. items: type: object properties: percentage: description: Percentage of the transaction amount. type: number format: double minimum: 0 maximum: 100 example: 0.5 commissionAmount: description: Fixed commission amount in minor units. type: number format: integer example: 100 currency: $ref: '#/components/schemas/CurrencyCode' account: description: >- ID of the balance account where the split amount is sent. type: string merchantCountry: description: >- Two-letter ISO 3166 alpha-2 code of the merchant's country. type: string example: US type: description: Account type of the split payment. type: string enum: - BalanceAccount - Commission - Remainder - PaymentFee totalTaxRate: type: number format: double description: >- Total tax percentage as a decimal. Use this field to calculate the total tax amount to send with level 2 enhanced scheme data. example: 5.5 minimum: 0.01 maximum: 100 enableMoto: type: boolean description: Specifies whether to use Mail Order Telephone Order (MOTO). default: false example: false required: - url threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' Aircash: description: Aircash gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Aircash credentials object. properties: partnerId: type: string description: ID of the Aircash partner. privateKey: writeOnly: true type: string description: Private key of the Aircash partner. format: password x-multiline: true privateKeyPassword: writeOnly: true type: string description: Private key password of the Aircash partner. format: password required: - partnerId - privateKey - privateKeyPassword Airpay: description: Airpay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Airpay credentials object. properties: username: type: string description: Airpay username. merchantId: type: string description: ID of the Airpay merchant. password: writeOnly: true type: string description: Airpay password. format: password apiKey: type: string description: Airpay API key. format: password writeOnly: true required: - username - merchantId - password - apiKey Airwallex: description: Airwallex gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Airwallex credentials object. properties: clientId: type: string description: Airwallex client ID. apiKey: type: string description: Airwallex API key. format: password writeOnly: true required: - clientId - apiKey threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' AmazonPay: description: AmazonPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantId: type: string description: ID of the AmazonPay merchant. storeId: type: string description: ID of the AmazonPay store. publicKeyId: type: string description: ID of the AmazonPay public key. privateKey: description: ID of the AmazonPay private key. type: string format: password x-multiline: true writeOnly: true required: - privateKey - storeId - publicKeyId - merchantId AmexVPC: description: AmexVPC gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: AmexVPC credentials object. properties: merchantId: type: string description: ID of the AmexVPC merchant. accessCode: type: string description: AmexVPC access Code. format: password writeOnly: true user: type: string description: >- AmexVPC account user. This field is used for refund, void, and capture transactions. password: type: string description: >- AmexVPC account password. This field is used for refund, void, and capture transactions. format: password writeOnly: true required: - merchantId - accessCode - user - password settings: type: object description: AmexVPC settings object. properties: url: type: string description: Virtual payment client URL. required: - url ApcoPay: description: ApcoPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: ApcoPay credentials object. properties: profileID: type: string description: ID of the ApcoPay profile. secretWord: type: string description: ApcoPay secret word. format: password writeOnly: true MerchantID: type: string description: ID of the ApcoPay merchant. MerchantPassword: type: string description: ApcoPay merchant password. format: password writeOnly: true required: - profileID - secretWord - MerchantID - MerchantPassword settings: type: object properties: method: type: string description: ApcoPay method. enum: - AFTERPAY - BANCONTACT - CREDITCLICK - FLEXEPIN - IDEAL - JPAY - OCTAPAY - ONLINEUBERWEISEN - ORIENTALWALLET - VENUSPOINT - ZIMPLER required: - method AsiaPaymentGateway: description: AsiaPaymentGateway gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: AsiaPaymentGateway credentials object. properties: merchantNumber: type: string description: AsiaPaymentGateway merchant number. secretKey: type: string description: AsiaPaymentGateway secret key for hash. format: password writeOnly: true required: - merchantNumber - secretKey settings: type: object properties: use3DSEndpoint: type: boolean description: Specifies whether to use a 3DS endpoint. AstroPayCard: description: AstroPay Card gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: AstroPay Card credentials object. properties: x_login: type: string description: AstroPay Card login. x_tran_key: type: string description: AstroPay Card transaction key. format: password writeOnly: true secret_key: type: string description: AstroPay Card secret key. format: password writeOnly: true api_key: type: string description: OneTouch Astropay API key. format: password writeOnly: true required: - x_login - x_tran_key - secret_key settings: type: object description: AstroPay Card settings object. properties: oneTouchApi: type: boolean description: Specifies whether to use a OneTouch AstroPay API. default: false useOneTouchSdk: type: boolean description: Specifies whether to use the OneTouch AstroPay SDK. default: false merchantName: type: string description: Displayed merchant name for AstroPay OneTouch. merchantLogoUrl: type: string description: Displayed merchant logo for AstroPay OneTouch. AuthorizeNet: description: AuthorizeNet gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: apiLoginId: type: string description: ID of the AuthorizeNet API login. transactionKey: description: AuthorizeNet transaction key. type: string format: password writeOnly: true required: - apiLoginId - transactionKey Awepay: description: Awepay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Awepay credentials object. properties: sid: type: string description: ID of the Awepay site. rcode: type: string description: Awepay rcode. format: password writeOnly: true secretKey: type: string description: Awepay secret key for the P2P REST API. format: password writeOnly: true required: - sid - rcode settings: type: object description: Awepay setting. properties: useP2pRest: type: boolean description: Specifies whether to use the P2P REST API. Bambora: description: Bambora gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantId: type: string description: ID of the Bambora merchant. apiPasscode: type: string description: Bambora API passcode. format: password writeOnly: true required: - merchantId - apiPasscode BankSEND: description: BankSEND gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: BankSEND credentials object. properties: merchantId: description: ID of the BankSEND merchant. type: string merchantToken: type: string format: password description: BankSEND merchant token. writeOnly: true required: - merchantId - merchantToken BitPay: description: BitPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: BitPay credentials object. properties: token: type: string description: BitPay merchant API token. format: password writeOnly: true required: - token BlueSnap: description: BlueSnap gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: BlueSnap credentials object. properties: username: type: string description: API username of the BlueSnap merchant. merchantId: type: string description: ID of the BlueSnap merchant. password: type: string description: API password of the BlueSnap merchant. format: password writeOnly: true dataProtectionKey: type: string description: Data protection key of the BlueSnap merchant. format: password writeOnly: true required: - username - password settings: type: object properties: enableMoto: type: boolean description: Specifies whether to use Mail Order Telephone Order (MOTO). default: false salesTaxAmount: type: number format: double description: Sales tax amount as a decimal to send with level 2/3 data. example: 0.06 metadataCustomField: type: string description: >- Rebilly custom field to use for sending transaction metadata. threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' BraintreePayments: description: BraintreePayments gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: publicKey: type: string description: BraintreePayments public key. privateKey: type: string description: BraintreePayments private key. format: password writeOnly: true merchantId: type: string description: ID of the BraintreePayments merchant. format: password writeOnly: true merchantAccountId: type: string description: ID of the BraintreePayments merchant account. format: password writeOnly: true required: - publicKey - privateKey - merchantId - merchantAccountId Buckaroo: description: Buckaroo gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Buckaroo credentials object. properties: debtorCode: type: string description: Debtor code. schemeKey: type: string description: Scheme key. websiteKey: type: string description: Website key. secretKey: description: Secret key. type: string format: password required: - websiteKey - secretKey BVNK: description: BVNK gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: BVNK credentials object. properties: merchantId: type: string description: Merchant ID of the BVNK merchant. hawkAuthId: type: string description: HAWK auth ID. format: password writeOnly: true hawkAuthKey: type: string description: HAWK auth key. format: password writeOnly: true required: - merchantId - hawkAuthId - hawkAuthKey settings: type: object description: BVNK settings object. properties: payoutCurrency: type: string description: Cryptocurrency of the payout. payoutNetwork: type: string description: Blockchain network to use for the payout. CASHlib: description: CASHlib gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: CASHlib credentials object. properties: apiKey: type: string description: CASHlib API key. format: password writeOnly: true merchantId: type: string description: ID of the CASHlib merchant. required: - apiKey - merchantId CODVoucher: description: CODVoucher gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: CODVoucher credentials object. properties: apiKey: type: string description: CODVoucher API key. format: password writeOnly: true apiSecret: type: string description: CODVoucher API secret. format: password writeOnly: true required: - apiKey - apiSecret AmountAdjustmentTolerance: type: integer description: Tolerance percentage for the settled amount. minimum: 0 maximum: 5 example: 5 Coinbase: description: Coinbase gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Coinbase credentials object. properties: apiKey: type: string format: password writeOnly: true required: - apiKey settings: type: object description: Coinbase settings object. required: - tolerancePercentage properties: tolerancePercentage: $ref: '#/components/schemas/AmountAdjustmentTolerance' CoinGate: description: CoinGate gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object properties: authToken: type: string format: password description: Authentication token. writeOnly: true required: - authToken settings: type: object properties: targetCurrency: description: |- Currency to which the received cryptocurrency is converted. This field defaults to the transaction currency. type: string minLength: 3 maxLength: 3 example: USD tolerancePercentage: $ref: '#/components/schemas/AmountAdjustmentTolerance' adjustAmount: type: boolean description: >- Specifies whether to adjust the amount that is received from the downstream gateway. default: false example: false CoinPayments: description: CoinPayments gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: CoinPayments credentials object. required: - publicKey - privateKey - ipnSecret properties: publicKey: type: string description: CoinPayments public key. privateKey: type: string format: password description: CoinPayments private key. writeOnly: true ipnSecret: type: string format: password description: CoinPayments IPN secret. writeOnly: true merchantId: type: string format: password description: ID of the CoinPayments merchant. writeOnly: true settings: type: object properties: useCallbackAddress: type: boolean description: Specifies whether to use a callback address payment type. Cardknox: description: Cardknox gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: xKey: type: string description: Cardknox xKey. format: password writeOnly: true required: - xKey Cashflows: description: Cashflows gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: authenticationId: type: string description: ID of the Cashflows authentication. authPassword: type: string description: ID of the Cashflows authentication password. format: password writeOnly: true required: - authPassword - authId Cashterminal: description: Cashterminal gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: secretKey: description: Cashterminal secret key. type: string format: password writeOnly: true required: - secretKey CashToCode: description: CashToCode gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: CashToCode credentials object. properties: cashToCodeUsername: type: string description: CashToCode credentials username. cashToCodePassword: type: string description: CashToCode credentials password. format: password writeOnly: true merchantUsername: type: string description: Merchant credentials username. merchantPassword: type: string description: Merchant credentials password. format: password writeOnly: true mid: type: string description: CashToCode Merchant Identifier Number (MID) or brand name. required: - cashToCodeUsername - cashToCodePassword - merchantUsername - merchantPassword settings: type: object properties: baseUrl: type: string description: Base API URL. skipAmountSelection: type: boolean description: Specifies whether to skip the amount selection screen. default: false amounts: type: array description: Amounts for which transactions are processed. items: type: number format: double minimum: 0 CauriPayment: description: CauriPayment gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: CauriPayment credentials object. properties: publicKey: type: string description: CauriPayment merchant public key. privateKey: type: string description: CauriPayment merchant private key. format: password writeOnly: true required: - publicKey - privateKey Cayan: description: Cayan gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantSiteId: type: string description: ID of the Cayan merchant site. merchantName: type: string description: Cayan merchant name. merchantKey: type: string description: Cayan merchant key. format: password writeOnly: true required: - merchantSiteId - merchantName - merchantKey CCAvenue: description: CCAvenue gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: CCAvenue credentials object. properties: merchantId: type: string description: ID of the CCAvenue merchant. accessCode: type: string description: CCAvenue access code. format: password writeOnly: true workingKey: type: string description: CCAvenue working key. format: password writeOnly: true required: - merchantId - accessCode - workingKey settings: type: object properties: useStandingInstructionApi: description: Specifies whether to use the Standing Instruction API. type: boolean default: false Chase: description: Chase gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: username: type: string description: Chase NetConnect username. password: type: string description: Chase NetConnect password. format: password writeOnly: true coNumber: type: string description: Chase CO number used for delimited file reports. divisionId: type: string description: ID of the Chase division. partialAuth: type: boolean description: Specifies whether to support partial authentications. default: false required: - username - password - coNumber - divisionId - partialAuth CheckoutCom: description: Checkout.com gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Checkout.com credentials object. properties: secretKey: type: string format: password description: Checkout.com secret API key. writeOnly: true required: - secretKey settings: type: object properties: markAsWaitingGatewayOnPendingPayout: type: boolean description: >- Specifies whether to mark pending payouts as 'waiting-gateway/unknown' instead of 'approved'. default: false subEntityIdWebsiteCustomField: type: string description: >- Name of the website custom field that contains the sub-entity ID. processingChannelId: type: string description: Checkout.com processing channel ID. threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' Chillstock: description: Chillstock gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Chillstock credentials object. properties: merchantId: type: string description: Merchant ID (MID). privateKey: type: string description: Chillstock private key. format: password x-multiline: true writeOnly: true required: - merchantId - privateKey settings: type: object properties: sandbox: type: boolean description: Specifies if the gateway account is forced to sandbox mode. default: false Circle: description: Circle gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Circle credentials object. properties: apiKey: type: string format: password description: Circle API key. writeOnly: true required: - apiKey Citadel: description: Citadel gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Citadel credentials object. properties: storeName: type: string description: Citadel store name. storeId: type: string description: ID of the Citadel store. username: type: string description: Citadel username. password: type: string description: Citadel password. format: password writeOnly: true required: - storeName - storeId - username - password Clearhaus: description: Clearhaus gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: apiKey: type: string description: Clearhaus API key. format: password writeOnly: true required: - apiKey Cleo: description: Cleo gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Cleo credentials object. properties: accessToken: type: string description: Cleo access token. format: password writeOnly: true required: - accessToken Conekta: description: Conekta gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Conekta credentials object. properties: apiKey: type: string description: Conekta private API key. format: password writeOnly: true required: - apiKey Coppr: description: Coppr gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Coppr credentials object. properties: organizationId: type: string description: ID of the Coppr organization. apiKey: type: string description: Coppr API key. format: password writeOnly: true required: - organizationId - apiKey settings: type: object description: Coppr settings object. properties: rebillyPublishableKey: type: string description: >- Rebilly publishable API key. If this value is provided, a payment token is created for each transaction. To obtain an API key, see [Manage API keys](https://www.rebilly.com/docs/dev-docs/api-keys/#manage-api-keys). Credorax: description: Credorax gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantId: type: string description: ID of the Credorax merchant. merchantMd5Signature: type: string description: Credorax MD5 signature. format: password writeOnly: true required: - merchantId - merchantMd5Signature Cryptonator: description: Cryptonator gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Cryptonator credentials object. properties: merchant_id: type: string description: ID of the Cryptonator merchant. secret: type: string description: Cryptonator secret. format: password writeOnly: true required: - merchant_id - secret CyberSource: description: CyberSource gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: CyberSource credentials object. properties: accessKey: type: string description: CyberSource access key. profileId: type: string description: ID of the CyberSource profile. secretKey: type: string description: CyberSource secret key. format: password writeOnly: true required: - accessKey - profileId - secretKey DataCash: description: DataCash gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: client: type: string description: DataCash client. password: type: string description: DataCash password. format: password writeOnly: true reportGroup: type: string description: DataCash report group. reportUser: type: string description: DataCash report user. reportPassword: type: string description: DataCash report password. format: password writeOnly: true visaPayoutsClient: type: string description: >- DataCash client for Visa OCT (Original Credit Transfer) payouts. visaPayoutsPassword: type: string description: >- DataCash password for Visa OCT (Original Credit Transfer) payouts. format: password writeOnly: true masterCardPayoutsClient: type: string description: >- DataCash client for MasterCard OCT (Original Credit Transfer) payouts. masterCardPayoutsPassword: type: string description: >- DataCash password for MasterCard OCT (Original Credit Transfer) payouts. format: password writeOnly: true required: - client - password settings: type: object description: Datacash settings object. properties: policy: type: integer description: Policy. minimum: 0 maximum: 7 default: 2 delay: type: integer description: Automatic capture delay in hours. minimum: 0 default: 0 Dengi: description: Dengi gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: projectId: type: string description: ID of the Dengi project. publicKey: type: string description: Dengi public key. format: password writeOnly: true refundKey: type: string description: Dengi refund key. format: password writeOnly: true required: - projectId - publicKey - refundKey Dimoco: description: Dimoco gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantId: type: string description: ID of the Dimoc merchant. orderId: type: string description: ID of the Dimoc project. password: type: string format: password description: ID of the Dimoc project. writeOnly: true required: - merchantId - orderId - password dLocal: description: dLocal gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: xLogin: type: string description: dLocal login. xTransKey: type: string description: dLocal transKey. secretKey: type: string format: password description: dLocal secret key. writeOnly: true xPayoutLogin: type: string description: dLocal payout login. xPayoutTransKey: type: string description: dLocal payout transKey. payoutSecretKey: type: string format: password description: dLocal payout secret key. writeOnly: true required: - xLogin - xTransKey - secretKey settings: type: object description: dLocal settings object. properties: createInstallmentPlan: type: boolean default: false description: >- Specifies whether to create an installment plan and use it for payment. customerDocumentCustomField: type: string description: >- Name of the custom field which contains customer document. Use this setting to skip the intermediate step of collecting the customer document for payment card transactions. Dragonphoenix: description: Dragonphoenix gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Dragonphoenix credentials object. properties: sid: type: string description: ID of the Dragonphoenix site. rcode: type: string description: Dragonphoenix rcode. format: password writeOnly: true required: - sid - rcode Dropayment: description: Dropayment gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Dropayment credentials object. properties: login: type: string description: Dropayment login. endpointId: type: string description: ID of the Dropayment end point. secretKey: type: string description: Dropayment secret key. format: password writeOnly: true required: - login - endpointId - secretKey Directa24Banks: type: string enum: - AA - AL - AZ - B - BAB - BB - BC - BE - BL - BM - BN - BP - BQ - BU - BV - BW - BX - BZ - CA - CE - CI - CU - EF - EN - EY - FA - FB - FC - GC - GG - HC - I - IA - IB - JM - LC - LE - LL - MC - ME - MD - MP - MT - NB - OM - OX - PC - PH - PL - SB - SC - SE - SF - SM - SS - ST - SU - TC - TK - TG - TR - TY - RY - UB - UI - UL - US - VD - VI - WA - WP - WU - XA Directa24: description: Directa24 gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Directa24 credentials object. properties: x_login: type: string description: Directa24 login. x_tran_key: type: string description: Directa24 transaction key. format: password writeOnly: true secret_key: type: string description: Directa24 secret key. format: password writeOnly: true web_pay_login: type: string description: Directa24 web pay status login. web_pay_tran_key: type: string description: Directa24 web pay status password. format: password writeOnly: true cashout_login: type: string description: Directa24 cashout login. cashout_password: type: string description: Directa24 cashout password. format: password writeOnly: true required: - x_login - x_tran_key - secret_key - web_pay_login - web_pay_tran_key settings: type: object description: Directa24 settings object. properties: banks: type: array description: List of banks that is displayed to customers. items: $ref: '#/components/schemas/Directa24Banks' skipStep: type: boolean description: >- Specifies whether to skip the enter user personal information step. useV3Api: type: boolean description: Specifies whether to use Directa24 API version 3. storeIdNumber: type: boolean description: >- Specifies whether to store the customer ID number for future use. EasyPayDirect: description: EasyPayDirect gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: EasyPayDirect credentials object. properties: secretKey: type: string description: API secret key of the EasyPayDirect account. format: password writeOnly: true required: - secretKey EBANX: description: EBANX gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: EBANX credentials object. properties: integrationKey: type: string description: EBANX integration key. format: password writeOnly: true required: - integrationKey EPG: description: EPG gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: EPG credentials object. properties: merchantId: type: string description: ID of the merchant. productId: type: string description: ID of the product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ merchantPassword: type: string description: Merchant password. format: password writeOnly: true merchantKey: type: string description: Merchant key. format: password writeOnly: true required: - merchantId - productId - merchantPassword - merchantKey EPro: description: EPro gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: EPro credentials object. properties: apiSecretKey: type: string description: EPro secret API key. format: password writeOnly: true required: - apiSecretKey EcorePay: description: EcorePay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: accountId: type: string description: ID of the EcorePay account. accountAuth: type: string description: EcorePay account authentication. format: password writeOnly: true required: - accountId - accountAuth Elavon: description: Elavon gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Elavon credentials object. properties: ssl_merchant_id: type: string description: ID of the Elavon merchant. ssl_user_id: type: string description: ID of the Elavon user. ssl_pin: type: string description: Elavon pin. format: password writeOnly: true required: - ssl_merchant_id - ssl_user_id - ssl_pin EMS: description: EMS e-Commerce (XML) API gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: settings: type: object description: EMS settings object. properties: delay: type: integer description: Automatic capture delay in hours. credentials: type: object description: EMS credentials object. properties: storeId: type: string description: ID of the EMS store. userId: type: string description: ID of the EMS account. password: type: string format: password description: EMS password. writeOnly: true privateKey: type: string format: password description: Private key. x-multiline: true writeOnly: true privateKeyPassword: type: string format: password description: Private key password. writeOnly: true clientCertificate: type: string description: Client certificate. x-multiline: true clientCertificatePassword: type: string format: password description: Client certificate password. writeOnly: true serverCertificate: type: string description: Server certificate. x-multiline: true merchantName: type: string description: Merchant name for SFTP reconciliation. sftpPrivateKey: type: string format: password description: SFTP reconciliation private key. x-multiline: true writeOnly: true required: - storeId - userId - password - privateKey - privateKeyPassword - clientCertificate - clientCertificatePassword - serverCertificate threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' ePay: description: ePay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: ePay credentials object. properties: merchantId: type: string description: ID of the ePay merchant. secretKey: type: string format: password description: ePay secret key. writeOnly: true required: - merchantId - secretKey Euteller: description: Euteller gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Euteller credentials object. properties: username: type: string description: Euteller username. password: type: string format: password description: Euteller password. writeOnly: true required: - username - password Ezeebill: description: Ezeebill gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Ezeebill credentials object. properties: merchantId: type: string description: Merchant ID (MID) of the Ezeebill gateway. accessId: type: string description: Access ID of the Ezeebill gateway. format: password writeOnly: true terminalId: type: string description: Terminal ID of the Ezeebill gateway. operatorId: type: string description: Operator ID of the Ezeebill gateway. password: type: string description: API access operator password of the Ezeebill gateway. format: password writeOnly: true hashKey: type: string description: Hash key of the Ezeebill gateway. format: password writeOnly: true required: - merchantId - accessId - terminalId - operatorId - password - hashKey eZeeWallet: description: eZeeWallet gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: eZeeWallet credentials object. properties: apiUsername: type: string description: eZeeWallet API username. format: password writeOnly: true apiPassword: type: string description: eZeeWallet API password. format: password writeOnly: true required: - apiUsername - apiPassword ezyEFT: description: ezyEFT gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: ezyEFT credentials object. properties: merchantId: type: string description: ID of the ezyEFT merchant. merchantToken: type: string format: password description: ezyEFT merchant token. writeOnly: true required: - merchantId - merchantToken FinTecSystems: description: FinTecSystems gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: FinTecSystems credentials object. properties: apiKey: type: string description: FinTecSystems API key. format: password writeOnly: true required: - apiKey settings: type: object description: FinTecSystems settings object. properties: recipientIBAN: type: string description: IBAN of the recipient account. recipientBIC: type: string description: BIC of the recipient account. recipientCountry: type: string description: Two letter country code. enum: - AT - CH - DE recipientHolder: type: string description: Account holder of the recipient account. required: - recipientIBAN - recipientBIC - recipientHolder - recipientCountry Finrax: description: Finrax gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Finrax credentials object. properties: businessId: type: string description: ID of the Finrax business. apiKey: type: string description: Finrax API key. format: password writeOnly: true apiSecret: type: string description: Finrax API secret. format: password writeOnly: true required: - businessId - apiKey - apiSecret settings: type: object description: Finrax settings object. required: - tolerancePercentage properties: tolerancePercentage: $ref: '#/components/schemas/AmountAdjustmentTolerance' Flexepin: description: Flexepin gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: apiKey: type: string description: Flexepin API key. apiSecret: type: string description: Flexepin API secret. format: password writeOnly: true required: - apiKey - apiSecret settings: type: object description: Flexepin settings object. properties: adjustAmountFromVoucher: type: boolean description: >- Specifies whether to adjust the amount or currency based on a Flexepin voucher. default: false example: false Forte: description: Forte gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: accountId: type: string description: ID of the Forte account. locationId: type: string description: ID of the Forte location. apiAccessId: type: string description: ID of the Forte API access. format: password writeOnly: true apiSecretKey: type: string description: Forte API secret key. format: password writeOnly: true required: - accountId - locationId - apiAccessId - apiSecretKey FundSend: description: FundSend gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: clientId: type: string description: ID of the FundSend client. secretWord: type: string description: FundSend secret word. format: password writeOnly: true required: - clientId - secretWord GET: description: GET gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: accountId: type: string description: ID of the GET account. required: - accountId Gigadat: description: Gigadat gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Gigadat credentials object. properties: campaignId: type: string description: ID of the Gigadat campaign. accessToken: type: string description: Gigadat access token. format: password writeOnly: true securityToken: type: string description: Gigadat security token. format: password writeOnly: true required: - campaignId - accessToken - securityToken settings: type: object properties: sandbox: type: boolean description: Specifies if the gateway account is in sandbox mode. default: false required: - sandbox GlobalOne: description: GlobalOne gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: terminalId: type: string description: ID of the GlobalOne terminal. sharedSecret: type: string description: GlobalOne shared secret. format: password writeOnly: true required: - terminalId - sharedSecret Gooney: description: Gooney gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Gooney credentials object. properties: apiUser: type: string description: Gooney API user. apiPassword: type: string description: Gooney API password. format: password writeOnly: true apiKey: type: string description: Gooney API key. apiSecret: type: string description: Gooney API secret. format: password writeOnly: true required: - username - password - apiKey - apiSecret Gpaysafe: description: Gpaysafe gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: apiKey: type: string description: Gpaysafe apiKey. required: - apiKey Greenbox: description: Greenbox gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Greenbox credentials object. properties: clientId: type: string description: ID of the Greenbox client. locationId: type: string description: ID of the Greenbox location. clientSecret: type: string description: Greenbox client secret. format: password writeOnly: true required: - clientId - clientSecret - locationId HiPay: description: HiPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: HiPay credentials object. properties: apiUsername: type: string description: HiPay API user name. apiPassword: type: string description: HiPay API password. format: password writeOnly: true required: - apiUsername - apiPassword ICEPAY: description: ICEPAY gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: ICEPAY credentials object. properties: merchantId: type: string description: ID of the ICEPAY merchant. format: password writeOnly: true secretKey: type: string description: ICEPAY API secret key. format: password writeOnly: true required: - merchantId - secretKey INOVAPAY: description: INOVAPAY gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: INOVAPAY credentials object. properties: apiKey: type: string description: INOVAPAY API key. apiSecret: type: string description: INOVAPAY API secret. format: password writeOnly: true required: - apiKey - apiSecret Ilixium: description: Ilixium gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Ilixium credentials object. properties: merchantId: type: string description: ID of the Ilixium merchant. accountId: type: string description: ID of the Ilixium account. digestPassword: type: string description: Ilixium digest password. format: password writeOnly: true sftpUsername: type: string description: SFTP username. sftpPrivateKey: type: string description: SFTP private key. format: password x-multiline: true writeOnly: true sftpKeyPassphrase: type: string format: password description: Passphrase of the SFTP private key. writeOnly: true required: - merchantId - accountId - digestPassword settings: type: object description: Ilixium settings object. properties: useIpFrame: type: boolean description: >- Specifies whether to force Ilixium to process using Ip Frame. useCreditEndpoint: type: boolean description: >- Specifies whether to use a previous approval credit endpoint for payouts. useStandaloneCreditEndpoint: type: boolean description: >- Specifies whether to use a standalone (token) credit endpoint for payouts. platform: type: string description: Direct API platform. default: itix enum: - itix - tpg threeDSecureServer: type: object description: Ilixium 3DS server. properties: name: description: Name of the merchant plug-in. type: string enum: - Ilixium3dsServer Ingenico: description: Ingenico gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantId: type: string description: ID of the Ingenico merchant. apiKeyId: type: string description: ID of the Ingenico API key. apiSecretKey: type: string description: Ingenico API secret key. format: password writeOnly: true skipFraudService: type: boolean description: Ingenico skip fraud service. required: - merchantId - apiKeyId - apiSecretKey Inovio: description: Inovio gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: Inovio credentials object. properties: username: type: string description: Inovio username. password: type: string description: Inovio password. format: password writeOnly: true required: - username - password settings: type: object description: Inovio settings object. properties: websiteId: type: string description: ID of the Inovio website. maxLength: 50 example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG merchantAccountId: type: string description: ID of the Inovio merchant account. productId: type: string description: ID of the Inovio product. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ required: - websiteId - merchantAccountId - productId InstaDebit: description: InstaDebit gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: InstaDebit credentials object. properties: merchantId: type: string description: InstaDebit merchant account number. password: type: string description: InstaDebit merchant account password. format: password writeOnly: true required: - merchantId - password settings: type: object properties: merchantSubId: type: integer description: Sub ID of the merchant or organization. Intuit: description: Intuit gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: clientId: type: string description: Intuit client_id key. clientSecret: type: string description: Intuit client_secret key. format: password writeOnly: true required: - clientId - clientSecret IpayOptions: description: Ipay Options gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: Ipay Options credentials object. properties: sid: type: string description: ID of the Ipay Options website. rcode: type: string description: Ipay Options rcode. format: password writeOnly: true required: - sid - rcode settings: type: object description: Ipay Options settings object. properties: extraStep: type: boolean description: >- Specifies whether to display an extra step where the user must enter their email and DNI number. subdomain: type: string description: Subdomain to use when sending request to IpayOptions. enum: - miglite - w88asiapay platform: type: string description: Platform which IpayOptions processes. enum: - SOAP - TxHandler - SecureHosted cardType: type: string description: Manually set the card_type for iDEAL. enum: - ideal - idealqr - sofort JetPay: description: JetPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: TerminalID: type: string description: ID of the JetPay terminal. required: - TerminalID Jeton: description: Jeton gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: apiKey: type: string description: Jeton API key. format: password writeOnly: true required: - apiKey settings: type: object properties: method: type: string description: Jeton method. enum: - CHECKOUT - DIRECT - QR - JETGO required: - method JPMOrbital: description: JPMOrbital gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantId: type: string description: ID of the JPMOrbital merchant. username: type: string description: Username of the JPMOrbital merchant. password: type: string description: Password of the JPMOrbital merchant. format: password writeOnly: true required: - merchantId - username - password Khelocard: description: Khelocard gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Credentials object. required: - merchantId - referrer - apiKey - apiSecret properties: merchantId: type: string description: ID of the Khelocard merchant. referrer: type: string description: Referrer URL registered at Khelocard. format: uri apiKey: type: string description: Khelocard API key. format: password writeOnly: true apiSecret: type: string description: Khelocard API secret. format: password writeOnly: true Klarna: description: Klarna gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: Credentials object. required: - username - password properties: username: type: string description: Klarna API username. password: type: string description: Klarna API password. format: password writeOnly: true settings: type: object description: Settings object. required: - region properties: region: type: string description: Klarna API region. enum: - EU - NA - OC usePayNowStandalone: type: boolean description: >- Specifies whether to use the Klarna Pay Now Standalone method. default: false example: false Konnektive: description: Konnektive gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: Credentials object. required: - loginId - password properties: loginId: type: string description: ID of the Konnektive API login. password: type: string description: Konnektive API password. format: password writeOnly: true settings: type: object description: Settings object. required: - campaignId - productId properties: campaignId: type: string description: Konnektive campaign ID for which the order is being placed. productId: type: string description: >- Konnektive campaign product ID for which the order is being placed. maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ LaCore: description: LaCore gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: LaCore credentials object. properties: merchantId: type: string description: ID of the LaCore merchant. username: type: string description: Username of the LaCore merchant. password: type: string description: Password of the LaCore merchant. format: password writeOnly: true required: - merchantId - username - password threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' loonie: description: loonie gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: loonie credentials object. properties: merchantId: type: string description: ID of the loonie merchant. merchantToken: type: string format: password description: loonie merchant token. writeOnly: true required: - merchantId - merchantToken LPG: description: LPG gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: LPG credentials object. properties: publicKey: type: string description: LPG public API key. secureKey: type: string description: LPG secure API key. format: password writeOnly: true payoutUsername: type: string description: LPG payout account username. format: password writeOnly: true payoutPassword: type: string description: LPG payout account password. format: password writeOnly: true required: - publicKey - secureKey MaxiCash: description: MaxiCash gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: MaxiCash credentials object. properties: merchantId: type: string description: ID of the MaxiCash API merchant. password: type: string description: MaxiCash API password. format: password writeOnly: true required: - merchantId - password MercadoPago: description: MercadoPago gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: MercadoPago credentials object. properties: publicKey: type: string description: MercadoPago public key. accessToken: type: string description: MercadoPago access token. format: password writeOnly: true required: - publicKey - accessToken MiFinity: description: MiFinity gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: MiFinity credentials object. properties: apiKey: type: string format: password description: MiFinity API key. writeOnly: true mifinityAccountNumber: type: string format: password description: MiFinity account number. writeOnly: true accountHolderId: type: string description: ID of the MiFinity account holder. brandId: type: string description: >- Three-digit ID provided by MiFinity which indicates through which brand the call made. required: - apiKey - mifinityAccountNumber - accountHolderId MobilePay: description: MobilePay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantSerialNumber: type: string description: Serial number of the MobilePay merchant. subscriptionKey: type: string description: Subscription key of the MobilePay merchant. clientId: type: string description: ID of the MobilePay client. clientSecret: type: string description: MobilePay client secret. format: password writeOnly: true required: - merchantSerialNumber - subscriptionKey - clientId - clientSecret Moneris: description: Moneris gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: apiToken: type: string description: Moneris API token. format: password writeOnly: true storeId: type: string description: ID of the Moneris store. required: - storeId - apiToken MtaPay: description: MTA Pay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object properties: accountId: type: string description: ID of the MTA Pay account. partyId: type: string description: ID of the MTA Pay party. md5key: type: string description: MTA Pay MD5 key. format: password writeOnly: true required: - accountId - partyId - md5key settings: type: object description: MTA Pay settings object. properties: goods: type: string description: MTA Pay goods. mobilePay: type: string description: MTA Pay mobile pay parameter. required: - mobilePay - goods MuchBetter: description: MuchBetter gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: MuchBetter credentials object. properties: merchantAccountId: type: string description: ID of the MuchBetter merchant account. apiKey: type: string description: MuchBetter API key. format: password writeOnly: true required: - merchantAccountId - apiKey settings: type: object description: MuchBetter settings object. properties: brandName: type: string description: MuchBetter brand name used for reporting and logo. hasPhoneNumberRequest: type: boolean description: >- Specifies whether to request phone a number before submitting the request to MuchBetter. default: false MuchBetterGateway: description: MuchBetterGateway gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: MuchBetterGateway credentials object. properties: apiKey: type: string description: MuchBetterGateway API key. format: password writeOnly: true secretKey: type: string description: MuchBetterGateway secret key. format: password writeOnly: true required: - apiKey - secretKey MyFatoorah: description: MyFatoorah gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: MyFatoorah credentials object. properties: apiKey: type: string description: MyFatoorah API key. format: password writeOnly: true required: - apiKey Neosurf: description: Neosurf gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Neosurf credentials object. properties: merchantId: type: string description: ID of the Neosurf merchant. secretKey: type: string description: Neosurf API secret key. format: password writeOnly: true required: - merchantId - secretKey NMI: description: NMI gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: username: type: string description: NMI API token. password: type: string description: ID of the NMI store. format: password writeOnly: true required: - username - password settings: type: object properties: disableStoredCredentials: description: >- Specifies whether to disable NMI stored credentials for Customer Initiated Transactions (CIT) and Merchant Initiated Transactions (MIT). type: boolean default: false threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' Netbanking: description: Netbanking gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Netbanking credentials object. properties: midcode: type: string description: Netbanking Merchant Identification (MID) code. midsecret: type: string description: Netbanking Merchant Identification (MID) secret key. format: password writeOnly: true required: - midcode - midsecret Neteller: description: Neteller gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Neteller credentials object. properties: paysafePaymentsApiUsername: type: string description: Neteller Paysafe Payments API username for a private key. paysafePaymentsApiPassword: type: string description: Neteller Paysafe Payments API password for a private key. format: password writeOnly: true required: - paysafePaymentsApiUsername - paysafePaymentsApiPassword settings: type: object properties: populateCustomerEmail: type: boolean description: Specifies whether to the populate customer email at payment. NGenius: description: NGenius gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: NGenius credentials object. properties: outletId: type: string description: ID of the NGenius outlet. apiKey: type: string description: NGenius API key. format: password writeOnly: true required: - outletId - apiKey NinjaWallet: description: NinjaWallet gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: NinjaWallet credentials object. properties: apiKey: type: string description: NinjaWallet API key. format: password writeOnly: true secret: type: string description: NinjaWallet secret. format: password writeOnly: true passphrase: type: string description: NinjaWallet passphrase. format: password writeOnly: true required: - apiKey - secret - passphrase NordikCoin: description: NordikCoin gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: NordikCoin credentials object. properties: merchantId: type: string description: ID of the NordikCoin merchant. secret: type: string description: NordikCoin secret key. format: password writeOnly: true required: - merchantId - secret NOWPayments: description: NOWPayments gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: NOWPayments credentials object. properties: apiKey: type: string format: password writeOnly: true ipnSecret: type: string format: password writeOnly: true required: - apiKey - ipnSecret settings: type: object description: NOWPayments settings object. required: - tolerancePercentage properties: tolerancePercentage: $ref: '#/components/schemas/AmountAdjustmentTolerance' NuaPay: description: NuaPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: NuaPay credentials object. properties: nuaPayCommonName: type: string description: NuaPay common name. nuaPaySerialNumber: type: string description: NuaPay serial number. nuaPayAccountId: type: string description: ID of the NuaPay account. nuaPayOriginatorIban: type: string description: NuaPay origiantor IBAN. format: password writeOnly: true nuaPayApiKey: type: string description: NuaPay API key. format: password writeOnly: true nuaPayPrivateKey: type: string description: NuaPay private key. format: password x-multiline: true writeOnly: true required: - nuaPayCommonName - nuaPaySerialNumber - nuaPayAccountId - nuaPayOriginatorIban - nuaPayApiKey - nuaPayPrivateKey OchaPay: description: OchaPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: apiUsername: type: string description: OchaPay username. apiPassword: type: string description: OchaPay API password. format: password writeOnly: true secretWord: type: string description: OchaPay secret word. format: password writeOnly: true required: - apiUsername - apiPassword - secretWord Onlineueberweisen: description: Onlineueberweisen gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: Onlineueberweisen credentials object. properties: apiKey: type: string description: Onlineueberweisen API key. format: password writeOnly: true nuaPayApiKey: type: string description: NuaPay API key for reconciliation. format: password writeOnly: true nuaPayAccountId: type: string description: NuaPay account ID for reconciliation. required: - apiKey settings: type: object description: Onlineueberweisen settings object. properties: payformCode: type: string description: Onlineueberweisen code to use a customized PayForm template. default: default OnRamp: description: OnRamp gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: OnRamp credentials object. properties: apiKey: type: string format: password writeOnly: true required: - apiKey settings: type: object description: OnRamp settings object. properties: useServerToServerApi: type: boolean description: Specifies whether to use OnRamp server to server API. default: false logoUrl: type: string description: Set this value to use a custom logo. format: url Orbital: description: Orbital gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Orbital credentials object. properties: apiKey: type: string description: Orbital API key. format: password writeOnly: true required: - apiKey settings: type: object description: Orbital settings object. properties: targetCurrency: description: Currency to which the received cryptocurrency is converted. type: string enum: - USD - EUR - GBP mainCryptoCurrency: description: Blockchain network to be used. type: string enum: - ETH - SOL - TRX logoImageUrl: description: >- Logo image in PNG or SVG format to be displayed on the deposit screen. type: string productImageUrl: description: >- Product image in JPEG format to be displayed on the deposit screen. type: string Pagadito: description: Pagadito gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Pagadito credentials object. properties: uid: type: string format: password description: Pagadito UID. writeOnly: true wsk: type: string format: password description: Pagadito WSK. writeOnly: true required: - uid - wsk settings: type: object properties: useRecurringApi: type: boolean default: false description: >- Specifies whether to use the Pagadito API for reoccurring payments. Pagsmile: description: Pagsmile gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantId: type: string description: ID of the Pagsmile merchant. appId: type: string description: ID of the Pagsmile application. secretKey: type: string description: Pagsmile MD5 key. format: password writeOnly: true apiSecretKey: type: string description: >- Pagsmile secret key for the Trade Pay API. The key starts with `Pagsmile_sk`. format: password writeOnly: true required: - merchantId - appId - secretKey settings: type: object description: Pagsmile settings object. properties: useTradePay: type: boolean description: Specifies whether to use the Trade Pay API. default: false example: false Panamerican: description: Panamerican gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: Panamerican credentials object. properties: key: type: string description: Panamerican key. password: type: string description: Panamerican password. format: password writeOnly: true required: - key - password settings: type: object description: Panamerican settings object. properties: extraStep: type: boolean description: >- Specifies whether to display a step where the user must enter their ID number. convertToAscii: type: boolean description: Specifies whether to convert all chars to ascii. required: - extraStep PandaGateway: description: Panda gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantCode: type: string description: Panda merchant code. apiCode: type: string description: Panda API code. signKey: type: string description: Panda sign key. format: password writeOnly: true required: - merchantCode - apiCode - signKey ParamountCommerce: description: ParamountCommerce gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: ParamountCommerce credentials object. properties: merchantId: type: string description: ParamountCommerce merchant ID. appId: type: string description: ParamountCommerce application ID. clientId: type: string description: ParamountCommerce client ID. clientSecret: type: string description: ParamountCommerce client secret. format: password writeOnly: true required: - merchantId - appId - clientId - clientSecret settings: type: object properties: merchantSubId: type: string description: ParamountCommerce merchant sub ID. merchantTransactionType: type: string description: ParamountCommerce merchant transaction type. enum: - POKER - CASINO - BINGO - SPORTS_BETTING - DIGITAL_REMITTANCE - E_SPORTS useDirectDeposit: type: boolean description: Specifies whether to use One-Click Payments. default: false example: false required: - merchantSubId - merchantTransactionType ParamountEft: description: Paramount gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Paramount credentials object. properties: merchant_id: type: string description: ID of the merchant account. merchant_pass: type: string description: Merchant account password. format: password writeOnly: true payee: type: string description: Merchant name or descriptor. required: - merchant_id - merchant_pass - payee ParamountInterac: description: ParamountInterac gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: ParamountInterac credentials object. properties: merchantId: type: string description: ID of the ParamountInterac merchant. encryptionKey: type: string description: ParamountInterac encryption key. format: password writeOnly: true password: type: string description: ParamountInterac password for query. format: password writeOnly: true required: - merchantId - encryptionKey - password settings: type: object properties: sandbox: type: boolean description: Specifies if the gateway account is in sandbox mode. default: false merchantSubId: type: integer description: Sub ID of the merchant or organization. Pay4Fun: description: Pay4Fun gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Pay4Fun credentials object. properties: merchantId: type: string description: ID of the Pay4Fun merchant. merchantSecret: type: string description: Pay4Fun merchant secret. format: password writeOnly: true merchantKey: type: string description: Pay4Fun merchant key. format: password writeOnly: true required: - merchantId - merchantSecret - merchantKey PayCash: description: PayCash gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PayCash credentials object. properties: emisor: type: string description: PayCash merchant identifier. token: type: string description: PayCash token. format: password writeOnly: true required: - emisor - token PayClub: description: PayClub gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PayClub credentials object. properties: merchantId: type: string description: ID of the PayClub merchant. accountNumber: type: string description: PayClub account number. signKey: type: string format: password description: PayClub sign key. writeOnly: true required: - apiKey - accountNumber - signKey settings: type: object properties: use3DSChannel: type: boolean description: Specifies whether to use a 3DS channel. PayEcards: description: PayEcards gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PayEcards credentials object. properties: clientKey: type: string description: Client key of the PayEcards gateway. password: type: string description: Password of the PayEcards gateway. format: password writeOnly: true paymentUrl: type: string description: Payment URL of the PayEcards gateway for S2S integration. required: - clientKey - password - paymentUrl Paynote: description: Paynote gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: publicKey: type: string description: Paynote public key. secretKey: type: string format: password description: Paynote secret key. writeOnly: true required: - publicKey - secretKey PayPal: description: PayPal gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - settings properties: credentials: type: object description: >- PayPal credentials object. This object specifies the PayPal Partner account from which a gateway account is registered. properties: partnerId: type: string description: ID of the PayPal Partner account. partnerClientId: type: string description: ID of the PayPal Partner account API client. partnerSecret: type: string description: Secret key for the PayPal Partner account API client. format: password writeOnly: true partnerBnCode: type: string description: |- BN Code for the PayPal Partner account. This unique code tracks the source of API requests. settings: type: object description: PayPal settings object. required: - redirectUrl properties: redirectUrl: type: string description: >- URL where the user is redirected after authorizing the account on PayPal. format: url enableGuestCheckout: type: boolean default: false description: >- Specifies whether to allow users without PayPal accounts to pay using credit or debit cards. useHostedCheckoutForm: type: boolean default: false description: >- Specifies whether to use a Rebilly hosted PayPal form instead of redirecting customers to PayPal. For more information, see [Create a payment form using the Rebilly API](https://www.rebilly.com/docs/dev-docs/create-a-hosted-payment-form/). forceGuestCheckout: type: boolean default: false description: >- Specifies whether to suppress the PayPal payment method when a guest checkout is available. This option is only applicable when `useHostedCheckoutForm` is enabled. enableAlternativePaymentMethods: type: boolean default: false description: >- Specifies whether to allow customers to pay using the alternative payment options supported by PayPal. When enabled, customers must manually approve all payments. Payeezy: description: Payeezy gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantId: type: string description: ID of the Payeezy merchant. merchantToken: type: string description: Merchant token. format: password writeOnly: true apiKey: type: string description: API key. apiSecret: type: string description: API secret. format: password writeOnly: true required: - merchantId - merchantToken - apiKey - apiSecret Payflow: description: Payflow gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Payflow credentials object. properties: user: type: string description: >- Payflow user. If you set up one or more additional users on the account, this value is the ID of the user that is authorized to process transactions. If do not set up additional users on the account, `user` has the same value as `vendor`. vendor: type: string description: ID of the Payflow merchant login. password: type: string description: Payflow merchant password. format: password writeOnly: true required: - user - vendor - password PaymentAsia: description: PaymentAsia gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PaymentAsia credentials object. properties: apiKey: type: string format: password description: PaymentAsia API key. writeOnly: true required: - apiKey PaymenTechnologies: description: PaymenTechnologies gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: authenticateId: type: string description: ID of the PaymenTechnologies authenticate. authenticatePw: type: string description: PaymenTechnologies authenticate password. format: password writeOnly: true publicKey: type: string description: PaymenTechnologies API public key. secretKey: type: string description: PaymenTechnologies API secret key. format: password writeOnly: true apiKey: type: string description: PaymenTechnologies API key required for query operations. format: password writeOnly: true required: - authenticateId - authenticatePw - publicKey - secretKey - apiKey settings: type: object properties: use3DSEndpoint: type: boolean description: Specifies whether to use a 3DS endpoint. PaymentsOS: description: PaymentsOS gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: appId: type: string description: ID of the PaymentsOS application. publicKey: type: string description: PaymentsOS public key. privateKey: type: string format: password description: PaymentsOS private key. writeOnly: true required: - appId - privateKey - publicKey threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' Paymero: description: Paymero gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Paymero credentials object. properties: apiKey: type: string description: Paymero API key. format: password writeOnly: true required: - apiKey settings: type: object description: Paymero settings object. properties: targetCurrency: description: Currency to which the received cryptocurrency is converted. type: string minLength: 3 maxLength: 3 example: USD mainCurrency: description: Blockchain on which the currency is processed. type: string enum: - TRX - ETH amountExceeded: description: >- Specifies whether to decline transactions when the amount received exceeds the amount requested. type: boolean default: false Payper: description: Payper gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Payper credentials object. required: - secretKey properties: secretKey: type: string format: password description: Payper secret key. writeOnly: true Payr: description: Payr gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: clientId: type: string description: ID of the Payr client. secretWord: type: string description: Payr secret word. format: password writeOnly: true apiUserId: type: string description: |- Username for the Alliance API. This API is used for transaction reporting. apiSecurityToken: type: string description: |- Hash of the password for the Alliance API. This API is used for transaction reporting. format: password writeOnly: true required: - clientId - secretWord PayRedeem: description: PayRedeem gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PayRedeem credentials object. properties: apiUser: type: string description: PayRedeem API user. apiPassword: type: string description: PayRedeem API password. format: password writeOnly: true apiKey: type: string description: PayRedeem API key. format: password writeOnly: true required: - apiUser - apiPassword - apiKey threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' PayRetailers: description: PayRetailers gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PayRetailers credentials object. properties: shopId: type: string description: ID of the PayRetailers shop. secretKey: type: string description: Secret key value of the PayRetailers API. format: password writeOnly: true required: - shopId - secretKey Paysafe: description: Paysafe gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: storeId: type: string description: ID of the Paysafe store. storePwd: type: string description: Paysafe store password. format: password writeOnly: true accountNum: type: string description: Paysafe account number. required: - storeId - storePwd - accountNum Paysafecard: description: Paysafecard gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: apiKey: type: string description: Paysafecard API key. format: password writeOnly: true required: - apiKey Paysafecash: description: Paysafecash gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: apiKey: type: string description: Paysafecash API key. format: password writeOnly: true required: - apiKey PayTabs: description: PayTabs gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PayTabs credentials object. properties: profileId: type: string description: ID of the PayTabs profile. clientKey: type: string description: PayTabs client key. serverKey: type: string format: password description: PayTabs server key. writeOnly: true required: - profileId - clientKey - serverKey PayULatam: description: PayULatam gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PayULatam credentials object. properties: merchantId: type: string description: ID of the PayULatam merchant. accountId: type: string description: ID of the PayULatam account. apiLogin: type: string description: PayULatam API login. apiKey: type: string description: PayULatam API key. format: password writeOnly: true required: - merchantId - accountId - apiLogin - apiKey Payvision: description: Payvision gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: memberId: type: string description: ID of the Payvision member. memberGuid: type: string description: Payvision member guid. format: password writeOnly: true required: - memberId - memberGuid settings: type: object description: Payvision settings object. properties: avs: type: boolean description: Specifies whether to use Payvision AVS. delay: type: integer description: Automatic capture delay in hours. merchantAccountType: type: integer description: Payvision merchant account type. required: - merchantAccountType PharosPayments: description: PharosPayments gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PharosPayments credentials object. properties: username: type: string description: Authentication username. password: description: Authentication password. type: string format: password merchantCode: type: string description: Merchant code. terminalCode: type: string description: Terminal code. required: - username - password - merchantCode - terminalCode Piastrix: description: Piastrix gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Piastrix credentials object. properties: shopId: type: string description: ID of the Piastrix shop. secretKey: type: string description: Piastrix secret key. format: password writeOnly: true required: - shopId - secretKey settings: type: object description: Piastrix settings object. properties: tolerancePercentage: type: integer description: Tolerance percentage for settled amounts. minimum: 0 maximum: 5 example: 5 Pin4Pay: description: Pin4Pay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Credentials object. required: - username - requestOrigin - codigoCliente - keyValue properties: username: type: string description: Pin4Pay API username. requestOrigin: type: string description: Pin4Pay API request origin. codigoCliente: type: string description: Pin4Pay API codigo cliente. keyValue: type: string description: Pin4Pay API password. format: password writeOnly: true Plugnpay: description: Plugnpay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: publisher-name: type: string description: ID of the Plugnpay member. publisher-password: type: string description: Plugnpay AVS. format: password writeOnly: true required: - publisher-name - publisher-password PostFinance: description: PostFinance gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PostFinance credentials object. properties: pspId: type: string description: ID of the PostFinance PSP. merchantId: type: string description: ID of the PostFinance merchant. sftpUsername: type: string description: PostFinance SFTP username. publicKey: type: string x-multiline: true description: PostFinance public key. privateKey: type: string format: password x-multiline: true description: PostFinance private key. writeOnly: true keyPassphrase: type: string format: password description: PostFinance key passphrase. writeOnly: true sftpPrivateKey: type: string format: password x-multiline: true description: PostFinance SFTP private key. writeOnly: true sftpKeyPassphrase: type: string format: password description: PostFinance SFTP key passphrase. writeOnly: true required: - pspId - merchantId - sftpUsername - publicKey - privateKey - keyPassphrase - sftpPrivateKey - sftpKeyPassphrase settings: type: object properties: skipPaymentFileUpload: type: boolean default: false description: Specifies whether to skip the payment file upload screen. enableAliasAuthentication: type: boolean default: false description: Specifies whether to enable alias authentication. PSiGate: description: PSiGate gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: username: type: string description: Username or store name. password: type: string description: Password of the PSiGate gateway account. format: password writeOnly: true clientId: type: string description: Client ID. clientApiKey: type: string description: Client API key. format: password writeOnly: true disputeUsername: type: string description: Username for fetching disputes. disputePassword: type: string description: Password for fetching disputes. format: password writeOnly: true required: - username - password - clientId - clientApiKey threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' PPRO: description: PPRO gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: PPRO credentials object. properties: login: type: string description: PPRO merchant API username. password: type: string description: PPRO merchant API password. format: password writeOnly: true contractId: type: string description: |- ID of the PPRO contract. This value is used for API credentials. privateKey: type: string format: password description: PPRO private key. x-multiline: true writeOnly: true privateKeyPassword: type: string format: password description: PPRO private key password. writeOnly: true clientCertificate: type: string description: Public key. x-multiline: true serverCertificate: type: string description: PPRO CA certificate. x-multiline: true notificationSecret: type: string format: password description: Secret used for IPN URLs. writeOnly: true sharedSecret: type: string format: password description: Secret used for redirect URLs. writeOnly: true required: - login - password - contractId - privateKey - privateKeyPassword - clientCertificate - serverCertificate - notificationSecret - sharedSecret Prosa: description: Prosa gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Prosa credentials object. properties: entityId: type: string description: ID of the Prosa entity. accessToken: type: string format: password description: Prosa access token. writeOnly: true required: - entityId - accessToken threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' Rapyd: description: Rapyd gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Rapyd credentials object. properties: accessKey: type: string description: Rapyd access key. secretKey: type: string format: password description: Rapyd secret key. writeOnly: true required: - accessKey - secretKey settings: type: object description: Rapyd settings object. properties: ipnUrl: type: string description: |- Instant Payment Notification (IPN) URL configured on Rapyd. This value is used to calculate the signature. RPN: description: RPN gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: mid: type: string description: RPN merchant identifier. key: type: string description: RPN key. format: password writeOnly: true required: - mid - key Realex: description: Realex gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantId: type: string description: ID of the Realex merchant. secretKey: type: string description: Realex secret key. format: password writeOnly: true rebatePassword: type: string description: Realex rebate password. format: password writeOnly: true account: type: string description: Realex account. required: - merchantId - secretKey - rebatePassword - account Realtime: description: Realtime gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: clientId: type: string description: ID of the Realtime client. secretWord: type: string description: Realtime secret word. format: password writeOnly: true required: - clientId - secretWord Redsys: description: Redsys gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantCode: type: string description: Redsys merchant code. format: password writeOnly: true secretCode: type: string description: Redsys secret code. format: password writeOnly: true required: - merchantCode - secretCode settings: type: object description: Redsys settings object. properties: terminal: type: string description: Redsys terminal. Rotessa: description: Rotessa gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: Rotessa credentials object. properties: apiKey: type: string description: Rotessa API key. format: password writeOnly: true required: - apiKey settings: type: object description: Rotessa settings object. properties: delay: type: integer description: Automatic capture delay. required: - delay Safecharge: description: Safecharge gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Safecharge credentials object. properties: merchantId: type: string description: ID of the Safecharge merchant. siteId: type: string description: ID of the Safecharge site. secretKey: type: string description: Safecharge secret key. format: password writeOnly: true required: - merchantId - secretKey - siteId threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' SaltarPay: description: SaltarPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: SaltarPay credentials object. properties: apiKey: type: string description: SaltarPay API key. format: password writeOnly: true secretKey: type: string description: SaltarPay secret key. format: password writeOnly: true required: - apiKey - secretKey SMSVoucher: description: SMSVoucher gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: AppId: type: string description: ID of the SMSVoucher application. required: - AppId Sofort: description: Sofort gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Sofort credentials object. properties: configKey: type: string description: Sofort configuration key. format: password writeOnly: true nuaPayApiKey: type: string description: NuaPay API key for reconciliation. format: password writeOnly: true nuaPayAccountId: type: string description: NuaPay account ID for reconciliation. required: - configKey Sagepay: description: Sagepay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: M_ID: type: string description: ID of the Sagepay merchant. M_KEY: type: string description: Sagepay merchant key. format: password writeOnly: true required: - M_ID - M_KEY SeamlessChex: description: SeamlessChex gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: SeamlessChex credentials object. properties: publicKey: type: string description: SeamlessChex publishable key. secretKey: type: string description: SeamlessChex secret key. format: password writeOnly: true required: - publicKey - secretKey SecureTrading: description: SecureTrading gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: SecureTrading credentials object. properties: websiteId: type: string description: ID of the SecureTrading website. maxLength: 50 example: web_0YV7DE4Z26DQSA1AC92FBJ7SEG username: type: string description: SecureTrading web service username. password: type: string description: SecureTrading web service password. format: password writeOnly: true notificationPassword: type: string description: |- SecureTrading notification password. This password is used to authenticate webhook requests. format: password writeOnly: true required: - websiteId - username - password threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' SecurionPay: description: SecurionPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: SecurionPay credentials object. properties: secretApiKey: type: string format: password description: SecurionPay secret API key. writeOnly: true required: - secretApiKey threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' Skrill: description: Skrill gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Skrill credentials object. properties: accountEmail: type: string description: Email address of your Skrill merchant account. secretWord: type: string description: Secret word used for MD5 signature verifications. format: password writeOnly: true mqiPassword: type: string description: Password used during MQI or API requests. format: password writeOnly: true required: - accountEmail - secretWord settings: type: object properties: merchantFields: type: string description: |- Comma-separated list of name-value merchant field pairs. Example: `key1:value1,key2:value2`. useSPX: type: boolean description: Specifies whether to use SPX code for PIX payment method. default: false SmartInvoice: description: SmartInvoice gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: SmartInvoice credentials object. properties: merchantId: type: string description: SmartInvoice merchant account UID. applicationId: type: string description: SmartInvoice application UID. format: password writeOnly: true required: - merchantId - applicationId SparkPay: description: SparkPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: SparkPay credentials object. properties: shopId: type: string description: ID of the SparkPay shop. secretKey: type: string description: SparkPay secret key. format: password writeOnly: true required: - shopId - secretKey StaticGateway: description: StaticGateway gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' STPMexicoBanks: type: integer enum: - 37006 - 37009 - 37019 - 37135 - 37166 - 37168 - 40002 - 40012 - 40014 - 40021 - 40030 - 40036 - 40037 - 40042 - 40044 - 40058 - 40059 - 40060 - 40062 - 40072 - 40102 - 40103 - 40106 - 40108 - 40110 - 40112 - 40113 - 40124 - 40126 - 40127 - 40128 - 40129 - 40130 - 40131 - 40132 - 40133 - 40136 - 40137 - 40138 - 40140 - 40141 - 40143 - 40145 - 40147 - 40148 - 40150 - 40151 - 40152 - 40154 - 40155 - 40156 - 40158 - 90600 - 90601 - 90602 - 90605 - 90606 - 90608 - 90613 - 90614 - 90616 - 90617 - 90620 - 90621 - 90623 - 90626 - 90627 - 90628 - 90630 - 90631 - 90634 - 90636 - 90637 - 90638 - 90640 - 90642 - 90646 - 90648 - 90649 - 90652 - 90653 - 90655 - 90656 - 90659 - 90670 - 90671 - 90674 - 90677 - 90678 - 90679 - 90680 - 90681 - 90683 - 90684 - 90685 - 90686 - 90687 - 90689 - 90901 - 90902 STPMexico: description: STP Mexico gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: STP Mexico credentials object. properties: companyName: type: string description: STP Mexico account company name. beneficiaryName: type: string description: Name of the bank account holder that is receiving payments. bankId: description: >- ID of the bank receiving payments. A list of bank IDs can be found in STP Mexico integration documentation. $ref: '#/components/schemas/STPMexicoBanks' bankAccountNumber: type: string description: Bank account number of the payments recipient. privateKey: type: string description: STP Mexico private key. format: password x-multiline: true writeOnly: true keyPassphrase: type: string description: Passphrase for the private key. format: password writeOnly: true required: - companyName - beneficiaryName - bankId - bankAccountNumber - privateKey - keyPassphrase Stripe: description: Stripe gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - settings properties: credentials: type: object description: >- Stripe Connect credentials object. The credentials object may be provided to control the Stripe Connect account to which the gateway account is connected. properties: stripeClientId: type: string description: ID of the Stripe account client. stripeSecret: type: string description: Stripe Connect account secret key account. format: password writeOnly: true settings: type: object description: Stripe settings object. required: - redirectUrl properties: redirectUrl: type: string description: >- URL where the user is redirected after authorizing the account on Stripe. format: url disablePaymentIntents: type: boolean description: >- Specifies whether to use the Charges API instead of the PaymentIntents API. default: false enforceOffSession: type: boolean description: >- Specifies if the `off_session` parameter is set to `true` in Stripe requests. default: false copyCredentialsFrom: type: string description: >- ID of an existing Stripe gateway account from which credentials are copied in order to skip the onboarding process. setupFutureUsage: type: string description: >- Indicates intent to make future payments with this payment method. - `on_session`: Reuse the payment method when the customer is present. - `off_session`: Reuse the payment method when the customer may or may not be present. enum: - off_session - on_session threeDSecureServer: type: object required: - name description: Stripe Integrated. properties: name: type: string description: Name of the Stripe 3DS server. enum: - Stripe3dsServer enforceThreeDSecure: type: boolean description: >- Specifies if Stripe must perform 3D Secure. This option overrides any [dynamic 3D Secure Radar rules](https://stripe.com/docs/radar/rules#request-3ds). Telr: description: Telr gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Telr credentials object. properties: storeId: type: string description: Hosted payment page V2 store identifier. hostedPageAuthenticationKey: type: string description: Hosted payment page V2 authentication key. format: password writeOnly: true merchantId: type: string description: Service API merchant identifier. serviceApiKey: type: string description: Service API key. format: password writeOnly: true remoteApiKey: type: string description: Remote API key. format: password writeOnly: true required: - storeId - hostedPageAuthenticationKey - merchantId - serviceApiKey settings: type: object description: Telr settings object. properties: transactionDescription: type: string description: |- Default transaction description. Leave this field blank to use website URL. TestProcessor3dsServer: type: object description: TestProcessor Integrated. required: - name properties: name: type: string description: Name of the TestProcessor plug-in. enum: - TestSandbox3dsServer TestProcessor3dsServers: description: TestProcessor3dsServers 3DS servers. discriminator: propertyName: name mapping: TestSandbox3dsServer: '#/components/schemas/TestProcessor3dsServer' ThreeDSecureIO3dsServer: '#/components/schemas/ThreeDSecureIO3dsServer' anyOf: - $ref: '#/components/schemas/TestProcessor3dsServer' - $ref: '#/components/schemas/ThreeDSecureIO3dsServer' TestProcessor: description: TestProcessor gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object properties: threeDSecureServer: $ref: '#/components/schemas/TestProcessor3dsServers' ToditoCash: description: ToditoCash gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: ToditoCash credentials object. properties: apiKey: type: string description: ToditoCash API key. format: password writeOnly: true required: - apiKey Truevo: description: Truevo gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Truevo credentials object. properties: mid: type: string description: Truevo merchant identifier. tid: type: string description: Truevo terminal identifier. token: type: string description: Truevo authentication token. format: password writeOnly: true merchantName: type: string description: Merchant name for SFTP reconciliation. sftpUsername: type: string description: SFTP reconciliation username. sftpPrivateKey: type: string format: password description: SFTP reconciliation private key. x-multiline: true writeOnly: true sftpKeyPassphrase: type: string format: password description: Passphrase of the SFTP reconciliation private key. writeOnly: true required: - mid - tid - token threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' TrustsPay: description: TrustsPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: TrustsPay credentials object. required: - merchantNo - gatewayNo - signkey properties: merchantNo: type: string description: TrustsPay merchant number. gatewayNo: type: string description: TrustsPay gateway number. signkey: type: string format: password description: TrustsPay sign key. writeOnly: true Trustly: description: Trustly gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Trustly credentials object. properties: username: type: string description: Trustly username. password: type: string description: Trustly password. format: password writeOnly: true publicKey: type: string description: Trustly public key. x-multiline: true privateKey: type: string description: Trustly private key. format: password x-multiline: true writeOnly: true required: - usernmae - password - publicKey - privateKey TWINT: description: TWINT gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: credentials: type: object description: TWINT credentials object. properties: storeUuid: type: string description: TWINT store UUID. cashRegisterId: type: string description: ID of the cash register. publicKey: type: string description: TWINT public key. x-multiline: true privateKey: type: string description: TWINT private key. format: password x-multiline: true writeOnly: true keyPassphrase: type: string description: TWINT key passphrase. format: password writeOnly: true required: - storeUuid - cashRegisterId - publicKey - privateKey - keyPassphrase settings: type: object description: TWINT settings object. properties: cashRegisterType: type: string description: TWINT cash register type. required: - cashRegisterType Unlimit: description: Unlimit gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Unlimit credentials object. properties: terminalId: type: string description: ID of the Unlimit terminal. password: type: string description: Password of the Unlimit terminal merchant. format: password writeOnly: true ipnSecret: type: string description: IPN secrect of the Unlimit merchant. format: password writeOnly: true required: - terminalId - password - ipnSecret UPayCard: description: UPayCard gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: receiver_account: type: string description: UPayCard merchant receiver account. key: type: string description: UPayCard merchant key. format: password writeOnly: true secret: type: string description: UPayCard merchant secret. format: password writeOnly: true required: - receiver_account - key - secret settings: type: object description: UpayCard settings object. required: - tolerancePercentage properties: tolerancePercentage: $ref: '#/components/schemas/AmountAdjustmentTolerance' USAePay: description: USAePay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: sourceKey: type: string description: USAePay source key. format: password writeOnly: true pin: type: string description: USAePay pin. format: password writeOnly: true required: - sourceKey - pin VantivLitle: description: VantivLitle gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: username: type: string description: VantivLitle username. password: type: string description: VantivLitle password. format: password writeOnly: true merchantId: type: string description: ID of the VantivLitle merchant. required: - username - password - merchantId VCreditos: description: VCreditos gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: VCreditos credentials object. properties: publicKey: type: string description: VCreditos API public key. secretKey: type: string description: VCreditos API secret key. format: password writeOnly: true required: - publicKey - secretKey settings: type: object description: VCreditos settings object. properties: merchantWebsiteLoginLabel: type: string description: Label caption for a merchant website login input. merchantWebsiteLoginDescription: type: string description: Description block for a merchant website login input. VegaWallet: description: VegaWallet gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: VegaWallet credentials object. properties: merchantId: type: string description: ID of the VegaWallet merchant. password: type: string description: VegaWallet merchant password. format: password writeOnly: true required: - merchantId - password Wallet88: description: Wallet88 gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Wallet88 credentials object. properties: sid: type: string description: ID of the Wallet88 API site. rcode: type: string description: Wallet88 API rcode. format: password writeOnly: true required: - sid - rcode settings: type: object description: Wallet88 settings object. properties: paymentCardMethod: description: Method to send for payment card. type: string enum: - creditcard - mastercard default: creditcard Walpay: description: Walpay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantName: type: string description: Walpay merchant name. merchantPin: type: string description: Walpay merchant pin. format: password writeOnly: true required: - merchantName - merchantPin WesternUnion: description: WesternUnion gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: WesternUnion credentials object. properties: clientId: type: string description: ID of the WesternUnion client. certificateCommonName: type: string description: WesternUnion certificate Common Name (CN). certificateSerialNumber: type: string description: WesternUnion certificate Serial Number (SN). required: - clientId - certificateCommonName - certificateSerialNumber Wirecard: description: Wirecard gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantUsername: type: string description: Wirecard merchant username. merchantPassword: type: string description: Wirecard merchant password. format: password writeOnly: true businessSignature: type: string description: Wirecard merchant business case signature. format: password writeOnly: true delay: type: integer description: Automatic capture delay. sftpUsername: type: string description: Wirecard SFTP username. sftpPrivateKey: type: string description: Wirecard SFTP private key. format: password x-multiline: true writeOnly: true required: - merchantUsername - merchantPassword - businessSignature - delay WorldlineAtosFrankfurt: description: WorldlineAtosFrankfurt gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials - settings properties: threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' credentials: type: object description: WorldlineAtosFrankfurt credentials. properties: cardAcceptorIdCode: type: string description: Card acceptor ID Code. acquiringInstitutionIdentificationCode: type: string description: Identification code of the acquiring institution. required: - cardAcceptorIdCode - acquiringInstitutionIdentificationCode settings: type: object description: WorldlineAtosFrankfurt settings. properties: cardAcceptorName: type: string description: Name of the card acceptor. cardAcceptorLocation: type: string description: Location of the card acceptor. cardAcceptorCountryCode: type: string description: Country code of the card acceptor. terminalIds: type: string description: Comma-separated list of terminal IDs. required: - cardAcceptorName - cardAcceptorLocation - cardAcceptorCountryCode Worldpay: description: Worldpay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: merchantCode: type: string description: Worldpay merchant code. format: password writeOnly: true merchantPassword: type: string description: Worldpay merchant password. format: password writeOnly: true payoutMerchantCode: type: string description: Optional alternate merchant code for payouts. format: password writeOnly: true payoutMerchantPassword: type: string description: Optional alternate merchant password for payouts. format: password writeOnly: true alternativePaymentsUsername: type: string description: Optional API username for an alternative payments platform. alternativePaymentsPassword: type: string description: Optional API password for an alternative payments platform. format: password writeOnly: true sftpUsername: type: string description: SFTP username. sftpPrivateKey: type: string description: SFTP private key. format: password x-multiline: true writeOnly: true sftpKeyPassphrase: type: string format: password description: Passphrase of the SFTP private key. writeOnly: true required: - merchantCode - merchantPassword threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' settings: type: object properties: delay: type: integer description: Automatic capture delay in hours. minimum: 0 default: 0 enforceStoredCredentials: type: string description: >- Specifies whether to enforce stored credentials. `mit-enabled` means that stored credentials are sent only on merchant initiated transactions. This is the expected usage. `always-enabled` means that stored credentials are also used, if available, for customer facing transactions. enum: - disabled - mit-enabled - always-enabled default: disabled merchantInitiatedReason: type: string description: Value to send with merchant-initiated transactions. enum: - UNSCHEDULED - RECURRING - INSTALMENT - REAUTH - DELAYED - INCREMENTAL - RESUBMISSION - NOSHOW default: UNSCHEDULED Zotapay: description: Zotapay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: endpointId: type: string description: ID of the Zotapay endpoint. merchantId: type: string description: ID of the Zotapay merchant. merchantSecretKey: type: string description: Zotapay merchant secret key. format: password writeOnly: true required: - endpointId - merchantId - merchantSecretKey eMerchantPay: description: eMerchantPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: clientId: type: string description: ID of the eMerchantPay client. apiKey: type: string description: eMerchantPay API key. format: password writeOnly: true username: type: string description: eMerchantPay username for the Genesis platform. token: type: string description: eMerchantPay token for the Genesis platform. password: type: string description: eMerchantPay password for the Genesis platform. format: password writeOnly: true settings: type: object description: eMerchantPay settings object. properties: useGenesisPlatform: type: boolean description: >- Specifies whether to use the Genesis platform on eMerchantPay. default: false threeDSecureServer: $ref: '#/components/schemas/ThreeDSecureIO3dsServer' ecoPayz: description: ecoPayz gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: ecoPayz credentials object. properties: paymentPageId: type: string description: ID of the ecoPayz payment page. merchantAccountNumber: type: string description: ecoPayz merchant account number. merchantPassword: type: string description: ecoPayz merchant password. format: password writeOnly: true required: - paymentPageId - merchantAccountNumber - merchantPassword settings: type: object description: ecoPayz settings object. properties: validCurrency: type: string description: Three letter currency code in ISO 4217 format. enum: - CAD - EUR - GBP - USD required: - validCurrency iCanPay: description: iCanPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: authenticateId: type: string description: Authenticate ID of the iCanPay account. authenticatePw: type: string description: iCanPay authenticate password. format: password writeOnly: true publicKey: type: string description: iCanPay API public key. secretKey: type: string description: iCanPay API secret key. format: password writeOnly: true required: - authenticateId - authenticatePw - publicKey - secretKey settings: type: object properties: use3DSEndpoint: type: boolean description: Specifies whether to use a 3DS endpoint. iCheque: description: iCheque gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: clientId: type: string description: ID of the iCheque client. secretWord: type: string description: iCheque secret word. format: password writeOnly: true apiUserId: type: string description: >- Username for the Alliance API that is used for transaction reporting. apiSecurityToken: type: string description: >- Hash of the password for the Alliance API that is used for transaction reporting. format: password writeOnly: true required: - clientId - secretWord iDebit: description: iDebit gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: iDebit credentials object. properties: merchantId: type: string description: iDebit merchant account number. password: type: string description: iDebit merchant account password. format: password writeOnly: true required: - merchantId - password settings: type: object properties: merchantSubId: type: integer description: ID of the merchant or organization. vegaaH: description: vegaaH gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object properties: terminalId: type: string description: ID of the vegaaH terminal. password: type: string description: vegaaH password. format: password writeOnly: true required: - terminalId - password XPay: description: XPay gateway configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: XPay credentials object. properties: merchantId: type: string description: ID of the XPay merchant. encryptionKey: type: string format: password writeOnly: true description: XPay encryption key. required: - merchantId - encryptionKey Zimpler: description: Zimpler configuration. allOf: - $ref: '#/components/schemas/GatewayAccount' - type: object required: - credentials properties: credentials: type: object description: Zimpler credentials object. properties: merchantId: type: string description: ID of the Zimpler merchant. apiKey: type: string description: Zimpler API key. format: password writeOnly: true required: - merchantId - apiKey DigitalWallets: type: object description: Configure which digital wallets are enabled. title: Digital Wallets properties: applePay: type: object description: |- Apple Pay digital wallet configuration. If not using Apple Pay, do not use this field. required: - isEnabled properties: isEnabled: type: boolean description: Specifies if Apple Pay is enabled. default: false displayName: description: >- String of 64, or fewer, UTF-8 characters containing the canonical name for your store, which is suitable for display. Do not localize this name. type: - string - 'null' example: Test merchant country: $ref: '#/components/schemas/Country' googlePay: type: object description: |- Google Payâ„¢ digital wallet configuration. If not using Google Payâ„¢, do not use this field. required: - isEnabled properties: isEnabled: type: boolean description: Specifies if Google Payâ„¢ is enabled. default: false merchantName: description: Merchant name in Google Payâ„¢. type: - string - 'null' example: Test merchant merchantOrigin: description: >- Merchant origin in Google Payâ„¢. This uses the fully qualified domain name. type: - string - 'null' example: www.example.com country: $ref: '#/components/schemas/Country' ValidationErrorExtensions: 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 InvalidError: description: Invalid data sent. allOf: - $ref: '#/components/schemas/Error' - $ref: '#/components/schemas/ValidationErrorExtensions' GatewayAccountDowntimeSchedule: type: object required: - startTime - endTime properties: id: type: string description: ID of the gateway account downtime schedule. readOnly: true maxLength: 50 example: gw_dwn_0YVCXRK9TKCC6AMAPFB9M4RXDP status: description: Status of the gateway account downtime schedule. readOnly: true type: string enum: - pending - ongoing - finished reason: description: Reason for the gateway account downtime schedule. readOnly: true type: string enum: - scheduled-maintenance - daily-limit-reached - monthly-limit-reached startTime: description: Date and time when the gateway account scheduled downtime starts. type: string format: date-time endTime: description: Date and time when the gateway account scheduled downtime ends. type: string format: date-time createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' GatewayAccountLimit: description: Gateway account limit details. type: object required: - cap properties: id: description: ID of the gateway account limit. readOnly: true $ref: '#/components/schemas/ResourceId' status: description: Status of the gateway account limit. readOnly: true type: string enum: - monitoring - reached startTime: description: Date and time when the gateway account limit starts. type: string format: date-time readOnly: true endTime: description: |- Date and time when the gateway account limit ends. When a gateway account limit ends the limit resets. type: string format: date-time readOnly: true frequency: description: Frequency at which the gateway account limit period resets. type: string readOnly: true enum: - daily - monthly type: description: Type of gateway account limit. type: string readOnly: true enum: - money - count x-enumDescriptions: money: >- Limits the amount of money that a transaction can process on a gateway account. If `money` is chosen, the currency is the report currency. count: >- Limits the total number of transaction can be processed on a gateway account. cap: description: >- Limits the maximum allowed value. If `type` is set to `money`, the currency is the report currency. `cap` only applies to approved transactions of type `authorize` or `sale`. type: integer example: 1000 usage: description: Usage of the gateway account limit during this period. type: integer example: 375 readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' GatewayAccountTimeline: 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: - gateway-account-created - gateway-account-changed - gateway-account-enabled - gateway-account-disabled - gateway-account-down - gateway-account-up - gateway-account-closed - gateway-account-limit-reached - gateway-account-limit-reset - gateway-account-onboarding-completed - gateway-account-onboarding-failed 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' GatewayAccountFinancialSettings: type: object description: Financial settings. required: - settlementSettings properties: settlementSettings: $ref: '#/components/schemas/SettlementSettings' riskReserveSettings: description: |- Risk reserve settings. Use these settings to set up funds reserves before settlement. type: array items: type: object required: - filter - bips - period properties: filter: description: >- Filter that is based on the properties of the transaction and used to determine when to apply the settings. minLength: 1 maxLength: 255 example: paymentInstrument.method:payment-card type: string bips: $ref: '#/components/schemas/Bips' period: description: Instruction for calculating the reserve release time. $ref: '#/components/schemas/SchedulingMethodDateInterval' DigitalWalletOnboardingApplePay: type: object description: Register a domain with Apple Pay and associate it with Rebilly. required: - domain properties: domain: description: Domain to register. type: string status: description: Status of Apple Pay domain registration. type: string readOnly: true enum: - failed - registered - already-registered GridSegment: type: object required: - data - owner - scope properties: id: type: string description: ID of the segment. readOnly: true maxLength: 50 example: grd_seg_0YVCNRJW0ADV49TN8BD9X91XB5 owner: description: Creator of segment. readOnly: true type: object properties: id: description: User ID of the creator. type: string $ref: '#/components/schemas/ResourceId' name: description: First and last name of the creator. type: string data: description: >- Object that contains a schema that is used to set up the UI for the segment. This schema is built and consumed by the frontend. It includes information such as: segment name, UI settings, and so on. type: object isStarred: description: |- Specifies if this segment is starred by the current user. Starring a segment marks it as a favorite segment, and also adds the segment to a starred folder in the UI. type: boolean isVisible: description: Specifies if the segment is visible to the current user. type: boolean userIds: type: array uniqueItems: true writeOnly: true description: |- List of user IDs with which the segment is shared. This field is used when the `scope` field is set to `shared`. items: description: ID of the user. $ref: '#/components/schemas/ResourceId' users: type: array uniqueItems: true description: List of user details with which this segment is shared. readOnly: true items: type: object description: User details. properties: id: description: ID of the user. type: string $ref: '#/components/schemas/ResourceId' name: description: First and last name. type: string scope: description: Controls the visibility of the segment. type: string enum: - private - public - shared x-enumDescriptions: private: Visible only to the owner the segment. public: Visible to all in the owner's organization. shared: >- Visible to a specific group of users that are specified in the `userIds` field. systemId: description: >- If the segment is derived from a system segment, this field contains the ID of the related system segment. To provide this field in a request, the `scope` field must be set to `private` . writeOnly: true type: string Integration: type: object properties: service: readOnly: true description: Name of the integration service. type: string enum: - google-sheets - keap-infusionsoft - intuit-quickbooks count: readOnly: true type: integer minimum: 0 description: Total number of available rule sets. configurations: readOnly: true type: array minItems: 0 description: List of configurations. items: type: object properties: labels: description: Labels of the configuration. type: array minItems: 0 items: type: string eventType: $ref: '#/components/schemas/EventType' title: type: string description: Title of the configuration. _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 - oauth2Connect ValueList: type: object required: - description - values properties: id: type: string description: ID of the list. readOnly: true maxLength: 50 example: lst_0YVCXVQH84DEF93D8VBTJQ9TGK version: description: Version of the list. type: integer readOnly: true minimum: 1 description: description: Description of the list. type: string values: description: Values in the list. type: array items: type: string createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' Membership: type: object required: - organization - user properties: organization: description: Organization membership. readOnly: true type: object properties: id: description: ID of the organization. type: string $ref: '#/components/schemas/ResourceId' name: description: Name of the organization. type: string createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' user: description: Membership user. readOnly: true type: object properties: id: type: string description: ID of the user. maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 name: description: First and last name of the user. type: string email: description: Email address of the user. type: string format: email maxLength: 100 allowedIps: $ref: '#/components/schemas/AllowedIps' permissions: description: |- Permissions that the user has within the organization. Use the wildcard character `*` for full access. $ref: '#/components/schemas/AclPermissions' isOwner: description: Specifies if the user is the owner of the organization. type: boolean isDefault: description: >- Specifies if the organization is the default organization for the user. type: boolean readOnly: true roleIds: type: array description: >- Role IDs associated with the user. Role IDs specify the roles that the user performs within the organization. For example, the user may be an organization admin. items: type: string acl: readOnly: true allOf: - $ref: '#/components/schemas/Acl' _links: $ref: '#/components/schemas/SelfLink' _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: roles: type: array Organization: type: object required: - name - country properties: id: 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). readOnly: true maxLength: 50 example: org_0YVDM8RC7GDADADSBSMW124JA8 name: description: Name of the organization. type: string maxLength: 60 x-sortable: true website: description: |- Website URL of the organization. This value must begin with `https://` or `http://`. type: string maxLength: 65 writeOnly: true format: url example: https://example.com address: description: Street address of the organization. type: - string - 'null' maxLength: 60 x-sortable: true address2: description: Second line of the street address. type: - string - 'null' maxLength: 60 x-sortable: true city: description: City where the organization is located. type: - string - 'null' maxLength: 45 x-sortable: true region: description: Region or state where the organization is located. type: - string - 'null' maxLength: 45 x-sortable: true country: description: >- Country where the organization is located, in [ISO Alpha-2 code format](https://www.iso.org/obp/ui/#search/code/). type: - string - 'null' pattern: ^[A-Z]{2}$ x-sortable: true postalCode: description: Postal code of the organization. type: string maxLength: 10 x-sortable: true phoneNumbers: $ref: '#/components/schemas/ContactPhoneNumbers' emails: $ref: '#/components/schemas/ContactEmails' taxDescriptor: description: >- Tax label of the organization. This information is displayed on the invoice. type: - string - 'null' maxLength: 255 invoiceTimeZone: description: >- Specifies the time zone to display on an invoice. UTC is used by default. type: string maxLength: 50 example: America/New_York reportCurrency: description: |- Currency to use for conversion in reports. This value cannot be changed. type: string pattern: ^[A-Z]{3}$ example: USD questionnaire: type: - object - 'null' description: Organization questionnaire. properties: role: type: - string - 'null' description: Role of the owner. monthlyTransactions: type: - string - 'null' description: Amount of monthly processed transactions. products: type: - array - 'null' description: List of products the organization is interested in. items: type: string integrationType: type: - string - 'null' description: Type of integration the organization would like. launchTiming: type: - string - 'null' description: When the organization would like to go live. settings: type: object description: Organization settings. properties: defaultTaxCalculator: type: object description: Tax calculation settings. required: - type properties: type: type: string description: Type of tax calculator. enum: - taxjar - avalara - flat rate: type: - number - 'null' format: float description: Rate for flat tax calculation. billing: description: Global organization settings for billing. type: - object - 'null' properties: pendingOrderTtl: description: >- Length of time, in ISO-8601 durations format, before which a pending order is automatically abandoned. type: - string - 'null' example: P7D default: null taxLocations: type: array description: >- Additional organization addresses where a merchant may want to collect taxes using the `taxjar` tax calculator. Available only for US-based organizations. items: type: object required: - country properties: address: description: Street address of the tax location. type: - string - 'null' maxLength: 60 city: description: City of the tax location. type: - string - 'null' maxLength: 45 region: description: Region or state of the tax location. type: - string - 'null' maxLength: 45 country: description: >- Country of the tax location, in [ISO Alpha-2 code format](https://www.iso.org/obp/ui/#search/code/). type: string pattern: ^[A-Z]{2}$ postalCode: description: Postal code of the tax location. type: - string - 'null' maxLength: 10 notifications: description: Organization access-related notification settings. type: object properties: notifyOnUserAccessChanges: description: >- Specifies whether to send notifications when users are created or updated. type: boolean default: false notifyOnApiKeyAccessChanges: description: >- Specifies whether to send notifications when API keys are created or updated. type: boolean default: false notificationEmailAddresses: description: List of email addresses to send notifications to. type: array items: type: string format: email default: [] taxNumbers: type: - array - 'null' description: Tax numbers of the organization. items: $ref: '#/components/schemas/TaxNumber' features: type: array description: Organization features. readOnly: true items: type: object properties: name: description: Name of the feature. type: string description: description: Description of the feature. 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 - attachments CountriesUnrestrictedMetadata: type: object title: Unrestricted required: - mode properties: mode: type: string enum: - unknown - all values: description: List of supported countries. type: array uniqueItems: true items: type: string minLength: 2 maxLength: 2 pattern: ^[A-Z]{2}$ CountriesSubsetMetadata: type: object title: Subset required: - mode - values properties: mode: type: string enum: - subset values: description: List of supported countries. type: array minItems: 1 uniqueItems: true items: type: string minLength: 2 maxLength: 2 pattern: ^[A-Z]{2}$ CountriesMetadata: type: object description: Countries metadata. discriminator: propertyName: mode mapping: unknown: '#/components/schemas/CountriesUnrestrictedMetadata' all: '#/components/schemas/CountriesUnrestrictedMetadata' subset: '#/components/schemas/CountriesSubsetMetadata' anyOf: - $ref: '#/components/schemas/CountriesUnrestrictedMetadata' - $ref: '#/components/schemas/CountriesSubsetMetadata' PaymentMethodMetadata: type: object additionalProperties: false required: - apiName - name - summary - description - countries properties: apiName: description: Name of the payment method returned in the API response. type: string pattern: ^[\w\. -]+$ name: description: Name of the payment method. type: string pattern: ^[\w\. -]+$ landscapeLogo: description: URL for the payment method logo optimized for landscape orientation. type: - string - 'null' format: uri portraitLogo: description: URL for the payment method logo optimized for portrait orientation. type: - string - 'null' format: uri summary: description: |- Short description of the payment method. This field supports Markdown. type: string description: description: |- Detailed information about the payment method. This field supports Markdown. type: string countries: $ref: '#/components/schemas/CountriesMetadata' storefrontEnabled: type: boolean default: false _links: $ref: '#/components/schemas/SelfLink' PaymentGatewayMetadata: type: object additionalProperties: false required: - apiName - logo - paymentMethods - merchantCountries - currencies properties: apiName: description: Name of the payment gateway returned in the API response. type: string pattern: ^[\w\. -]+$ otherNames: description: |- List of former names associated with the payment gateway. Gateways may change their names or may also be known by other names. Tracking this list may help customer support and developers. type: array items: type: object additionalProperties: false required: - name properties: name: description: Alternative or former name of the payment gateway. type: string description: description: Short description about this name. type: string logo: description: URL for the logo used with this name. type: string format: uri logo: description: URL for the logo of the gateway. type: string format: uri summary: description: |- Short description of the payment gateway. This field supports Markdown. type: - string - 'null' homepage: description: URL of the payment gateway home page. type: - string - 'null' format: uri externalDocs: description: >- List of links to the documentation of the payment gateway. For example, online API guides provided by gateways or a link to the documents in Google Drive. type: array items: type: object additionalProperties: false required: - url properties: url: description: |- URL of the target documentation. This value must be in URL format. type: string format: uri description: description: Short description of the target documentation. type: string publishedPricing: description: >- Pricing description for the payment gateway, if pricing is published. type: - string - 'null' setupInstructions: description: >- Special gateway account set up instructions for merchants. For example: After adding this gateway account, set the IPN to `//example.com/ipns/{gateway-name}/{organization-id}` by contacting your account rep. type: - string - 'null' paymentMethods: description: >- Array of supported payment methods. For example, `payment-card` and `bitcoin`. type: array items: description: Name of the payment method returned in the API response. type: string pattern: ^[\w\. -]+$ minLength: 1 cardBrands: description: |- Array of supported card-brands. If the payment gateway supports payment cards. type: array items: $ref: '#/components/schemas/PaymentCardBrand' merchantCountries: $ref: '#/components/schemas/CountriesMetadata' currencies: type: object description: Currencies metadata. required: - mode oneOf: - title: Unrestricted properties: mode: description: Specifies how the currencies are compared. type: string enum: - unknown - all - title: Subset required: - values properties: mode: description: Specifies how the currencies are compared. type: string enum: - subset values: description: List of supported currencies. type: array minItems: 1 uniqueItems: true items: $ref: '#/components/schemas/CurrencyCode' operations: description: Array of operations that are supported by the payment gateway. type: array items: type: string enum: - verify - auth - capture - sale - refund - query - credit - 3DS1 - 3DS2 - checkCredentials supported3dsServers: description: Array of supported 3DS-servers. type: array items: type: string supportedPaymentInstrumentSetupInstructions: description: >- Array of set up instructions that are supported by the payment gateway. type: array items: type: string enum: - do-nothing - authorize - authorize-and-void - sca x-enumDescriptions: authorize: >- Creates an `authorize` transaction in the amount or currency of the request. This is used when a gateway account is configured for Strong Customer Authentication (SCA). authorize-and-void: >- Creates an `authorize` transaction in the amount and currency of the request, followed by a `void`, if the `authorize` is approved. This is used when a gateway account is configured for Strong Customer Authentication (SCA). sca: >- Uses Strong Customer Authentication (SCA) without an `authorize` transaction. SCA includes 3DS, and specific wallet behavior, such as setting up a billing agreement with PayPal. do-nothing: |- Does nothing except return an approved `setup` transaction. This is the default behavior. reconciliationSupport: description: Specifies whether transactions can be reconciled. type: boolean default: false disputeSupport: description: >- Specifies whether dispute data entry can be automated with an API or SFTP access. For example, chargeback, retrieval, or TC-40 disputes. type: boolean default: false offsite: description: |- Specifies whether offsite interaction is required. For example, 3DS, PayPal login, or completing something in a store. type: boolean default: false ipn: type: - object - 'null' description: >- Describes the Instant Payment Notification (IPN) that a payment gateway supports. If this value is null, IPN is not supported. required: - type properties: type: description: |- Type of supported Instant Payment Notification (IPN). If this value is null, IPN is not supported. type: string enum: - static - dynamic verificationMethod: description: >- Method used to verify that the data in the IPN call can be trusted. type: string enum: - query - signature default: query recommendedWaitingApprovalTtl: description: Recommended Time To Live (TTL) before abandoning the transaction. type: integer default: 3600 minimum: 299 maximum: 16777216 _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 Session: type: object required: - permissions properties: id: type: string description: ID of the session. readOnly: true maxLength: 50 example: jwt_0YV7DEJX80CDRAKVTV478ZNJDR token: description: Authentication token of the session. type: string permissions: description: |- Permissions of the session. See the format in example. Use wildcard `*` for full access. $ref: '#/components/schemas/AclPermissions' userId: type: string description: ID of the user. readOnly: true maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' expiredTime: description: Date and time when the session expired. Defaults to one hour. type: string format: date-time _links: $ref: '#/components/schemas/SelfLink' 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' 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 GlobalWebhook: type: object required: - method - url - credentialHash properties: id: type: string description: ID of the webhook. readOnly: true maxLength: 50 example: hook_0YVBG8S0K0DG59J6S3RMN9K452 eventsFilter: description: Array of system event types. type: array default: [] items: $ref: '#/components/schemas/GlobalEventType' status: x-basic: true type: string default: active enum: - active - inactive method: type: string x-basic: true enum: - GET - POST - PUT - PATCH - DELETE url: description: URL that triggers when a specified event occurs. type: string format: uri headers: description: Webhook headers. type: array items: type: object description: Webhook headers. properties: name: description: Name of the property. type: string status: description: Status of the property. type: string default: active enum: - active - inactive value: description: Value of the property. type: string example: value1 required: - name - value credentialHash: type: string description: >- Hash from credentials to use for authentication by the specified URL. body: description: >- Webhook request body. If this value is `null`, the default payload for the specified event is used. Template placeholders are permitted. Invalid placeholders render as an empty strings. For example, `Hello {{invalid.placeholder}}!` is rendered as `Hello !`. For more information, see [Placeholders](https://www.rebilly.com/docs/automations/email-notifications/#placeholders). type: - string - 'null' filter: description: >- Filter that determines whether to send the webhook. This field requires a special format. Use `,` for multiple allowed values. Use `;` for multiple fields. For more information, see [Using filters](https://www.rebilly.com/docs/dev-docs/search-filters). type: - string - 'null' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: x-label: Last update time $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' Profile: type: object properties: id: description: ID of the user. readOnly: true $ref: '#/components/schemas/ResourceId' email: description: Email address of the user. readOnly: true type: string format: email maxLength: 100 firstName: description: User's first name. readOnly: true type: string lastName: description: User's last name. readOnly: true type: string businessPhone: description: User's business phone number. readOnly: true type: - string - 'null' mobilePhone: description: User's mobile phone number. readOnly: true type: - string - 'null' permissions: description: |- Permissions that the user has within organizations. Use the wildcard character `*` for full access. readOnly: true allOf: - $ref: '#/components/schemas/AclPermissions' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' availableCurrencies: type: array description: Array of reporting currencies that are enabled for the merchant. readOnly: true items: type: string reportingCurrency: description: |- User's currency code in ISO 4217 format. This value is used for reports. type: string readOnly: true loginTime: description: Date and time when the user last logged in. type: - string - 'null' format: date-time readOnly: true status: description: Status of the user account. type: string enum: - active - inactive - pending-confirmation readOnly: true country: description: >- User's country of residence in ISO 3166 alpha-2 country code. For examples, see [ISO.org](https://www.iso.org/obp/ui/#search/code/). readOnly: true type: string preferences: description: |- User preferences, such as: timezone, language, and more. This is an object with custom properties. type: - object - 'null' hasPermissionsEmulation: type: boolean description: >- Specifies if the current user session has permissions emulation enabled. readOnly: true displayName: type: string description: User's full display name. readOnly: true hash: type: string description: Unique hash value that represents the user. readOnly: true _links: $ref: '#/components/schemas/SelfLink' ProfileMfa: type: object properties: status: description: Status of Multi-Factor Authentication (MFA) enrollment. type: string enum: - active - inactive type: description: >- Type of MFA enrollment. Type `duo` cannot be updated or deleted. If you need to reset your Duo MFA, [Contact support](https://www.rebilly.com/support/). type: - string - 'null' enum: - duo - guardian - null lastAuthTime: description: >- Date and time when MFA verification is most recently passed. To disable MFA, no more than 10 minutes must elapse between this value and the request to disable MFA. type: - string - 'null' format: date-time 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 - enrollment Role: type: object required: - name - acl properties: id: type: string readOnly: true description: ID of the role. maxLength: 50 example: role_0YVDN2J11HDMX9N8X7DCB4CMX2 name: type: string description: Name of the user role. description: type: - string - 'null' description: Description of the role. acl: $ref: '#/components/schemas/Acl' allowedIps: $ref: '#/components/schemas/AllowedIps' seniorIds: type: array description: List of senior role IDs. readOnly: true items: type: string juniorIds: type: array description: List of junior role IDs. items: type: string usersCount: type: integer readOnly: true description: Number of users assigned to this role. 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 - seniorRoles - juniorRoles _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: juniorRoles: type: object SendThroughAttribution: type: object description: Email notification sent through attribution. readOnly: true properties: eventType: $ref: '#/components/schemas/EventType' actionId: type: string format: uuid description: Action ID of the email notification. versionId: type: string format: uuid description: Version ID of the email notification. sent: type: integer minimum: 0 description: Number of email notifications that have been sent. goal: type: integer minimum: 0 description: Target number of email notifications to send. Status: type: object properties: status: description: |- Status of the Rebilly API. If the API is operational, this value is `ok`. type: string readOnly: true enum: - ok time: description: Current date and time. $ref: '#/components/schemas/ServerTimestamp' ApiTracking: type: object description: API request tracking. readOnly: true properties: id: $ref: '#/components/schemas/ResourceId' status: type: integer x-sortable: true description: Response code of the HTTP request. url: type: string x-basic: true x-sortable: true description: URL of the HTTP request. route: type: string x-sortable: true description: API request route. example: /customers/{param} method: type: string description: HTTP method of the API request. enum: - HEAD - GET - POST - PUT - DELETE - PATCH x-basic: true request: type: string x-sortable: true description: Request body of the HTTP request. response: type: string x-sortable: true description: Response body of the HTTP request. requestHeaders: $ref: '#/components/schemas/HttpHeaders' responseHeaders: $ref: '#/components/schemas/HttpHeaders' user: type: object description: User who made the request. readOnly: true properties: userId: x-sortable: true type: string description: ID of the user. maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 apiKeyId: type: string description: ID of the API tracking log. maxLength: 50 example: api_key_0YV7JQMY6ED2FBE58BMFHBWBZH email: description: Email address of the user. type: string format: email x-sortable: true firstName: description: First name of the user. type: string x-sortable: true lastName: description: Last name of the user. type: string x-sortable: true ipAddress: type: string x-sortable: true deprecated: true description: Client IP address. format: ipv4 userAgent: description: Software that is acting on behalf of the user. type: string x-sortable: true fingerprint: description: >- User's device fingerprint hash. 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. type: string x-sortable: true isSupport: description: >- Specifies if the API request is completed by a Rebilly Support Team member. type: boolean x-sortable: true ipAddress: type: string x-basic: true description: Client IP address. relatedResourceIds: type: array description: IDs of related resources. readOnly: true items: type: string example: - in_0YVF9605RKC62BP14NE2R7V2XT - cus_0YV7DDSDD1C8DA64KHH2W33CPF duration: type: integer x-sortable: true x-basic: true description: Request duration in milliseconds. organizationId: $ref: '#/components/schemas/OrganizationId' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: organization: type: object TaxTracking: type: object description: Tax service tracking logs. readOnly: true properties: id: $ref: '#/components/schemas/ResourceId' status: type: integer x-sortable: true description: Response code of the HTTP request. duration: type: integer x-sortable: true description: Duration of the HTTP request in milliseconds. initiatedTime: description: Date and time the HTTP request is initiated. x-sortable: true $ref: '#/components/schemas/ServerTimestamp' url: type: string x-sortable: true description: URL of the tax service endpoint. method: type: string x-sortable: true description: Method of the HTTP request. example: POST request: type: string description: Request body of the HTTP request. response: type: string description: Response body of the HTTP request. requestHeaders: $ref: '#/components/schemas/HttpHeaders' responseHeaders: $ref: '#/components/schemas/HttpHeaders' entityId: type: string x-sortable: true description: ID of the resource associated with the tax service request. organizationId: x-sortable: true allOf: - $ref: '#/components/schemas/OrganizationId' taxService: type: string x-sortable: true description: Name of the tax service used for the request. enum: - taxjar - avalara taxServiceCredentialSource: type: string x-sortable: true description: Source of the credentials that are used to send or retrieve data. enum: - default - merchant customerId: type: string description: ID of the customer associated with the tax service request. _links: $ref: '#/components/schemas/SelfLink' WebhookTracking: type: object description: Webhook tracking logs. readOnly: true properties: id: type: string description: ID of the webhook tracking log. maxLength: 50 example: hook_log_0YVBG8S0K0DG59J6S3RMN9K452 status: type: integer x-sortable: true description: Response code of the webhook request. duration: type: integer x-sortable: true description: Duration of the webhook request in milliseconds. initiatedTime: description: Date and time when the webhook is initiated. x-sortable: true $ref: '#/components/schemas/ServerTimestamp' url: type: string x-sortable: true description: URL where webhook is sent. method: type: string x-sortable: true description: HTTP method used to send webhook. example: POST request: type: string description: Webhook payload. response: type: string description: Response body received. requestHeaders: $ref: '#/components/schemas/HttpHeaders' responseHeaders: $ref: '#/components/schemas/HttpHeaders' entityId: type: string x-sortable: true description: ID of the main entity related to the event type. organizationId: x-sortable: true allOf: - $ref: '#/components/schemas/OrganizationId' eventType: x-sortable: true allOf: - $ref: '#/components/schemas/EventType' source: type: string x-sortable: true description: Webhook source. enum: - webhooks - rules attempt: type: integer x-sortable: true description: Webhook attempt number. sentTime: x-sortable: true description: Date and time when the webhook is sent. $ref: '#/components/schemas/ServerTimestamp' createdTime: x-sortable: true $ref: '#/components/schemas/CreatedTime' updatedTime: x-sortable: true $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' User: type: object required: - email - firstName - lastName properties: id: type: string description: ID of the user. readOnly: true maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 email: description: Email address of the user. type: string format: email maxLength: 100 firstName: description: User's first name. type: string lastName: description: User's last name. type: string businessPhone: description: User's business phone number. type: - string - 'null' mobilePhone: description: User's mobile phone number. type: - string - 'null' permissions: description: |- Permissions that the user has within organizations. Use the wildcard character `*` for full access. $ref: '#/components/schemas/AclPermissions' computedPermissions: description: >- All user permissions and roles. Use these permissions to emulate the user. readOnly: true allOf: - $ref: '#/components/schemas/AclPermissions' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' loginTime: description: Date and time when the user last logged in. type: - string - 'null' format: date-time readOnly: true reportingCurrency: description: |- User's currency code in ISO 4217 format. This value is used for reports. readOnly: true type: string availableCurrencies: type: array description: Array of reporting currencies that are enabled for the merchant. readOnly: true items: type: string status: description: Status of the user's account. type: string enum: - active - inactive - pending-confirmation readOnly: true country: description: >- User'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 preferences: description: |- User preferences, such as: timezone, language, and more. This is an object with custom properties. type: - object - 'null' roleIds: type: array description: >- Role IDs associated with the user. Role IDs specify the roles that the user performs within the organization. For example, the user may be an organization admin. items: type: string allowedIps: $ref: '#/components/schemas/AllowedIps' _links: $ref: '#/components/schemas/SelfLink' Website: type: object required: - name - url - servicePhone - serviceEmail properties: id: readOnly: true allOf: - $ref: '#/components/schemas/WebsiteId' name: description: Name of the website. type: string url: description: Domain address of the website. type: string servicePhone: description: Customer service phone number of the website. type: string serviceEmail: description: Customer service email address of the website. type: string format: email createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' customFields: $ref: '#/components/schemas/ResourceCustomFields' settings: type: object description: Website settings. properties: depositForm: type: object description: Deposit form settings. properties: theme: description: Theme settings that are used in the deposit form. type: - object - 'null' properties: colorPrimary: description: >- Primary color for the deposit form in hexadecimal format. type: - string - 'null' maxLength: 6 example: 0044d4 colorSecondary: description: >- Secondary color for the deposit form in hexadecimal format. type: - string - 'null' maxLength: 6 example: ffffff buttonTemplate: description: >- Submit button template. `{{amount}}` can be used as a placeholder for amount and currency. type: - string - 'null' maxLength: 100 example: Pay {{amount}} paymentForm: type: object description: Payment form settings. properties: css: description: >- Hosted payment form [CSS options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#2-use-css-property-to-override-any-styles). type: - string - 'null' theme: description: >- Hosted payment form [theme options](https://www.rebilly.com/docs/content/concepts-and-features/tutorial/customize-style-rebilly-instruments/#adjust-the-default-style). type: - object - 'null' additionalProperties: type: string example: colorPrimary: '#504CCA' features: description: Hosted payment form features. type: - object - 'null' properties: showCoupons: type: - array - 'null' items: type: string fullPageRedirect: type: - boolean - 'null' description: >- Specifies whether the hosted payment form uses a full page redirect, or the default iframe modal, for approval URL redirects. default: false skipRedirectOnPaymentComplete: type: - boolean - 'null' description: >- Specifies whether the hosted payment form skips the redirect to the website URL when the payment is completed. default: false logoId: type: - string - 'null' description: ID of the linked file object. maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 organizationId: deprecated: true readOnly: true allOf: - $ref: '#/components/schemas/OrganizationId' _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 - logoUrl CustomerInformation: type: object properties: currency: description: Currency code in ISO 4217 format. minLength: 3 maxLength: 3 example: USD readOnly: true type: string refundsAmount: description: Total amount of all refunded transactions. readOnly: true type: number format: double revenueAmount: description: Total amount of all approved sales and captures. readOnly: true type: number format: double disputesAmount: description: Total amount of all disputed transactions. readOnly: true type: number format: double DataExportArguments: type: object description: >- Export request arguments used to filter and sort the result set. For more information, see [Arguments](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation/#arguments). properties: filter: 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](#section/Using-filter-with-collections). type: string sort: type: string description: |- Sorts and orders the collection of items. To sort in descending order, prefix with `-`. q: type: string description: Use this field to perform a partial search of text fields. DataExportRecurring: description: Recurring export schedule. type: object required: - instruction properties: instruction: type: string description: >- Schedule instruction in [Recurrence Rule RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html) format. start: type: string format: date-time description: |- Date and time when the first scheduled recurring export occurs. The default value is now. DataExportDateRange: type: object description: >- Date range of the data export. If this value is not set, all data is included. For more information, see [Date ranges](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation/#date-ranges). properties: start: type: string description: >- Start date of the data export. This field accepts any argument in [datetime format](http://php.net/manual/en/datetime.formats.php). example: yesterday end: type: string description: >- End date of the data export. This field accepts any argument in [datetime format](http://php.net/manual/en/datetime.formats.php). example: today field: type: string description: Field to which the date range is applied. required: - start - end CustomersDataExport: type: object description: Customer resource to export. required: - name - format - resource properties: id: type: string description: ID of the export. readOnly: true maxLength: 50 example: exp_0YVCNQ2C1AD1RA3HXKP492GNZB name: description: Name of the export. type: string resource: description: Type of resource to export. type: string enum: - customers format: description: Output format of the export. type: string enum: - csv - json - json-api - xml arguments: $ref: '#/components/schemas/DataExportArguments' emailNotification: description: List of email addresses to notify when an export is completed. type: array items: type: string format: email fields: description: >- List of fields to include in the export. For more information, see [Arguments](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation/#fields). type: array items: type: string recurring: $ref: '#/components/schemas/DataExportRecurring' userId: description: ID of the user who requested the data export. readOnly: true type: string maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 fileId: type: - string - 'null' description: ID of the data export file. readOnly: true maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N recordCount: description: Total number of records in the export, excluding the header row. readOnly: true type: integer scheduledTime: description: Date and time when the data export is scheduled to generate a file. $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' status: description: Status of export request. readOnly: true type: string enum: - pending - queued - processing - completed dateRange: allOf: - $ref: '#/components/schemas/DataExportDateRange' - type: object properties: field: type: string default: createdTime example: createdTime _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 - user - download - signedLink _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: file: type: object user: type: object SubscriptionsDataExport: type: object description: Order resource to export. required: - name - format - resource properties: id: type: string description: ID of the export. readOnly: true maxLength: 50 example: exp_0YVCNQ2C1AD1RA3HXKP492GNZB name: description: Name of the export. type: string resource: description: Type of resource to export. type: string enum: - subscriptions format: description: Output format of the export. type: string enum: - csv - json - json-api - xml arguments: $ref: '#/components/schemas/DataExportArguments' emailNotification: description: List of email addresses to notify when an export is completed. type: array items: type: string format: email fields: description: >- List of fields to include in the export. For more information, see [Arguments](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation/#fields). type: array items: type: string recurring: $ref: '#/components/schemas/DataExportRecurring' userId: description: ID of the user who requested the data export. readOnly: true type: string maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 fileId: type: - string - 'null' description: ID of the data export file. readOnly: true maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N recordCount: description: Total number of records in the export, excluding the header row. readOnly: true type: integer scheduledTime: description: Date and time when the data export is scheduled to generate a file. $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' status: description: Status of export request. readOnly: true type: string enum: - pending - queued - processing - completed dateRange: allOf: - $ref: '#/components/schemas/DataExportDateRange' - type: object properties: field: type: string default: createdTime example: createdTime _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 - user - download - signedLink _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: file: type: object user: type: object TransactionsDataExport: type: object description: Transaction resource to export. required: - name - format - resource properties: id: type: string description: ID of the export. readOnly: true maxLength: 50 example: exp_0YVCNQ2C1AD1RA3HXKP492GNZB name: description: Name of the export. type: string resource: description: Type of resource to export. type: string enum: - transactions format: description: Output format of the export. type: string enum: - csv - json - json-api - xml arguments: $ref: '#/components/schemas/DataExportArguments' emailNotification: description: List of email addresses to notify when an export is completed. type: array items: type: string format: email fields: description: >- List of fields to include in the export. For more information, see [Arguments](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation/#fields). type: array items: type: string recurring: $ref: '#/components/schemas/DataExportRecurring' userId: description: ID of the user who requested the data export. readOnly: true type: string maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 fileId: type: - string - 'null' description: ID of the data export file. readOnly: true maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N recordCount: description: Total number of records in the export, excluding the header row. readOnly: true type: integer scheduledTime: description: Date and time when the data export is scheduled to generate a file. $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' status: description: Status of export request. readOnly: true type: string enum: - pending - queued - processing - completed dateRange: allOf: - $ref: '#/components/schemas/DataExportDateRange' - type: object properties: field: x-sortable: true type: string default: processedTime example: processedTime _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 - user - download - signedLink _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: file: type: object user: type: object InvoicesDataExport: type: object description: Invoice resource to export. required: - name - format - resource properties: id: type: string description: ID of the export. readOnly: true maxLength: 50 example: exp_0YVCNQ2C1AD1RA3HXKP492GNZB name: description: Name of the export. type: string resource: description: Type of resource to export. type: string enum: - invoices format: description: Output format of the export. type: string enum: - csv - json - json-api - xml - pdf arguments: $ref: '#/components/schemas/DataExportArguments' emailNotification: description: List of email addresses to notify when an export is completed. type: array items: type: string format: email fields: description: >- List of fields to include in the export. For more information, see [Arguments](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation/#fields). type: array items: type: string recurring: $ref: '#/components/schemas/DataExportRecurring' userId: description: ID of the user who requested the data export. readOnly: true type: string maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 fileId: type: - string - 'null' description: ID of the data export file. readOnly: true maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N recordCount: description: Total number of records in the export, excluding the header row. readOnly: true type: integer scheduledTime: description: Date and time when the data export is scheduled to generate a file. $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' status: description: Status of export request. readOnly: true type: string enum: - pending - queued - processing - completed dateRange: allOf: - $ref: '#/components/schemas/DataExportDateRange' - type: object properties: field: type: string default: issuedTime example: issuedTime _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 - user - download - signedLink _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: file: type: object user: type: object InvoiceItemsDataExport: type: object description: Invoice item resource to export. required: - name - format - resource properties: id: type: string description: ID of the export. readOnly: true maxLength: 50 example: exp_0YVCNQ2C1AD1RA3HXKP492GNZB name: description: Name of the export. type: string resource: description: Type of resource to export. type: string enum: - invoiceItems format: description: Output format of the export. type: string enum: - csv - json - json-api - xml arguments: $ref: '#/components/schemas/DataExportArguments' emailNotification: description: List of email addresses to notify when an export is completed. type: array items: type: string format: email fields: description: >- List of fields to include in the export. For more information, see [Arguments](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation/#fields). type: array items: type: string recurring: $ref: '#/components/schemas/DataExportRecurring' userId: description: ID of the user who requested the data export. readOnly: true type: string maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 fileId: type: - string - 'null' description: ID of the data export file. readOnly: true maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N recordCount: description: Total number of records in the export, excluding the header row. readOnly: true type: integer scheduledTime: description: Date and time when the data export is scheduled to generate a file. $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' status: description: Status of export request. readOnly: true type: string enum: - pending - queued - processing - completed dateRange: allOf: - $ref: '#/components/schemas/DataExportDateRange' - type: object properties: field: type: string default: issuedTime example: issuedTime _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 - user - download - signedLink _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: file: type: object user: type: object RevenueAuditDataExport: type: object description: Revenue audit resource to export. required: - name - format - resource properties: id: type: string description: ID of the export. readOnly: true maxLength: 50 example: exp_0YVCNQ2C1AD1RA3HXKP492GNZB name: description: Name of the export. type: string resource: description: Type of resource to export. type: string enum: - revenueAudit format: description: Output format of the export. type: string enum: - csv - json - json-api - xml arguments: $ref: '#/components/schemas/DataExportArguments' emailNotification: description: List of email addresses to notify when an export is completed. type: array items: type: string format: email fields: description: >- List of fields to include in the export. For more information, see [Arguments](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation/#fields). type: array items: type: string recurring: $ref: '#/components/schemas/DataExportRecurring' userId: description: ID of the user who requested the data export. readOnly: true type: string maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 fileId: type: - string - 'null' description: ID of the data export file. readOnly: true maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N recordCount: description: Total number of records in the export, excluding the header row. readOnly: true type: integer scheduledTime: description: Date and time when the data export is scheduled to generate a file. $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' status: description: Status of export request. readOnly: true type: string enum: - pending - queued - processing - completed dateRange: allOf: - $ref: '#/components/schemas/DataExportDateRange' - type: object properties: field: x-sortable: true type: string default: scheduledTime example: scheduledTime _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 - user - download - signedLink _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: file: type: object user: type: object AmlChecksDataExport: type: object description: AML checks resource to export. required: - name - format - resource properties: id: type: string description: ID of the export. readOnly: true maxLength: 50 example: exp_0YVCNQ2C1AD1RA3HXKP492GNZB name: description: Name of the export. type: string resource: description: Type of resource to export. type: string enum: - amlChecks format: description: Output format of the export. type: string enum: - csv - json - json-api - xml arguments: $ref: '#/components/schemas/DataExportArguments' emailNotification: description: List of email addresses to notify when an export is completed. type: array items: type: string format: email fields: description: >- List of fields to include in the export. For more information, see [Arguments](https://www.rebilly.com/docs/dev-docs/transaction-reconciliation/#fields). type: array items: type: string recurring: $ref: '#/components/schemas/DataExportRecurring' userId: description: ID of the user who requested the data export. readOnly: true type: string maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 fileId: type: - string - 'null' description: ID of the data export file. readOnly: true maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N recordCount: description: Total number of records in the export, excluding the header row. readOnly: true type: integer scheduledTime: description: Date and time when the data export is scheduled to generate a file. $ref: '#/components/schemas/ServerTimestamp' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' status: description: Status of export request. readOnly: true type: string enum: - pending - queued - processing - completed dateRange: allOf: - $ref: '#/components/schemas/DataExportDateRange' - type: object properties: field: type: string default: createdTime example: createdTime _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 - user - download - signedLink _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: file: type: object user: type: object DataExport: type: object discriminator: propertyName: resource mapping: customers: '#/components/schemas/CustomersDataExport' subscriptions: '#/components/schemas/SubscriptionsDataExport' transactions: '#/components/schemas/TransactionsDataExport' invoices: '#/components/schemas/InvoicesDataExport' invoiceItems: '#/components/schemas/InvoiceItemsDataExport' revenueAudit: '#/components/schemas/RevenueAuditDataExport' amlChecks: '#/components/schemas/AmlChecksDataExport' oneOf: - $ref: '#/components/schemas/CustomersDataExport' - $ref: '#/components/schemas/SubscriptionsDataExport' - $ref: '#/components/schemas/TransactionsDataExport' - $ref: '#/components/schemas/InvoicesDataExport' - $ref: '#/components/schemas/InvoiceItemsDataExport' - $ref: '#/components/schemas/RevenueAuditDataExport' - $ref: '#/components/schemas/AmlChecksDataExport' OrganizationExport: type: object properties: id: readOnly: true type: string description: Unique resource ID. maxLength: 50 example: org_exp_0YVDMCH30ZC2XA5BYHH6B6SRTJ userId: description: ID of the user who requested the organization data export. readOnly: true type: string maxLength: 50 example: usr_0YVCEENYJ3D7Q9EN6BN16HA0G4 fileId: type: - string - 'null' description: ID of the linked file object. readOnly: true maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N status: description: Status of organization data export request. readOnly: true type: string enum: - pending - processing - completed - queued - failed - expired resources: description: Organization data export resources array. readOnly: true type: array items: type: object properties: type: description: Exported resource. readOnly: true type: string enum: - customers - users - payment-instruments - invoices - orders - transactions - disputes - gateway-accounts - blocklists - lists - webhooks - products - websites - plans - credit-memos - files - email-notifications x-enumDescriptions: customers: All customers of the organization. users: All users of the organization. payment-instruments: All payment instruments of the organization. invoices: All invoices of the organization. orders: All orders of the organization. transactions: All transactions of the organization. disputes: All disputes of the organization. gateway-accounts: All gateway accounts of the organization. blocklists: All blocklists of the organization. lists: All lists of the organization. webhooks: All webhooks of the organization. products: All products of the organization. websites: All websites of the organization. plans: All plans of the organization. credit-memos: All credit-memos of the organization. files: All files of the organization. email-notifications: All email-notifications of the organization. recordCount: description: Number of exported resources. readOnly: true type: integer createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' retentionTime: description: |- Date and time when retention ends. After this date, files are removed. readOnly: 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 - user - signedLink HistogramData: title: Histogram data type: object properties: data: description: Histogram data. type: array items: type: object readOnly: true properties: date: type: string description: Date and time of data entry. value: type: number description: Data entry value. ApiLogSummary: type: object properties: data: description: API log summary data. type: array items: type: object description: Number of requests for each method. readOnly: true properties: route: type: string description: Route string pattern. total: type: integer description: Total number of requests. get: type: integer description: Total number of `GET` requests. post: type: integer description: Total number of `POST` requests. put: type: integer description: Total number of `PUT` requests. patch: type: integer description: Total number of `PATCH` requests. delete: type: integer description: Total number of `DELETE` requests. head: type: integer description: Total number of `HEAD` requests. options: type: integer description: Total number of `OPTIONS` requests. CumulativeSubscriptions: type: object properties: data: description: Cumulative subscription data. type: array items: type: object description: Contains an aggregation. readOnly: true properties: aggregationValue: type: string description: >- Date in `YYYY-MM` format for monthly aggregation, or `YYYY-MM-DD` for daily aggregation. newCount: type: integer description: Number of new subscriptions within the aggregation. canceledCount: type: integer description: Number of canceled subscriptions within the aggregation. cumulativeCount: type: integer description: >- Total number of cumulative subscriptions. This field is calculated based on: the number of cumulative subscriptions from the previous aggregation period + `newCount` - `canceledCount`. DashboardResponse: type: array items: type: object properties: metric: type: string description: Type of metric. enum: - approvalRate - salesCount - salesValue - refundsValue - chargebacksCount - chargebacksValue - transactionsCount - redeemedCouponsCount - newLeadsCount - newCustomersCount - appliedCouponsCount - trialConversionsCount - trialConversionsRate - renewalSuccessRate - renewalsCount - newTrialsCount - reactivationsCount - successfulRetriesCount - invoicedRevenue - churnCount - churnRate - cancellationsCount - cancellationsRate - activeSubscriptionsCount - newSubscriptionsCount - upgradesCount - downgradesCount - monthlyRecurringRevenue - averageRevenuePerCustomer - customerLifetimeValue - addressProofAcceptanceRate - identityProofAcceptanceRate - fundsProofAcceptanceRate - purchaseProofAcceptanceRate - creditFileProofAcceptanceRate - kycRejectionRate - kycAccuracyRate - addressProofAccuracyRate - identityProofAccuracyRate - creditFileProofAccuracyRate - kycRequestCount - kycRequestAbandonmentRate - kycRequestAttemptedRate - kycRequestFailureRate - kycRequestFulfillmentRate - kycRequestExpirationRate humanName: type: string description: Display name of the metric. increaseIsGood: type: boolean description: >- Specifies whether a higher value is a positive result for the merchant. segments: type: array description: Segment data. items: type: object properties: name: type: string description: Name of the segment. value: type: - number - 'null' format: double description: Segment value for the specified date range. previousValue: type: - number - 'null' format: double description: |- Segment value for the previous date range. This value is relative to the specified date range. humanValue: type: - string - 'null' description: |- Human readable segment value. This field is formatted with a currency sign. changeRatio: type: - number - 'null' format: double description: |- Ratio of the current value for each previous value. A null value represents infinity. humanChangeRatio: type: - string - 'null' description: |- Human readable change ratio. This field is formatted percentage sign. A null value represents infinity. timeseries: description: Time series. type: array items: type: object description: Chart data. readOnly: true properties: date: type: string description: Entry date-time. value: type: - number - 'null' description: Entry value. DccMarkup: type: object properties: data: description: Aggregation data. type: array items: type: object description: Contains an aggregation. readOnly: true properties: aggregationValue: type: string description: |- Value by which the report provides aggregated data. Date values are displayed as follows: - Day: `YYYY-MM-DD`. - Month: `YYYY-MM`. selectedCount: type: integer description: Number of selected offers in the aggregation. selectedSum: type: number format: double description: Amount of selected offers in the aggregation. rejectedCount: type: integer description: Number of rejected offers in the aggregation. rejectedSum: type: number format: double description: Amount of rejected offers in the aggregation. unknownCount: type: integer description: >- Number of offers in the aggregation which are not selected nor rejected. unknownSum: type: number format: double description: >- Amount of offers in the aggregation which are not selected nor rejected. ReportDeclinedTransactions: type: object properties: data: type: array items: type: object properties: message: description: >- Description or message related to the declined transactions report. type: string example: error count: description: Number of declined transactions. type: integer example: 500 percentage: description: Percentage of declined transactions. type: number format: double example: 25 ReportDisputes: type: object properties: data: type: array description: Disputes data. items: type: object properties: aggregationValue: description: >- Aggregation field value. This value is defined in the `aggregationField` parameter by using a query. For example, this value could be: website or country. type: string countVisa: description: Total number of disputed Visa transactions. type: integer ratioCountVisa: description: >- Ratio of the total number of disputed Visa transactions versus the total number of settled Visa transactions. type: number format: double ratioAmountVisa: description: >- Ratio of disputed Visa transaction amounts versus settled Visa transaction amounts. type: number format: double countMastercard: description: Total number of disputed Mastercard transactions. type: integer ratioCountMastercard: description: >- Ratio of the total number of disputed Mastercard transactions versus the total number of settled Mastercard transactions. type: number format: double ratioAmountMastercard: description: >- Ratio of disputed Mastercard transaction amounts versus settled Mastercard transaction amounts. type: number format: double ReportEventsTriggeredSummary: type: object properties: data: type: array description: Event data. items: type: object properties: eventName: description: Name of the system event. type: string enum: - dispute-created - gateway-account-requested - transaction-processed - subscription-canceled - subscription-renewed - payment-card-expired - payment-declined - transaction-process-requested - risk-score-changed count: description: Total number of times this event is triggered. type: integer ReportRulesMatchedSummary: type: object properties: data: description: Matched rule data. type: array items: type: object properties: rule: description: Name of the matched rule. type: string count: description: Total number of times this rule is matched. type: integer approvalRate: description: Rate of transaction approval by rule. type: number format: double FutureRenewals: type: object properties: data: description: Future renewals data. type: array items: type: object description: Contains an aggregation. readOnly: true properties: date: type: string description: Date in `YYYY-MM` format. sum: type: number format: double description: >- Total amount of future renewals in the user's reporting currency. plansCount: type: array description: Plan within the aggregation. items: type: object readOnly: true properties: planId: type: string description: ID of the plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X count: type: integer description: Total number of future renewals of a plan. ReportJournal: type: object properties: aggregationField: type: string description: Report data grouped by aggregation field. enum: - product.accountingCode - product.id - plan.id currency: $ref: '#/components/schemas/CurrencyCode' bookedFrom: type: string description: >- Year and month when revenue is booked. If this value is omitted, booked revenue is recorded from the first booked amount. pattern: ^\d{4}-\d{2}$ example: 2022-01 bookedTo: type: string description: >- Year and month when revenue is booked until. If this value is omitted, booked revenue is recorded until the most recently booked amount. pattern: ^\d{4}-\d{2}$ example: 2022-01 recognizedAt: type: string description: Year and month when revenue is recognized. pattern: ^\d{4}-\d{2}$ example: 2022-01 data: description: Revenue data. type: array items: type: object properties: aggregationValue: description: Aggregation field value. type: string bookedMonth: description: Month when revenue is booked. type: string pattern: ^\d{4}-\d{2}$ example: 2022-02 bookedAmount: description: Revenue amount which is booked for recognition. type: number format: double example: 25 recognizedAmount: description: Amount of recognized revenue. type: number format: double example: 20 remainingAmount: description: Remaining revenue amount to be recognized. type: number format: double example: 5 ReportKycRejections: type: object properties: data: description: Rejection data. type: array items: type: object properties: documentType: $ref: '#/components/schemas/KycDocumentTypes' rejectionReasons: type: array description: Rejection reasons. items: type: object properties: rejectionReason: $ref: '#/components/schemas/KycDocumentRejectionReasonTypes' count: type: integer format: integer minimum: 0 description: Total number of related KYC documents. KycDocumentRequestStatuses: description: Reason the document is rejected. type: string enum: - abandoned - expired - failed - fulfilled - pending-review ReportKycRequests: type: object properties: data: description: Request data. type: array items: type: object properties: rejectionReason: $ref: '#/components/schemas/KycDocumentRequestStatuses' count: type: integer format: integer minimum: 0 description: Number of related KYC requests. ReportMonthlyRecurringRevenue: type: object properties: data: description: Monthly Recurring Revenue (MRR) data. type: array items: type: object properties: period: description: Revenue month. type: string pattern: ^\d{4}-\d{2}$ example: 2022-06 total: description: Total Monthly Recurring Revenue (MRR) amount. type: number format: double example: 245 breakdown: description: >- MRR categories are described below. The difference between the current period MRR and the previous period MRR is equal to: `new` + `reactivation` + `expansion` - `contraction` - `churned`. type: object properties: new: description: |- Occurs when new customers sign up. New MRR is the amount of the new customer's subscription. Example: A new customer signs up to a $40 per month plan. This is a new MRR amount of $40. type: number format: double example: 40 reactivation: description: >- Occurs when a customer stops being a customer for a period but later signs up again. Reactivation MRR is the amount of the customer's new subscription. Example: A customer cancels their subscription, but signs up again and purchases a $25 per month plan. This is a reactivation MRR amount of $25. type: number format: double example: 25 churned: description: >- Occurs when a subscription is churned. Churn occurs when the paid service period on a subscription order expires. Churned MRR is the amount that is lost as a result of the churned subscription. Example: When a subscription is churned, the value of a subscription goes from $80 per month to $0 per month. This is a churned MRR amount of $80. type: number format: double example: 80 contraction: description: >- Occurs when an existing customer changes items which result in a smaller MRR. Contraction MRR is the amount before the change minus the amount and after the change. Example: A customer downgrades from a plan that is $100 per month to plan that is $80 per month. This is a contraction MRR amount of $20. type: number format: double example: 20 expansion: description: >- Occurs when existing customers change items which result in a bigger MRR. Expansion MRR is the amount after the change minus the amount and before the change. Example: A customer upgrades from a plan that is $40 per month to a plan that is $100 per month. This is an expansion MRR amount of $60. type: number format: double example: 60 RenewalSales: type: object properties: data: description: Renewal sales data. type: array items: type: object description: Contains an aggregation. readOnly: true properties: aggregationValue: type: string description: Date in `YYYY-MM` format. newSales: type: number format: double description: Total amount of new sales. newRefunds: type: number format: double description: Total amount of new refunds. renewalSales: type: number format: double description: Total amount of renewal sales. renewalRefunds: type: number format: double description: Total amount of renewal refunds. ReportRetentionPercentage: type: object properties: data: description: Retention data. type: array items: type: object description: Contains an aggregation. readOnly: true properties: aggregationValue: type: string description: >- Value by which the report provides retention periods and percentages. Date values are displayed as follows: - Day: `YYYY-MM-DD`; - Month: `YYYY-MM`; - Quarter: `YYYY-MM`/`YYYY-MM`; - Year: `YYYY`. subscriptionsCount: type: integer description: Number of subscriptions created within the aggregation. periods: description: Periods of the specified aggregation. type: array items: type: object properties: period: type: integer description: >- Retention period number. This value is measured from the beginning boundary of the aggregation. Periods are numbered as follows: - `0`: First period. - `1`: Second period. - `2`: Third period, and so on. retentionRatio: type: number format: double description: >- Ratio percentage of active, non-cancelled, subscriptions in the retention period versus all subscriptions created in the aggregation period. canceledSubscriptionsCount: type: integer description: >- Number of canceled subscriptions within the specified retention period. ReportRetentionValue: type: object properties: data: description: Retention value data. type: array items: type: object description: Contains an aggregation. readOnly: true properties: aggregationValue: type: string description: >- Value by which the report provides retention periods and values. Date values are displayed as follows: - Day: `YYYY-MM-DD`. - Month: `YYYY-MM`. - Quarter: `YYYY-MM`/`YYYY-MM`. - Year: `YYYY`. customersCount: type: integer description: >- Number of customers within the aggregation who make their first payment. periods: description: Periods of the specified aggregation. type: array items: type: object properties: period: type: integer description: >- Retention period number. This value is measured from the beginning boundary of the aggregation. - `0`: First period. - `1`: Second period. - `2`: Third period, and so on. retentionAverage: type: number format: double description: >- Summary amount of all transactions for all periods up to the current period divided by the aggregation customer number. transactionsCount: type: integer description: >- Number of transactions that occurred within the retention period. For example, in 3 rebills. transactionsValue: type: number format: double description: >- Total value of transactions. This value is calculated based on: `income transactions` minus `loss transactions`. ReportRevenueWaterfall: type: array items: type: object properties: issuedMonth: description: Month when the revenue invoice is issued. type: string pattern: ^\d{4}-\d{2}$ example: 2022-02 booked: description: Month when the revenue amount is booked. type: number format: double example: 25 recognized: description: >- Amount of recognized revenue amount up to, and including, the `recognizedTo` month. type: number format: double example: 20 remaining: description: >- Amount of revenue that remains to be recognized after the `recognizedTo` month. type: number format: double example: 5 waterfall: type: array description: Recognized revenue waterfall for each month. items: type: object properties: recognizedMonth: description: Month when revenue is recognized. type: string pattern: ^\d{4}-\d{2}$ example: 2022-04 amount: description: Amount of revenue recognized at the `recognizedMonth`. type: number format: double example: - recognizedMonth: 2022-02 amount: 4.4 - recognizedMonth: 2022-03 amount: 8.33 - recognizedMonth: 2022-04 amount: 7.27 RevenueEntry: type: object readOnly: true properties: customerId: $ref: '#/components/schemas/CustomerId' invoiceId: type: string description: >- ID of the invoice that contains the item which generated the revenue. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT invoiceItemId: type: string description: ID of the invoice item which generated the revenue. maxLength: 50 example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV productId: description: ID of the product related to the invoice item. type: - string - 'null' maxLength: 50 example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ planId: description: ID of the plan related to the invoice item. type: - string - 'null' maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X accountingCode: description: Product accounting code. type: string example: '4010' currency: $ref: '#/components/schemas/CurrencyCode' status: description: Entry recognition status. readOnly: true type: string enum: - scheduled - recognized x-enumDescriptions: scheduled: The amount is recognized at the end of the month. recognized: The amount is recognized and final. estimatedAmount: description: >- Estimated amount of recognized revenue unless it changes before recognition time. type: number x-type: Money format: double recognizedAmount: description: Recognized amount. type: number x-type: Money format: double scheduledTime: description: Date and time when the entry is created. type: string format: date-time readOnly: true issuedTime: description: Date and time when the related invoice is issued. type: string format: date-time readOnly: true recognizedTime: description: Date and time when the entry is recognized. type: - string - 'null' format: date-time readOnly: true SubscriptionCancellationReport: type: object properties: data: description: Subscription cancellation data. type: array items: type: object description: Contains an aggregation. readOnly: true properties: aggregationValue: type: string description: Aggregation value. count: type: integer description: Total number of canceled subscriptions. averageLength: type: number format: double description: >- Average length of canceled subscription from start to end within the aggregation in seconds. medianLength: type: number format: double description: >- Median length of canceled subscription from start to end within the aggregation in seconds. SubscriptionRenewal: type: object properties: data: description: Subscription renewal data. type: array items: type: object description: Contains an aggregation. readOnly: true properties: planId: type: string description: Plan ID for which subscriptions are counted. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X allRenewalCount: type: integer description: Total number of renewed subscriptions. allDunningCount: type: integer description: >- Total number of dunned subscriptions. Dunning is the process of retrying unsuccessful payment transactions. abandonedCount: type: integer description: Total number of abandoned subscriptions. paidRenewalCount: type: integer description: |- Total number of paid renewed subscriptions. To determine the renewal rate, divide the value of this field by the `allRenewalCount` value. paidDunningCount: type: integer description: |- Total number of paid dunned subscriptions. To determine the dunning success rate, divide the value of this field by the `allDunningCount` value. refundedRenewalCount: type: integer description: |- Total number of paid renewed subscriptions. To determine the renewal refund rate, divide the value of this field by the `allRenewalCount` value. refundedDunningCount: type: integer description: |- Total number of paid dunned subscriptions. To determine the dunning refund rate, divide the value of this field by the `allDunningCount` value. chargebackRenewalCount: type: integer description: |- Total number of paid renewed subscriptions. To determine the renewal chargeback rate, divide the value of this field by the `allRenewalCount` value. chargebackDunningCount: type: integer description: |- Total number of paid dunned subscriptions. To determine the dunning chargeback rate, divide the value of this field by the `allDunningCount` value. ReportTax: type: object properties: data: description: Tax data. type: array items: type: object properties: country: description: >- Country to which the tax is owed, in [ISO Alpha-2 code format](https://www.iso.org/obp/ui/#search/code/). type: string example: US state: description: >- Postal abbreviated state name for the state to which the tax is owed. type: string example: TX county: description: Name of county to which the tax is owed. type: string example: TRAVIS city: description: Name of city to which the tax is owed. type: string example: AUSTIN stateRate: description: Percentage rate of state tax. type: number format: double stateAmount: description: Amount of state tax. type: number format: double countyRate: description: Percentage rate of county tax. type: number format: double countyAmount: description: Amount of county tax. type: number format: double cityRate: description: Percentage rate of city tax. type: number format: double cityAmount: description: Amount of city tax. type: number format: double specialDistrictRate: description: Percentage rate of special district tax. type: number format: double specialDistrictAmount: description: Amount of special district tax. type: number format: double taxableSalesAmount: description: Amount of taxable sales. type: number format: double nontaxableSalesAmount: description: Amount of nontaxable sales. type: number format: double TimeSeriesTransaction: type: object properties: data: description: Time series data. type: array items: type: object description: Contains an aggregation. readOnly: true properties: date: type: string description: Date in `YYYY-MM-DD` format . total: type: number format: double description: Total number of all transactions within the aggregation. subaggregates: type: object description: Subaggregates that have transactions within the range. properties: subaggregate: type: string description: ID of the subaggregate. value: type: number format: double description: >- Total number of all subaggregate transactions within the aggregation. ReportDisputeDelays: type: object properties: data: description: Dispute delay data. type: array items: type: object properties: aggregationFieldValue: description: >- Aggregation field value. This value is defined in the `aggregationField` parameter by using a query. For example, this value could be: website or country. type: string 25th: description: >- Delay between dispute and transaction time at the 25th percentile. type: integer 50th: description: >- Delay between dispute and transaction time at the 50th percentile. type: integer 75th: description: >- Delay between dispute and transaction time at the 75th percentile. type: integer ReportTransactions: type: object properties: data: description: Transaction data. type: array readOnly: true items: type: object properties: aggregationFieldValue: description: Aggregation field value. type: string authApprovedThroughput: description: Percentage of approved authentication transactions. type: number format: double approvedThroughput: description: Percentage of approved sale transactions. type: number format: double authApprovalCount: description: Total number of approved authentication transactions. type: integer disputesRate: description: Percentage of disputed sale and capture transactions. type: number format: double disputesCount: description: Total number of disputed sale and capture transactions. type: integer salesCount: description: Total number of sales. type: integer salesValue: description: Total sales value. type: number format: double salesAverage: description: Average sales value. type: number format: double refundsCount: description: Total number of refunds. type: integer refundsValue: description: Total value of refunds. type: number format: double amount: description: |- Amount of revenue. This value is the result of `salesValue` minus `refundsValue`. type: number format: double count: description: Total number of transactions. type: number format: double unapprovedCount: description: Total number of unapproved transactions. type: number format: double SubscriptionSummaryMetrics: type: object properties: currency: description: Currency code in ISO 4217 format. minLength: 3 maxLength: 3 example: USD readOnly: true type: string invoicedAmount: description: Total amount of all issued, past due, and paid invoices. readOnly: true type: number format: double collectedAmount: description: Total amount of all paid invoices. readOnly: true type: number format: double invoiceCount: description: Number of issued, past due, or paid invoices. readOnly: true type: integer StorefrontAccount: type: object properties: id: description: ID of the account. readOnly: true $ref: '#/components/schemas/ResourceId' websiteId: readOnly: true allOf: - $ref: '#/components/schemas/WebsiteId' username: type: string description: Username associated with the account. readOnly: true primaryAddress: $ref: '#/components/schemas/ContactObject' paymentToken: type: string writeOnly: true description: >- Write-only payment token. If this value is supplied, it converts into a payment instrument and set as the `defaultPaymentInstrument`. The value of this property overrides the `defaultPaymentInstrument` if both are supplied. This token may only be used once before it expires. defaultPaymentInstrument: type: object description: >- Default payment instrument. The default payment instrument is used to automatically pay subscription renewals, and for transaction requests where a specific payment instrument is not provided. required: - method properties: method: $ref: '#/components/schemas/PaymentMethod' paymentInstrumentId: type: string description: ID of the payment instrument. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N customFields: $ref: '#/components/schemas/ResourceCustomFields' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: website: type: object StorefrontBillingPortal: type: object required: - websiteId - slug properties: id: type: string description: ID of the billing portal. readOnly: true maxLength: 50 example: bill_prt_0YV7K5TYV5D1P9ZNKDT39KZC3C token: description: Session's token used for authentication. type: string readOnly: true slug: description: >- Path segment that is appended to the billing portal URL to help make it human-readable. Example: `https://example.com/billing-portal/{slug}`. type: string minLength: 5 maxLength: 100 websiteId: $ref: '#/components/schemas/WebsiteId' features: description: Features that can be enabled for the billing portal. type: object properties: authenticateWithPassword: description: Specifies if a customer can authenticate with a password. type: boolean default: true orderCancel: description: Specifies if a customer can cancel an order. type: boolean default: true orderAddressEdit: description: Specifies if a customer can change an order address. type: boolean default: true paymentInstrumentAdd: description: Specifies if a customer can add a new payment instrument. type: boolean default: true paymentInstrumentUpdate: description: Specifies if a customer can update their payment instruments. type: boolean default: true paymentInstrumentDeactivate: description: Specifies if a customer can disable their payment instruments. type: boolean default: true customization: description: Visual customization options for the billing portal. type: object properties: logoId: description: ID of the linked file object. $ref: '#/components/schemas/ResourceId' colors: description: Various colors used in the billing portal. type: object properties: primary: description: Primary color for the billing portal in hexadecimal format. type: string maxLength: 6 default: 0044d4 secondary: description: >- Secondary color for the billing portal in hexadecimal format. type: string maxLength: 6 default: ffffff links: description: URLs that are displayed in the billing portal. type: object properties: refundPolicy: description: Website refund policy URL. type: string format: url privacyPolicy: description: Website privacy policy URL. type: string format: url termsOfService: description: Website terms of service URL. type: string format: url 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 - logoUrl StorefrontTransaction: type: object description: Transaction information. properties: id: readOnly: true $ref: '#/components/schemas/TransactionId' websiteId: readOnly: true allOf: - $ref: '#/components/schemas/WebsiteId' 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. $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' orderIds: 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' 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' 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' humanMessage: description: Human-readable gateway response message. type: - string - 'null' humanDescription: description: >- Human-readable gateway response description with more detailed information. 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' 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' paymentInstrument: type: object description: Default payment instrument information. required: - method properties: method: $ref: '#/components/schemas/PaymentMethod' paymentInstrumentId: type: string description: ID of the payment instrument. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N approvalUrl: description: >- URL to redirect the end-customer when transaction `status` is `waiting-approval` or `offsite`. type: string format: uri token: description: >- Session token that is used for authentication. This token provides access to created orders, invoices, and transactions. type: string readOnly: true 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 _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 - approvalUrl - approvalContinue - approvalBypass - cancelUrl - redirectUrl StorefrontCheckoutForm: type: object required: - websiteId - plans properties: id: type: string description: ID of the checkout form. readOnly: true maxLength: 50 example: chkt_frm_0YV8XZ6174C2MBS5011SAZNMBP websiteId: $ref: '#/components/schemas/WebsiteId' customDomain: description: Custom domain for the checkout form. type: - string - 'null' maxLength: 255 plans: type: array description: >- List of plans that are applied to a customer order by default. Plans describe how the customer must pay for products. For more information, see [Plans](https://www.rebilly.com/docs/dev-docs/api/plans/). minItems: 1 items: $ref: '#/components/schemas/CheckoutFormPlan' addonPlans: description: >- List of add-on plans that are displayed to the customer on the payment screen. Add-ons are plans that the customer has not already subscribed to. The customer selects whether to add an add-on plan to their current order. default: [] type: array items: $ref: '#/components/schemas/CheckoutFormPlan' bumpPlans: description: >- List of bump plans that are displayed to the customer on the payment screen. Use bump plans to offer purchase bonuses, discounts, and deals to the customer. The customer selects whether to purchase bump plans, or to use the plans that are specified in their current order. default: [] type: array items: $ref: '#/components/schemas/CheckoutFormPlan' accountsEnabled: description: >- Specifies if the account is enabled. If this value is `true`, the customer can sign-up and sign-in using the checkout form. type: boolean default: false couponsEnabled: description: >- Specifies if coupons are enabled in the checkout form. If this value is `true`, the customer can use coupons in the checkout form. Use coupons to reward customers, generate sales, or to test new pricing strategies. type: boolean default: false purchaseLimit: description: >- Limits the number of purchases that can be made using a specific checkout form. If a purchase limit value is set, each purchase decreases this value. When the purchases limit value reaches zero, the checkout form becomes inactive. type: - integer - 'null' minimum: 0 default: null paymentMethods: description: |- List of available payment methods. Payment methods must have at least one active gateway account. If not specified, all available payment methods are displayed. type: array items: $ref: '#/components/schemas/PaymentMethod' customization: description: Visual customization options for the checkout form. type: object properties: logoId: description: ID of the linked file object. $ref: '#/components/schemas/ResourceId' summary: description: Summary text. type: string buttonText: description: >- Button text. Use the `{{amount}}` placeholder to display the checkout form total. type: string default: Pay {{amount}} colors: description: Primary color used in the checkout form and button text. type: object properties: primary: description: Primary color for the checkout form in hexadecimal format. type: string maxLength: 6 default: 0044d4 buttonText: description: >- Button text color for the checkout form in hexadecimal format. type: string maxLength: 6 default: ffffff links: description: URLs that are displayed on the checkout form. type: object properties: refundPolicy: description: Website refund policy URL. type: string format: url privacyPolicy: description: Website privacy policy URL. type: string format: url termsOfService: description: Website terms of service URL. type: string format: url tracking: description: Tracking system IDs. type: object properties: googleAnalytics: description: Google Analytics tracking ID. type: string example: UA-XXXXX-YY googleTagManager: description: Google Tag Manager tracking ID. type: string example: GTM-XXXXX gtagJs: description: >- Google Analytics tracking ID. This value is used by Google Global Site Tag (gtag.js) service. type: string example: UA-XXXXX-YY facebookPixel: description: Facebook Pixel tracking ID. type: string example: '1234567890' segmentAnalytics: description: Segment Analytics tracking ID. type: string example: '1234567890' heapIo: description: Heap.io tracking ID. type: string example: '1234567890' requiredAdditionalFields: description: List of required fields. type: array items: type: string example: - information.companyName - information.phoneNumber createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' token: description: Session token that is used for authentication. type: string readOnly: true _links: $ref: '#/components/schemas/SelfLink' StorefrontInvoice: 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_01HVKA5975PJBSQ1SX72G3MSZC 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 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' 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 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 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 - 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 $ref: '#/components/schemas/ServerTimestamp' voidedTime: description: Date and time when the invoice is voided. x-sortable: true $ref: '#/components/schemas/ServerTimestamp' paidTime: x-label: Payment Date x-sortable: true x-basic: true description: Date and time when the invoice is paid. $ref: '#/components/schemas/ServerTimestamp' 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 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`. transactions: type: array description: Invoice transactions array. readOnly: true items: $ref: '#/components/schemas/StorefrontTransaction' _links: $ref: '#/components/schemas/SelfLink' StorefrontUpcomingInvoice: 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' orderId: description: ID of the order. readOnly: true type: - string - 'null' maxLength: 50 example: ord_01HVKA5975PJBSQ1SX72G3MSZC currency: $ref: '#/components/schemas/CurrencyCode' items: type: array description: Upcoming invoice items array. items: $ref: '#/components/schemas/UpcomingInvoiceItem' amount: description: Amount of the invoice. type: number format: double readOnly: true amountDue: description: Amount that is due on the invoice. type: number format: double readOnly: true subtotalAmount: description: Subtotal amount of the invoice. type: number format: double readOnly: true discountAmount: description: Discount amount that is applied to the invoice. type: number 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 format: date-time issuedTime: description: Date and time when the invoice is issued. $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 StorefrontProofOfIdentityKycDocument: type: object required: - documentType - status properties: id: readOnly: true $ref: '#/components/schemas/ResourceId' 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: $ref: '#/components/schemas/ResourceId' 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 format: date-time readOnly: true documentMatches: type: object readOnly: true description: 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' _links: $ref: '#/components/schemas/SelfLink' StorefrontProofOfAddressKycDocument: type: object required: - documentType - status properties: id: readOnly: true $ref: '#/components/schemas/ResourceId' 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: $ref: '#/components/schemas/ResourceId' 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 format: date-time readOnly: true documentMatches: description: Document matches. type: object 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' _links: $ref: '#/components/schemas/SelfLink' StorefrontProofOfFundsKycDocument: type: object required: - documentType - status properties: id: readOnly: true $ref: '#/components/schemas/ResourceId' 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: $ref: '#/components/schemas/ResourceId' 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 format: date-time readOnly: true _links: $ref: '#/components/schemas/SelfLink' StorefrontProofOfPurchaseKycDocument: type: object required: - documentType - status properties: id: readOnly: true $ref: '#/components/schemas/ResourceId' 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: $ref: '#/components/schemas/ResourceId' 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 format: date-time readOnly: true documentMatches: type: object readOnly: true description: Document matches. properties: data: $ref: '#/components/schemas/PurchaseMatches' _links: $ref: '#/components/schemas/SelfLink' StorefrontProofOfCreditFileKycDocument: type: object required: - documentType - status properties: id: readOnly: true $ref: '#/components/schemas/ResourceId' 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: $ref: '#/components/schemas/ResourceId' 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 format: date-time readOnly: true documentMatches: type: object readOnly: true description: Document matches. properties: data: $ref: '#/components/schemas/CreditFileMatches' _links: $ref: '#/components/schemas/SelfLink' StorefrontKycDocument: oneOf: - $ref: '#/components/schemas/StorefrontProofOfIdentityKycDocument' - $ref: '#/components/schemas/StorefrontProofOfAddressKycDocument' - $ref: '#/components/schemas/StorefrontProofOfFundsKycDocument' - $ref: '#/components/schemas/StorefrontProofOfPurchaseKycDocument' - $ref: '#/components/schemas/StorefrontProofOfCreditFileKycDocument' discriminator: propertyName: documentType mapping: identity-proof: '#/components/schemas/StorefrontProofOfIdentityKycDocument' address-proof: '#/components/schemas/StorefrontProofOfAddressKycDocument' funds-proof: '#/components/schemas/StorefrontProofOfFundsKycDocument' purchase-proof: '#/components/schemas/StorefrontProofOfPurchaseKycDocument' credit-file-proof: '#/components/schemas/StorefrontProofOfCreditFileKycDocument' StorefrontKycRequest: type: object description: KYC request information. properties: id: type: string readOnly: true description: ID of the KYC request. maxLength: 50 example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5 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 format: uri 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 _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: documents: type: array StorefrontKycLivenessSession: type: object description: KYC liveness session information. required: - customerId properties: id: type: string readOnly: true description: ID of the KYC liveness session. maxLength: 50 example: kyc_liv_0YV7JMJ3DBCGRBR7K9D4HVGPP5 customerId: $ref: '#/components/schemas/CustomerId' readOnly: true kycRequestId: type: string description: ID of the KYC request that the liveness session is associated with. maxLength: 50 example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5 sessionId: type: string readOnly: true description: Session ID of the KYC liveness session in the third-party service. example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 status: description: Status of the session. type: string readOnly: true enum: - pending - completed - failed - abandoned x-enumDescriptions: pending: |- Session is created, but not processed yet. This is a temporary state. completed: |- Session is completed. This is a permanent state. failed: |- Session has failed. This is a permanent state. abandoned: |- Session was not completed and timed out. This is a permanent state. referenceImage: type: - string - 'null' readOnly: true description: URL of the reference image. format: uri example: https://www.rebilly.com/blog/header-images/handle_chargebacks.png 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 - kycRequest StorefrontCustomerJWT: type: object properties: id: type: string description: ID of the session. readOnly: true maxLength: 50 example: jwt_0YV7DEJX80CDRAKVTV478ZNJDR token: description: Session's token used for authentication. type: string readOnly: true createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' expiredTime: description: Session expired time. Defaults to one hour. type: string format: date-time StorefrontSubscription: type: object properties: id: type: string description: ID of the order. readOnly: true maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 orderType: description: |- Specifies the type of order. An order may be a subscription or a one-time purchase. type: string enum: - subscription-order - one-time-order default: subscription-order 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' orderId: description: ID of the order. readOnly: true type: - string - 'null' maxLength: 50 example: ord_01HVKA5975PJBSQ1SX72G3MSZC currency: description: Currency of the order. readOnly: true $ref: '#/components/schemas/CurrencyCode' initialInvoiceId: type: string description: ID of the initial invoice. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT recentInvoiceId: type: string description: |- ID of the most recently issued invoice. The invoice might not be `paid` yet. readOnly: true 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 $ref: '#/components/schemas/ServerTimestamp' voidTime: description: Date and time when the order is voided. $ref: '#/components/schemas/ServerTimestamp' 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 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 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 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 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 same recurring period length, this property enables the customer to subscribe to different plans. 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 endTime: description: >- Time and date when the trial ends. If a trial is enabled on this subscription, a value must be provided. type: string 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 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 same recurring period length, this property enables the customer to subscribe to different plans. 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 format: date-time readOnly: true renewalTime: description: Date and time when the subscription renews. type: string x-sortable: true x-basic: true format: date-time rebillNumber: description: Current billing period number. type: integer 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 `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 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: 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 canceledTime: description: Date and time when the subscription order is canceled. x-label: Cancellation time x-sortable: true x-basic: true type: string format: date-time readOnly: true canceledBy: description: Specifies who initiated the cancellation. type: string readOnly: true enum: - merchant - customer - rebilly cancelCategory: description: Category of the cancellation. type: string 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 cancelDescription: description: Description of the cancellation reason in free form. type: string readOnly: true maxLength: 255 billingPortalId: type: string description: ID of the billing portal. default: null example: bill_prt_0YV7K5TYV5D1P9ZNKDT39KZC3C customFields: $ref: '#/components/schemas/ResourceCustomFields' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' _embedded: type: object description: Embedded objects that are requested by the `expand` query parameter. readOnly: true properties: changeItemsQuote: type: object changeItemsInvoice: type: object StorefrontOneTimeSale: type: object properties: id: type: string description: ID of the one-time sale. readOnly: true maxLength: 50 example: ots_01HRF27SATGE4Z6PBJE6PD8328 orderType: description: |- Specifies the type of order. An order may be a subscription or a one-time purchase. type: string enum: - subscription-order - one-time-order default: subscription-order 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: type: string description: ID of the initial invoice. readOnly: true maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT recentInvoiceId: type: string description: |- ID of the most recently issued invoice. The invoice might not be `paid` yet. readOnly: true 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 $ref: '#/components/schemas/ServerTimestamp' voidTime: description: Date and time when the order is voided. $ref: '#/components/schemas/ServerTimestamp' 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 status: description: Status of the one-time order. type: string readOnly: true enum: - pending - abandoned - completed - canceled customFields: $ref: '#/components/schemas/ResourceCustomFields' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' StorefrontOrder: type: object discriminator: propertyName: orderType mapping: subscription-order: '#/components/schemas/StorefrontSubscription' one-time-order: '#/components/schemas/StorefrontOneTimeSale' properties: orderType: description: |- Specifies the type of order. An order may be a subscription or a one-time purchase. type: string enum: - subscription-order - one-time-order PostSubscriptionItemsChange: type: object description: Change customer subscription items. properties: effectiveTime: type: string description: Effective time when changes are applied. default: now enum: - now - next-service-period x-enumDescriptions: now: Apply changes immediately. next-service-period: Apply changes at the beginning of next service period. items: type: array description: Details of items in the subscription. 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 units of the product on the given plan. type: integer minimum: 0 preview: description: |- Specifies if the quote must be previewed before it is created. Subscriptions cannot be changed in the preview. type: boolean default: false example: true StorefrontQuoteChangeOrder: type: object 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. readOnly: true type: string maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 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 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' _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 - 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 StorefrontQuoteTrialConversionOrder: type: object 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 subscription. readOnly: true type: string maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 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 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 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' _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 - 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 StorefrontChangeOrderItems: discriminator: propertyName: action mapping: change: '#/components/schemas/StorefrontQuoteChangeOrder' trial-only-conversion: '#/components/schemas/StorefrontQuoteTrialConversionOrder' oneOf: - $ref: '#/components/schemas/StorefrontQuoteChangeOrder' - $ref: '#/components/schemas/StorefrontQuoteTrialConversionOrder' PostSubscriptionReactivation: type: object description: Reactivate customer subscription. required: - orderId properties: orderId: type: string description: ID of the order associated with the reactivation quote. example: ord_01HVKA5975PJBSQ1SX72G3MSZC items: type: array description: Details of items in the subscription. 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 units of the product on the given plan. type: integer minimum: 0 preview: description: |- Specifies if the quote must be previewed before it is created. Subscriptions cannot be reactivated in the preview. type: boolean default: false example: true StorefrontQuoteReactivateOrder: type: object 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. readOnly: true type: string maxLength: 50 example: sub_01HRF27SATGE4Z6PBJE6PD8328 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 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' _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 - 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 PaymentInstructionsToken: type: object title: Payment Token required: - token properties: token: description: ID of the payment token. type: string PaymentInstructionsInstrument: type: object title: Payment instrument required: - paymentInstrumentId properties: paymentInstrumentId: type: string description: ID of the payment instrument. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N StorefrontTransactionRedirectUrl: type: - string - 'null' description: >- URL to redirect the end-user when an offsite transaction is completed. If `website.url` is `https://example.com`, then the `redirectUrl` could be set to any of these: - `https://example.com` - `https://example.com/some/path` - `https://example.com/some/path?and=query` - `https://example.com/some/path?and=query#and-fragment` Defaults to the website URL. You may use `{id}` or `{result}` as placeholders in the URL and we replace them with the transaction id and result accordingly. format: uri writeOnly: true StorefrontPaymentCard: type: object description: Payment card information. title: Payment card properties: id: description: ID of the payment instrument. readOnly: true $ref: '#/components/schemas/ResourceId' 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 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' token: description: |- New customer JSON Web Token (JWT) that is used for further requests. This value is null if the customer is already authenticated. type: - string - 'null' readOnly: true _links: $ref: '#/components/schemas/SelfLink' StorefrontBankAccount: type: object title: Bank account properties: id: description: ID of the payment instrument. readOnly: true $ref: '#/components/schemas/ResourceId' 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 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 useAsBackup: $ref: '#/components/schemas/UseAsBackup' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' customFields: $ref: '#/components/schemas/ResourceCustomFields' token: description: |- New customer JSON Web Token (JWT) that is used for further requests. This value is null if the customer is already authenticated. type: - string - 'null' readOnly: true _links: $ref: '#/components/schemas/SelfLink' StorefrontPayPalAccount: type: object title: PayPal account properties: id: description: ID of the payment instrument. readOnly: true $ref: '#/components/schemas/ResourceId' 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' token: description: |- New customer JSON Web Token (JWT) that is used for further requests. This value is null if the customer is already authenticated. type: - string - 'null' readOnly: true _links: $ref: '#/components/schemas/SelfLink' StorefrontKhelocardCard: type: object title: Khelocard card properties: id: description: ID of the payment instrument. $ref: '#/components/schemas/ResourceId' 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' token: description: |- New customer JSON Web Token (JWT) that is used for further requests. This value is null if the customer is already authenticated. type: - string - 'null' readOnly: true _links: $ref: '#/components/schemas/SelfLink' StorefrontAlternativeInstrument: type: object title: Alternative instrument properties: id: description: ID of the payment instrument. readOnly: true $ref: '#/components/schemas/ResourceId' 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' token: description: |- New customer JSON Web Token (JWT) that is used for further requests. This value is null if the customer is already authenticated. type: - string - 'null' readOnly: true _links: $ref: '#/components/schemas/SelfLink' StorefrontPaymentInstrument: oneOf: - $ref: '#/components/schemas/StorefrontPaymentCard' - $ref: '#/components/schemas/StorefrontBankAccount' - $ref: '#/components/schemas/StorefrontPayPalAccount' - $ref: '#/components/schemas/StorefrontKhelocardCard' - $ref: '#/components/schemas/StorefrontAlternativeInstrument' StorefrontPayoutRequest: type: object properties: id: type: string readOnly: true description: Unique resource ID. maxLength: 50 example: pout_req_0YVDMDE2BMC6KBB5MX76RF6T80 websiteId: $ref: '#/components/schemas/WebsiteId' paymentInstrumentId: type: string 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 status: description: Status of the request. type: string readOnly: true enum: - pending - partially-fulfilled - fulfilled x-enumDescriptions: pending: Request 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. 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 StorefrontPlan: type: object required: - name - currency - productId - pricing properties: id: type: string description: ID of the plan. maxLength: 50 example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X 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. richDescription: type: string description: >- Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks. 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. trial: type: - object - 'null' description: |- Trial configuration setting. If you do not want to offer a trial, set this value to `null`. required: - price - period properties: price: description: |- Price of the trial. For a free trial, 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 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 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 _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 - attachments StorefrontProduct: 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 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 customFields: $ref: '#/components/schemas/ResourceCustomFields' createdTime: $ref: '#/components/schemas/CreatedTime' updatedTime: $ref: '#/components/schemas/UpdatedTime' _links: $ref: '#/components/schemas/SelfLink' StorefrontPurchase: type: object required: - websiteId - paymentInstruction - items properties: orderId: description: ID of the order. readOnly: true $ref: '#/components/schemas/ResourceId' invoice: description: Initial invoice. readOnly: true allOf: - $ref: '#/components/schemas/StorefrontInvoice' transaction: description: Initial transaction. readOnly: true allOf: - $ref: '#/components/schemas/StorefrontTransaction' token: description: >- Session token that is used for authentication. This token can be used to view the created order, invoice, and transaction. type: string readOnly: true websiteId: writeOnly: true allOf: - $ref: '#/components/schemas/WebsiteId' items: 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' shippingRateId: description: |- ID of the shipping rate. If this value is not set, the cheapest applicable shipping rate is chosen. writeOnly: true $ref: '#/components/schemas/ResourceId' paymentInstruction: description: Payment instruction for the purchase. writeOnly: true allOf: - $ref: '#/components/schemas/PaymentInstruction' couponIds: type: array description: List of coupons that are applied to the order. writeOnly: true items: type: string password: type: - string - 'null' description: |- Customer account password. If this value is set, it is used to create a customer account. writeOnly: true redirectUrl: type: - string - 'null' description: >- URL to redirect the end-user when an offsite transaction is completed. If `website.url` is `https://example.com`, then the `redirectUrl` can be set to one the following: - `https://example.com` - `https://example.com/some/path` - `https://example.com/some/path?and=query` - `https://example.com/some/path?and=query#and-fragment` This field defaults to the configured website URL. You may use `{id}` or `{result}` as placeholders in the URL. These placeholders are replaced with the transaction ID and result. format: uri writeOnly: true poNumber: description: Purchase order number that is displayed on the invoice. type: - string - 'null' example: PO123456 StorefrontOrderPreview: 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 shippingRateId: description: |- ID of the shipping rate. If unset the cheapest applicable shipping rate is chosen. writeOnly: true $ref: '#/components/schemas/ResourceId' billingPortalId: description: ID of the billing portal to validate items against. StorefrontQuoteCreateOrder: type: object 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 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 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' _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 - 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 StorefrontQuote: discriminator: propertyName: action mapping: create: '#/components/schemas/StorefrontQuoteCreateOrder' change: '#/components/schemas/StorefrontQuoteChangeOrder' reactivate: '#/components/schemas/StorefrontQuoteReactivateOrder' trial-only-conversion: '#/components/schemas/StorefrontQuoteTrialConversionOrder' oneOf: - $ref: '#/components/schemas/StorefrontQuoteCreateOrder' - $ref: '#/components/schemas/StorefrontQuoteChangeOrder' - $ref: '#/components/schemas/StorefrontQuoteReactivateOrder' - $ref: '#/components/schemas/StorefrontQuoteTrialConversionOrder' ReadyToPayout: type: object required: - websiteId - amount - currency - riskMetadata properties: websiteId: $ref: '#/components/schemas/WebsiteId' billingAddress: description: Billing address. writeOnly: true allOf: - $ref: '#/components/schemas/ContactObject' riskMetadata: $ref: '#/components/schemas/RiskMetadata' currency: $ref: '#/components/schemas/CurrencyCode' amount: description: Amount to payout. type: number format: double ReadyToPayoutMethodFilters: 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 ReadyToPayoutPaymentCardMethod: type: object title: Payment card required: - method properties: method: type: string description: Payment method. enum: - payment-card brands: type: array description: List of supported brands. minItems: 1 items: $ref: '#/components/schemas/PaymentCardBrand' filters: $ref: '#/components/schemas/ReadyToPayoutMethodFilters' ReadyToPayoutGenericMethod: type: object title: Generic required: - method properties: method: $ref: '#/components/schemas/AlternativePaymentMethods' filters: $ref: '#/components/schemas/ReadyToPayoutMethodFilters' ReadyToPayoutMethods: type: object discriminator: propertyName: method mapping: payment-card: '#/components/schemas/ReadyToPayoutPaymentCardMethod' ach: '#/components/schemas/ReadyToPayoutGenericMethod' cash: '#/components/schemas/ReadyToPayoutGenericMethod' check: '#/components/schemas/ReadyToPayoutGenericMethod' paypal: '#/components/schemas/ReadyToPayoutGenericMethod' AdvCash: '#/components/schemas/ReadyToPayoutGenericMethod' Alfa-click: '#/components/schemas/ReadyToPayoutGenericMethod' Alipay: '#/components/schemas/ReadyToPayoutGenericMethod' AstroPay Card: '#/components/schemas/ReadyToPayoutGenericMethod' AstroPay-GO: '#/components/schemas/ReadyToPayoutGenericMethod' BankReferenced: '#/components/schemas/ReadyToPayoutGenericMethod' bank-transfer: '#/components/schemas/ReadyToPayoutGenericMethod' bank-transfer-2: '#/components/schemas/ReadyToPayoutGenericMethod' bank-transfer-3: '#/components/schemas/ReadyToPayoutGenericMethod' bank-transfer-4: '#/components/schemas/ReadyToPayoutGenericMethod' bank-transfer-5: '#/components/schemas/ReadyToPayoutGenericMethod' bank-transfer-6: '#/components/schemas/ReadyToPayoutGenericMethod' bank-transfer-7: '#/components/schemas/ReadyToPayoutGenericMethod' bank-transfer-8: '#/components/schemas/ReadyToPayoutGenericMethod' bank-transfer-9: '#/components/schemas/ReadyToPayoutGenericMethod' Baloto: '#/components/schemas/ReadyToPayoutGenericMethod' Beeline: '#/components/schemas/ReadyToPayoutGenericMethod' Belfius-direct-net: '#/components/schemas/ReadyToPayoutGenericMethod' bitcoin: '#/components/schemas/ReadyToPayoutGenericMethod' Bizum: '#/components/schemas/ReadyToPayoutGenericMethod' Boleto: '#/components/schemas/ReadyToPayoutGenericMethod' cash-deposit: '#/components/schemas/ReadyToPayoutGenericMethod' CASHlib: '#/components/schemas/ReadyToPayoutGenericMethod' CashToCode: '#/components/schemas/ReadyToPayoutGenericMethod' China UnionPay: '#/components/schemas/ReadyToPayoutGenericMethod' Cleo: '#/components/schemas/ReadyToPayoutGenericMethod' CODVoucher: '#/components/schemas/ReadyToPayoutGenericMethod' Conekta-oxxo: '#/components/schemas/ReadyToPayoutGenericMethod' Cupon-de-pagos: '#/components/schemas/ReadyToPayoutGenericMethod' cryptocurrency: '#/components/schemas/ReadyToPayoutGenericMethod' domestic-cards: '#/components/schemas/ReadyToPayoutGenericMethod' echeck: '#/components/schemas/ReadyToPayoutGenericMethod' ecoPayz: '#/components/schemas/ReadyToPayoutGenericMethod' ecoVoucher: '#/components/schemas/ReadyToPayoutGenericMethod' Efecty: '#/components/schemas/ReadyToPayoutGenericMethod' EPS: '#/components/schemas/ReadyToPayoutGenericMethod' ePay.bg: '#/components/schemas/ReadyToPayoutGenericMethod' eZeeWallet: '#/components/schemas/ReadyToPayoutGenericMethod' FasterPay: '#/components/schemas/ReadyToPayoutGenericMethod' Flexepin: '#/components/schemas/ReadyToPayoutGenericMethod' Giropay: '#/components/schemas/ReadyToPayoutGenericMethod' Gpaysafe: '#/components/schemas/ReadyToPayoutGenericMethod' Google Pay: '#/components/schemas/ReadyToPayoutGenericMethod' iDebit: '#/components/schemas/ReadyToPayoutGenericMethod' iDEAL: '#/components/schemas/ReadyToPayoutGenericMethod' ING-homepay: '#/components/schemas/ReadyToPayoutGenericMethod' INOVAPAY-pin: '#/components/schemas/ReadyToPayoutGenericMethod' INOVAPAY-wallet: '#/components/schemas/ReadyToPayoutGenericMethod' InstaDebit: '#/components/schemas/ReadyToPayoutGenericMethod' instant-bank-transfer: '#/components/schemas/ReadyToPayoutGenericMethod' InstantPayments: '#/components/schemas/ReadyToPayoutGenericMethod' Interac: '#/components/schemas/ReadyToPayoutGenericMethod' Interac-online: '#/components/schemas/ReadyToPayoutGenericMethod' Interac-eTransfer: '#/components/schemas/ReadyToPayoutGenericMethod' invoice: '#/components/schemas/ReadyToPayoutGenericMethod' iWallet: '#/components/schemas/ReadyToPayoutGenericMethod' Jeton: '#/components/schemas/ReadyToPayoutGenericMethod' jpay: '#/components/schemas/ReadyToPayoutGenericMethod' Khelocard: '#/components/schemas/ReadyToPayoutGenericMethod' Klarna: '#/components/schemas/ReadyToPayoutGenericMethod' KNOT: '#/components/schemas/ReadyToPayoutGenericMethod' loonie: '#/components/schemas/ReadyToPayoutGenericMethod' Matrix: '#/components/schemas/ReadyToPayoutGenericMethod' MaxiCash: '#/components/schemas/ReadyToPayoutGenericMethod' Megafon: '#/components/schemas/ReadyToPayoutGenericMethod' MiFinity-eWallet: '#/components/schemas/ReadyToPayoutGenericMethod' miscellaneous: '#/components/schemas/ReadyToPayoutGenericMethod' Bancontact: '#/components/schemas/ReadyToPayoutGenericMethod' Bancontact-mobile: '#/components/schemas/ReadyToPayoutGenericMethod' MTS: '#/components/schemas/ReadyToPayoutGenericMethod' MuchBetter: '#/components/schemas/ReadyToPayoutGenericMethod' Multibanco: '#/components/schemas/ReadyToPayoutGenericMethod' Neosurf: '#/components/schemas/ReadyToPayoutGenericMethod' Netbanking: '#/components/schemas/ReadyToPayoutGenericMethod' Neteller: '#/components/schemas/ReadyToPayoutGenericMethod' Nordea-Solo: '#/components/schemas/ReadyToPayoutGenericMethod' OchaPay: '#/components/schemas/ReadyToPayoutGenericMethod' online-bank-transfer: '#/components/schemas/ReadyToPayoutGenericMethod' Onlineueberweisen: '#/components/schemas/ReadyToPayoutGenericMethod' oriental-wallet: '#/components/schemas/ReadyToPayoutGenericMethod' OXXO: '#/components/schemas/ReadyToPayoutGenericMethod' P24: '#/components/schemas/ReadyToPayoutGenericMethod' Pagadito: '#/components/schemas/ReadyToPayoutGenericMethod' PagoEffectivo: '#/components/schemas/ReadyToPayoutGenericMethod' Pagsmile-deposit-express: '#/components/schemas/ReadyToPayoutGenericMethod' Pagsmile-lottery: '#/components/schemas/ReadyToPayoutGenericMethod' PayCash: '#/components/schemas/ReadyToPayoutGenericMethod' Payeer: '#/components/schemas/ReadyToPayoutGenericMethod' PaymentAsia-crypto: '#/components/schemas/ReadyToPayoutGenericMethod' Paymero: '#/components/schemas/ReadyToPayoutGenericMethod' Perfect-money: '#/components/schemas/ReadyToPayoutGenericMethod' Piastrix: '#/components/schemas/ReadyToPayoutGenericMethod' plaid-account: '#/components/schemas/ReadyToPayoutGenericMethod' PayTabs: '#/components/schemas/ReadyToPayoutGenericMethod' Paysafecard: '#/components/schemas/ReadyToPayoutGenericMethod' Paysafecash: '#/components/schemas/ReadyToPayoutGenericMethod' Pay4Fun: '#/components/schemas/ReadyToPayoutGenericMethod' Paynote: '#/components/schemas/ReadyToPayoutGenericMethod' PinPay: '#/components/schemas/ReadyToPayoutGenericMethod' PIX: '#/components/schemas/ReadyToPayoutGenericMethod' phone: '#/components/schemas/ReadyToPayoutGenericMethod' PhonePe: '#/components/schemas/ReadyToPayoutGenericMethod' POLi: '#/components/schemas/ReadyToPayoutGenericMethod' PostFinance-card: '#/components/schemas/ReadyToPayoutGenericMethod' PostFinance-e-finance: '#/components/schemas/ReadyToPayoutGenericMethod' QIWI: '#/components/schemas/ReadyToPayoutGenericMethod' QPay: '#/components/schemas/ReadyToPayoutGenericMethod' QQPay: '#/components/schemas/ReadyToPayoutGenericMethod' rapyd-checkout: '#/components/schemas/ReadyToPayoutGenericMethod' Resurs: '#/components/schemas/ReadyToPayoutGenericMethod' SafetyPay: '#/components/schemas/ReadyToPayoutGenericMethod' SEPA: '#/components/schemas/ReadyToPayoutGenericMethod' Skrill: '#/components/schemas/ReadyToPayoutGenericMethod' Skrill Rapid Transfer: '#/components/schemas/ReadyToPayoutGenericMethod' SMSVoucher: '#/components/schemas/ReadyToPayoutGenericMethod' Sofort: '#/components/schemas/ReadyToPayoutGenericMethod' SparkPay: '#/components/schemas/ReadyToPayoutGenericMethod' swift-dbt: '#/components/schemas/ReadyToPayoutGenericMethod' Tele2: '#/components/schemas/ReadyToPayoutGenericMethod' Terminaly-RF: '#/components/schemas/ReadyToPayoutGenericMethod' ToditoCash-card: '#/components/schemas/ReadyToPayoutGenericMethod' Trustly: '#/components/schemas/ReadyToPayoutGenericMethod' UPayCard: '#/components/schemas/ReadyToPayoutGenericMethod' UPI: '#/components/schemas/ReadyToPayoutGenericMethod' USD-coin: '#/components/schemas/ReadyToPayoutGenericMethod' VCreditos: '#/components/schemas/ReadyToPayoutGenericMethod' VenusPoint: '#/components/schemas/ReadyToPayoutGenericMethod' voucher: '#/components/schemas/ReadyToPayoutGenericMethod' voucher-2: '#/components/schemas/ReadyToPayoutGenericMethod' voucher-3: '#/components/schemas/ReadyToPayoutGenericMethod' voucher-4: '#/components/schemas/ReadyToPayoutGenericMethod' Webmoney: '#/components/schemas/ReadyToPayoutGenericMethod' Webpay: '#/components/schemas/ReadyToPayoutGenericMethod' Webpay-2: '#/components/schemas/ReadyToPayoutGenericMethod' Webpay Card: '#/components/schemas/ReadyToPayoutGenericMethod' WeChat Pay: '#/components/schemas/ReadyToPayoutGenericMethod' wire: '#/components/schemas/ReadyToPayoutGenericMethod' XPay-P2P: '#/components/schemas/ReadyToPayoutGenericMethod' XPay-QR: '#/components/schemas/ReadyToPayoutGenericMethod' Yandex-money: '#/components/schemas/ReadyToPayoutGenericMethod' Zotapay: '#/components/schemas/ReadyToPayoutGenericMethod' Zimpler: '#/components/schemas/ReadyToPayoutGenericMethod' anyOf: - $ref: '#/components/schemas/ReadyToPayoutPaymentCardMethod' - $ref: '#/components/schemas/ReadyToPayoutGenericMethod' PostSubscription: type: object required: - billingPortalId - items properties: billingPortalId: type: string description: ID of the billing portal. maxLength: 50 example: bill_prt_0YV7K5TYV5D1P9ZNKDT39KZC3C items: type: array description: Details of items in the order. 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 units of the product on the given plan. type: integer minimum: 0 usageLimits: type: - object - '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 - 'null' 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 - 'null' 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 billingAddress: description: Billing address details. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' deliveryAddress: description: Delivery address details. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' 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' 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 NoContent: description: Request accepted. No response body returned. 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 ApiKey: content: application/json: schema: $ref: '#/components/schemas/ApiKey' description: ApiKey resource. required: true PatchCredential: content: application/json: schema: anyOf: - $ref: '#/components/schemas/PatchServiceCredential' - $ref: '#/components/schemas/PatchPlaidCredential' - $ref: '#/components/schemas/PatchTaxJarCredential' description: Service credential resource. required: true RuleSet: content: application/json: schema: $ref: '#/components/schemas/RuleSet' description: Ruleset resource. required: true RuleSetDraft: content: application/json: schema: $ref: '#/components/schemas/RuleSetDraft' description: Draft ruleset resource. required: true GatewayAccount: content: application/json: schema: $ref: '#/components/schemas/GatewayAccount' description: Gateway Account resource. required: true GatewayAccountDowntimeSchedule: content: application/json: schema: $ref: '#/components/schemas/GatewayAccountDowntimeSchedule' description: Gateway Account downtime schedule resource. required: true GridSegment: content: application/json: schema: $ref: '#/components/schemas/GridSegment' description: Segment resource. required: true PostOrganization: content: application/json: schema: allOf: - $ref: '#/components/schemas/Organization' - required: - name - website - country - reportCurrency description: Create organization request. PatchOrganization: content: application/json: schema: allOf: - $ref: '#/components/schemas/Organization' - properties: website: readOnly: true reportCurrency: readOnly: true description: Update Organization Request. GlobalWebhook: content: application/json: schema: $ref: '#/components/schemas/GlobalWebhook' description: Webhook resource. required: true User: content: application/json: schema: $ref: '#/components/schemas/User' description: User resource. required: true Website: content: application/json: schema: $ref: '#/components/schemas/Website' description: Website resource. required: true DataExport: content: application/json: schema: $ref: '#/components/schemas/DataExport' description: Data Export Request. required: true PatchAccountPassword: content: application/json: schema: required: - currentPassword - newPassword properties: currentPassword: type: string format: password description: >- Current password. This value is used to request a password change. newPassword: type: string format: password writeOnly: true description: New password. This value replaces the existing password. PostDeposit: content: application/json: schema: type: object required: - depositRequestId - amount properties: depositRequestId: description: >- ID of the deposit request. The created transaction is based on the properties of this deposit request. type: string maxLength: 50 example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21 amount: description: Deposit amount. type: number format: double example: 97.97 properties: description: Properties completed by the user in the deposit form. type: object additionalProperties: type: string example: email: email@example.com max: '33' required: true PostKycLivenessSession: content: application/json: schema: type: object required: - kycRequestId properties: kycRequestId: type: string description: >- ID of the KYC request that the liveness session is associated with. maxLength: 50 example: kyc_req_0YV7JMJ3DBCGRBR7K9D4HVGPP5 description: KYC liveness session. required: true PatchOrder: content: application/json: schema: type: object properties: 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 deliveryAddress: description: Order delivery address. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' billingAddress: description: Order billing address. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' usageLimits: type: array description: Details of items in the order and corresponding usage limits. minItems: 1 items: type: object required: - itemId - limits properties: itemId: type: string description: ID of the subscription item. maxLength: 50 example: sub_01HW2V1Y3A6QPM1NX4WCYHFSRS limits: type: - object - '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 - 'null' 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 - 'null' 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 description: Order resource. required: true PostOrderCancellation: content: application/json: schema: type: object required: - reason properties: reason: description: Reason for the order cancellation. type: string enum: - did-not-use - did-not-want - missing-features - bugs-or-problems - do-not-remember - too-expensive - other description: description: Description of the cancellation reason in free form. type: string maxLength: 255 description: Order resource. required: true PostOrderPause: content: application/json: schema: type: object properties: 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 description: Order resource. required: true PostPayment: content: application/json: schema: oneOf: - type: object title: For transaction required: - transactionId properties: transactionId: $ref: '#/components/schemas/TransactionId' riskMetadata: $ref: '#/components/schemas/RiskMetadata' redirectUrl: $ref: '#/components/schemas/StorefrontTransactionRedirectUrl' oneOf: - $ref: '#/components/schemas/PaymentInstructionsToken' - $ref: '#/components/schemas/PaymentInstructionsInstrument' - type: object title: For invoice required: - invoiceId properties: invoiceId: type: string description: Unique resource ID. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT riskMetadata: $ref: '#/components/schemas/RiskMetadata' redirectUrl: $ref: '#/components/schemas/StorefrontTransactionRedirectUrl' oneOf: - $ref: '#/components/schemas/PaymentInstructionsToken' - $ref: '#/components/schemas/PaymentInstructionsInstrument' - type: object title: For amount+currency required: - amount - currency - websiteId properties: websiteId: $ref: '#/components/schemas/WebsiteId' currency: $ref: '#/components/schemas/CurrencyCode' amount: description: Transaction amount. type: number format: double default: 0 example: 97.97 riskMetadata: $ref: '#/components/schemas/RiskMetadata' redirectUrl: $ref: '#/components/schemas/StorefrontTransactionRedirectUrl' oneOf: - $ref: '#/components/schemas/PaymentInstructionsToken' - $ref: '#/components/schemas/PaymentInstructionsInstrument' required: true StorefrontPostPaymentInstrument: content: application/json: schema: type: object required: - token properties: token: description: Token ID of the payment instrument. type: string customFields: $ref: '#/components/schemas/ResourceCustomFields' description: Payment instrument. required: true StorefrontPatchPaymentInstrument: content: application/json: schema: type: object properties: token: description: Token ID of the payment instrument. type: string billingAddress: description: |- Billing address. If this field is supplied, it overrides the billing address obtained from the token. $ref: '#/components/schemas/ContactObject' customFields: $ref: '#/components/schemas/ResourceCustomFields' description: Payment instrument. required: true SetupPaymentInstrumentRequest: content: application/json: schema: type: object required: - websiteId - currency properties: websiteId: $ref: '#/components/schemas/WebsiteId' currency: $ref: '#/components/schemas/CurrencyCode' amount: description: Amount of the transaction. type: number format: double default: 0 example: 97.97 billingAddress: description: >- Billing address. If a billing address is not supplied the address associated with the payment instrument is used. If no address is associated with the payment instrument, the customer's address is used. oneOf: - $ref: '#/components/schemas/ContactObject' - type: 'null' redirectUrl: type: - string - 'null' description: >- URL to redirect the end-user when an offsite transaction is completed. This field defaults to the configured website URL. You may use `{id}` or `{result}` as placeholders in the URL. These placeholders are replaced with the transaction ID and result. For more information, see [Placeholders](https://www.rebilly.com/docs/automations/email-notifications/#placeholders). format: uri riskMetadata: $ref: '#/components/schemas/RiskMetadata' description: Setup transaction resource. required: true PostRegister: content: application/json: schema: allOf: - required: - username - password properties: username: type: string description: Username. password: type: string format: password description: Password. primaryAddress: $ref: '#/components/schemas/ContactObject' paymentToken: type: string description: >- Write-only payment token; if supplied, it converts into a payment instrument and is set as the `defaultPaymentInstrument`. The value of this property overrides the `defaultPaymentInstrument` in the case that both are supplied. The token may only be used once before it is expired. leadSource: $ref: '#/components/schemas/LeadSourceData' ApplicationInstanceDisabled: content: application/json: schema: properties: organizationId: $ref: '#/components/schemas/OrganizationId' applicationId: type: string description: Unique application ID. maxLength: 50 example: app_01H0HT25X7XXCJGS4H8VJSYF2Y eventType: type: string description: Type of webhook event. enum: - application-instance-disabled _embedded: description: Embedded objects. type: object properties: application: $ref: '#/components/schemas/Application' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - application description: Application instance disabled webhook request body resource. ApplicationInstanceEnabled: content: application/json: schema: properties: organizationId: $ref: '#/components/schemas/OrganizationId' applicationId: type: string description: Unique application ID. maxLength: 50 example: app_01H0HT25X7XXCJGS4H8VJSYF2Y eventType: type: string description: Type of webhook event. enum: - application-instance-enabled _embedded: description: Embedded objects. type: object properties: application: $ref: '#/components/schemas/Application' applicationInstance: $ref: '#/components/schemas/OwnerApplicationInstance' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - application - applicationInstance description: Application instance enabled webhook request body resource. 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. InvoiceRevenueRecognized: content: application/json: schema: properties: recognitionId: description: ID of the recognized revenue. type: string invoiceId: type: string description: ID of the invoice. maxLength: 50 example: in_0YVF9605RKC62BP14NE2R7V2XT itemId: description: ID of the invoice item. type: string amount: description: Amount recognized. type: number format: double currency: $ref: '#/components/schemas/CurrencyCode' eventType: type: string description: Type of webhook event. enum: - invoice-revenue-recognized _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. 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. GatewayAccountWebhook: content: application/json: schema: properties: gatewayAccountId: type: string description: ID of the gateway account. maxLength: 50 example: gw_acc_0YVCXMF26DDNKAERE5NW727S34 eventType: type: string description: Type of webhook event. enum: - gateway-account-downtime-ended - gateway-account-downtime-started - gateway-account-onboarding-completed - gateway-account-onboarding-failed _embedded: type: object description: Embedded objects. properties: gatewayAccount: $ref: '#/components/schemas/GatewayAccount' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - gatewayAccount description: Gateway account limit reached body resource. GatewayAccountAndGatewayAccountLimit: content: application/json: schema: properties: gatewayAccountId: type: string description: ID of the gateway account. maxLength: 50 example: gw_acc_0YVCXMF26DDNKAERE5NW727S34 eventType: type: string description: Type of webhook event. enum: - gateway-account-limit-reached _embedded: type: object description: Embedded objects. properties: gatewayAccount: $ref: '#/components/schemas/GatewayAccount' gatewayAccountLimit: $ref: '#/components/schemas/GatewayAccountLimit' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - gatewayAccount - gatewayAccountLimit description: Gateway account limit reached 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. DataExportWebhook: content: application/json: schema: properties: dataExportId: type: string description: ID of the data export. maxLength: 50 example: exp_0YVCNQ2C1AD1RA3HXKP492GNZB fileId: type: string description: ID of the data export file. maxLength: 50 example: file_0YV7HZ7KDCC5WBV9Q7WRKG1H6N eventType: type: string description: Rebilly webhooks event type. enum: - data-export-completed _embedded: type: object description: Embedded objects. properties: dataExport: $ref: '#/components/schemas/DataExport' _links: type: array description: Related links. items: type: object properties: href: description: Link URL. type: string rel: description: Type of link. type: string enum: - dataExport - download description: Data export webhook 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/). 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()); } /external-identifiers: get: x-products: - Users tags: - External identifiers summary: Retrieve external identifiers operationId: GetExternalIdentifierCollection x-sdk-operation-name: getAll description: Retrieves a list of external identifiers. parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: List of external identifiers 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/ExternalIdentifier' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /{resource}/{resourceId}/external-identifiers/{service}: parameters: - $ref: '#/components/parameters/externalIdentifierResource' - $ref: '#/components/parameters/externalIdentifierResourceId' - $ref: '#/components/parameters/externalIdentifierService' get: x-products: - Users tags: - External identifiers summary: Retrieve an external identifier operationId: GetExternalIdentifier x-sdk-operation-name: get description: >- Retrieves an external identifier with a specified resource, resource ID and, service name. responses: '200': description: External identifier retrieved. content: application/json: schema: $ref: '#/components/schemas/ExternalIdentifier' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' post: x-products: - Users tags: - External identifiers summary: Sync an external identifier operationId: PostExternalIdentifier x-sdk-operation-name: sync description: >- Synchronizes an external identifier with a specified resource, resource ID, and service name. responses: '204': description: External identifier sync scheduled. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' put: x-products: - Users tags: - External identifiers summary: Upsert an external identifier operationId: PutExternalIdentifier x-sdk-operation-name: update description: >- Creates or updates an external identifier with a specified resource, resource ID, and service name. requestBody: content: application/json: schema: $ref: '#/components/schemas/ExternalIdentifier' required: true responses: '200': description: External identifier updated. content: application/json: schema: $ref: '#/components/schemas/ExternalIdentifier' '201': description: External identifier created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ExternalIdentifier' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Users tags: - External identifiers summary: Delete an external identifier operationId: DeleteExternalIdentifier x-sdk-operation-name: delete description: >- Deletes an external identifier with a specified resource, resource ID, and service name. responses: '204': description: External identifier deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /external-services-settings: get: x-products: - Users tags: - External identifiers summary: Retrieve external service settings operationId: GetExternalServiceSettings x-sdk-operation-name: getExternalServiceSettings description: Retrieves external service settings. responses: '200': description: External service settings. content: application/json: schema: $ref: '#/components/schemas/ExternalServiceSettings' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' put: x-products: - Users tags: - External identifiers summary: Update external service settings operationId: PutExternalServiceSettings x-sdk-operation-name: updateExternalServiceSettings description: Updates the external service settings. requestBody: content: application/json: schema: $ref: '#/components/schemas/ExternalServiceSettings' required: true responses: '200': description: External service settings updated. content: application/json: schema: $ref: '#/components/schemas/ExternalServiceSettings' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /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' get: x-products: - Users tags: - Application users summary: Retrieve an application instance operationId: GetApplicationInstance x-sdk-operation-name: get description: |- Retrieves a list of application instances. You may sort applications by: `id`, `name`, `status`, `createdTime`, and `updatedTime`. responses: '200': description: Application instance 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/ApplicationInstance' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $applicationInstance = $client->applicationInstances()->load('applicationId'); - lang: JavaScript source: > const application = await api.applicationInstances.get({applicationId: 'applicationId'}); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $applicationInstance = $service->applicationInstances()->get('applicationId'); put: x-products: - Users tags: - Application users summary: Upsert an application instance operationId: PutApplicationInstance x-sdk-operation-name: upsert description: Creates or updates (upserts) an application instance. requestBody: content: application/json: schema: $ref: '#/components/schemas/ApplicationInstance' responses: '200': description: Application instance updated. content: application/json: schema: $ref: '#/components/schemas/ApplicationInstance' '201': description: Application instance created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ApplicationInstance' '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: | $applicationInstance = new Rebilly\Entities\ApplicationInstance(); $applicationInstance->setSettings(['color' => 'red', 'limit' => 5]); try { $applicationInstance = $client->applicationInstances()->update('applicationId', $applicationInstance); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // define values to upsert const data = { settings: { color: 'red', limit: 5, }, }; const apiKey = await api.applicationInstances.upsert({applicationId: 'applicationId', data}); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $applicationInstance = \Rebilly\Sdk\Model\ApplicationInstance::from([ 'settings' => ['color' => 'red', 'limit' => 5], ]); try { $applicationInstance = $service->applicationInstances()->upsert('applicationId', $applicationInstance); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Users tags: - Application users summary: Delete application instance operationId: DeleteApplicationInstance x-sdk-operation-name: delete security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Deletes an application instance with a specific ID. responses: '204': description: Application instance 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->applicationInstances()->delete('applicationId'); - lang: JavaScript source: > const request = await api.applicationInstances.delete({applicationId: 'applicationId'}); // 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\UsersService($client); $service->applicationInstances()->delete('applicationId'); /application-instances/{applicationId}/configuration: parameters: - $ref: '#/components/parameters/applicationId' get: x-products: - Users tags: - Application users summary: Retrieve an application instance configuration operationId: GetApplicationInstanceConfiguration x-sdk-operation-name: getConfiguration security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: >- Retrieves the configuration of an installed application with a specified ID. responses: '200': description: Application instance configuration 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/ApplicationInstanceConfiguration' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' put: x-products: - Users tags: - Application users summary: Upsert an application instance configuration operationId: PutApplicationInstanceConfiguration x-sdk-operation-name: upsertConfiguration security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Creates or updates (upserts) an application instance configuration. requestBody: content: application/json: schema: $ref: '#/components/schemas/ApplicationInstanceConfiguration' responses: '200': description: Application instance configuration updated. content: application/json: schema: $ref: '#/components/schemas/ApplicationInstanceConfiguration' '201': description: Application instance configuration created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ApplicationInstanceConfiguration' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /applications: get: x-products: - Users tags: - Application users summary: Retrieve applications operationId: GetApplicationCollection x-sdk-operation-name: getAll description: |- Retrieves a list of all applications. You may sort applications by: `id`, `name`, `status`, `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 applications 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/UserApplication' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $applications = $client->applications()->search([ 'filter' => 'status:available', ]); - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.applications.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.applications.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(apiKey => console.log(apiKey.applications.name)); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $applicationsPaginator = $service->applications()->getAllPaginator(filter: 'status:available', limit: 5); foreach ($applicationsPaginator as $applicationPage) { printf("Applications page %d/%d\n", $applicationsPaginator->key() + 1, $applicationsPaginator->count()); foreach ($applicationPage as $application) { printf("Application #%s (%s): %s\n", $application->getId(), $application->getStatus(), $application->getName()); } } // OR $applications = $service->applications()->getAll(filter: 'status:available'); foreach ($applications as $application) { printf("Application #%s (%s): %s\n", $application->getId(), $application->getStatus(), $application->getName()); } post: x-products: - Users tags: - Application owners summary: Register an application operationId: PostApplication x-sdk-operation-name: create description: >- Registers an application and displays it publicly in the [App Store](https://app.rebilly.com/app-store). Before you submit an application, read the [App Store documentation](https://www.rebilly.com/docs/content/concepts-and-features/app-store/). requestBody: content: application/json: schema: $ref: '#/components/schemas/Application' responses: '201': description: Application registered. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Application' '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: | $application = new Rebilly\Entities\Application(); $application->setName('My application'); $application->setDescription('My application description'); $application->setLogoId('fileId'); $application->setPermissions(['GetTransactionCollection']); try { $application = $client->applications()->create($application); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: | // first set the properties for the new application const data = { name: 'My application', description: 'My application description', logoId: 'fileId', permissions: ['GetTransactionCollection'], }; const application = await api.applications.create({data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $application = new \Rebilly\Sdk\Model\Application(); $application->setName('My application'); $application->setDescription('My application description'); $application->setLogoId('fileId'); $application->setPermissions(['GetTransactionCollection']); try { $application = $service->applications()->create($application); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /applications/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Application users summary: Retrieve application operationId: GetApplication x-sdk-operation-name: get description: Retrieves an application with a specified ID. responses: '200': description: Applications 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/UserApplication' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $application = $client->applications()->load('applicationId'); - lang: JavaScript source: > const application = await api.applications.get({id: 'applicationId'}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $application = $service->applications()->get('applicationId'); /applications/{id}/instances: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Application owners summary: Retrieve application instances operationId: GetApplicationInstanceCollection x-sdk-operation-name: getInstances description: Retrieves application instances with specified IDs. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Application instances 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/OwnerApplicationInstance' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $applicationInstances = $client->applications()->loadInstances('applicationId'); - lang: JavaScript source: > const applicationInstances = await api.applications.getInstances({id: 'applicationId'}); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $applicationInstances = $service->applicationInstances()->get('applicationId'); /applications/{id}/instances/{organizationId}: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/organizationId' get: x-products: - Users tags: - Application owners summary: Retrieve an application instance operationId: GetApplicationInstanceByOrganization x-sdk-operation-name: getInstance description: >- Retrieves an application instance with specified application and organization IDs. responses: '200': description: Application instance 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/OwnerApplicationInstance' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $applicationInstance = $client->applications()->loadInstance('applicationId', 'organizationId'); - lang: JavaScript source: > const applicationInstance = await api.applications.getInstance({id: 'applicationId', organizationId: 'organizationId'}); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $applicationInstance = $service->applications()->getInstance('applicationId', '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: get: x-products: - Users tags: - API keys summary: Retrieve API keys operationId: GetApiKeyCollection x-sdk-operation-name: getAll description: Retrieve a list of API keys. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of API keys 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/ApiKey' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $apiKeys = $client->apiKeys()->search([ 'filter' => 'description:Test', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.apiKeys.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.apiKeys.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(apiKey => console.log(apiKey.fields.description)); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $apiKeysPaginator = $service->apiKeys()->getAllPaginator(limit: 5); foreach ($apiKeysPaginator as $apiKeysPage) { printf("ApiKeys page %d/%d\n", $apiKeysPaginator->key() + 1, $apiKeysPaginator->count()); foreach ($apiKeysPage as $apiKey) { printf("ApiKey #%s: %s\n", $apiKey->getId(), $apiKey->getDescription()); } } // OR $apiKeys = $service->apiKeys()->getAll(); foreach ($apiKeys as $apiKey) { printf("ApiKey #%s: %s\n", $apiKey->getId(), $apiKey->getDescription()); } post: x-products: - Users tags: - API keys summary: Create an API key operationId: PostApiKey x-sdk-operation-name: create description: Create an API key. requestBody: $ref: '#/components/requestBodies/ApiKey' responses: '201': description: API key created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ApiKey' '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: | $apiKeyForm = new Rebilly\Entities\ApiKey(); $apiKeyForm->setDescription('Test key'); try { $apiKey = $client->apiKeys()->create($apiKeyForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the properties for the new API key const data = { description: 'My new API key', type: 'secret' }; // the ID is optional const firstKey = await api.apiKeys.create({data}); // or you can provide one const secondKey = await api.apiKeys.create({id: 'my-second-key', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $apiKeyForm = new \Rebilly\Sdk\Model\ApiKey(); $apiKeyForm->setDescription('Test key'); try { $apiKey = $service->apiKeys()->create($apiKeyForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /api-keys/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - API keys summary: Retrieve API key operationId: GetApiKey x-sdk-operation-name: get description: Retrieve API key with a specified ID. responses: '200': description: API key retrieved. content: application/json: schema: $ref: '#/components/schemas/ApiKey' '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: | $apiKeys = $client->apiKeys()->load('apiKeyID'); - lang: JavaScript source: |- const apiKey = await api.apiKeys.get({id: 'foobar-001'}); console.log(apiKey.fields.description); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $apiKeys = $service->apiKeys()->get('apiKeyID'); put: x-products: - Users tags: - API keys summary: Upsert an API key operationId: PutApiKey x-sdk-operation-name: update description: Create or update (upsert) API key with a specified ID. responses: '200': description: API key updated. content: application/json: schema: $ref: '#/components/schemas/ApiKey' '201': description: API key created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ApiKey' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' requestBody: $ref: '#/components/requestBodies/ApiKey' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $apiKeyForm = new Rebilly\Entities\ApiKey(); $apiKeyForm->setDescription('Test key'); try { $apiKey = $client->apiKeys()->update('apiKeyID', $apiKeyForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // define values to update const data = { description: 'A better description' }; const apiKey = await api.apiKeys.update({id: 'my-second-key', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $apiKeyForm = new \Rebilly\Sdk\Model\ApiKey(); $apiKeyForm->setDescription('Test key'); try { $apiKey = $service->apiKeys()->update('apiKeyID', $apiKeyForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Users tags: - API keys summary: Delete API key operationId: DeleteApiKey x-sdk-operation-name: delete description: Deletes an API key with a specified ID. responses: '204': description: API key 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->apiKeys()->delete('apiKeyID'); - lang: JavaScript source: |- const request = await api.apiKeys.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\UsersService($client); $service->apiKeys()->delete('apiKeyID'); /balance-transactions: get: x-badges: - name: Experimental x-products: - Users tags: - Balance transactions summary: Retrieve balance transactions description: |- Retrieves a list of balance transactions. > **Important:** This operation is experimental and may change. operationId: GetBalanceTransactionCollection 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 balance 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/BalanceTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /balance-transactions/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-badges: - name: Experimental x-products: - Users tags: - Balance transactions summary: Retrieve a balance transaction description: |- Retrieves a balance transaction with a specified identifier. > **Important:** This operation is experimental and may change. operationId: GetBalanceTransaction x-sdk-operation-name: get responses: '200': description: Balance transaction retrieved. content: application/json: schema: $ref: '#/components/schemas/BalanceTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /billing-portals: get: x-products: - Users tags: - Billing portals summary: Retrieve billing portals operationId: GetBillingPortalCollection x-sdk-operation-name: getAll description: Retrieves a list of billing portals. 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 billing portals 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/BillingPortal' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Billing portals summary: Create a billing portal operationId: PostBillingPortal x-sdk-operation-name: create description: Creates a billing portal. responses: '201': description: Billing portal created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/BillingPortal' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/BillingPortal' /billing-portals/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Billing portals summary: Retrieve a billing portal operationId: GetBillingPortal x-sdk-operation-name: get description: Retrieves a billing portal with a specified ID. responses: '200': description: Billing portal retrieved. content: application/json: schema: $ref: '#/components/schemas/BillingPortal' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Users tags: - Billing portals summary: Upsert a billing portal operationId: PutBillingPortal x-sdk-operation-name: update description: Creates or updates (upserts) a billing portal with a specified ID. responses: '200': description: Billing portal updated. content: application/json: schema: $ref: '#/components/schemas/BillingPortal' '201': description: Billing portal created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/BillingPortal' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/BillingPortal' delete: x-products: - Users tags: - Billing portals summary: Delete a billing portal operationId: DeleteBillingPortal x-sdk-operation-name: delete description: Deletes a billing portal with a specified ID. responses: '204': description: Billing portal deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /broadcast-messages: get: x-products: - Users tags: - Broadcast messages summary: Retrieve broadcast messages operationId: GetBroadcastMessageCollection x-sdk-operation-name: getAll description: Retrieves a list of broadcast messages. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: List of broadcast 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/BroadcastMessage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Broadcast messages summary: Create a broadcast message operationId: PostBroadcastMessage x-sdk-operation-name: create description: Creates a broadcast message. responses: '201': description: Broadcast message created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/BroadcastMessage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/BroadcastMessage' description: Broadcast message resource. required: true /broadcast-messages/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Broadcast messages summary: Retrieve a broadcast message operationId: GetBroadcastMessage x-sdk-operation-name: get description: Retrieves a broadcast message. responses: '200': description: Broadcast message retrieved. content: application/json: schema: $ref: '#/components/schemas/BroadcastMessage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Users tags: - Broadcast messages summary: Delete a broadcast message operationId: DeleteBroadcastMessage x-sdk-operation-name: delete description: Deletes a broadcast message with a specified ID. responses: '204': description: Broadcast message deleted. patch: x-products: - Users tags: - Broadcast messages summary: Update a broadcast message operationId: PatchBroadcastMessage x-sdk-operation-name: update description: Updates a broadcast message with a specified ID. responses: '200': description: Broadcast message updated. content: application/json: schema: $ref: '#/components/schemas/BroadcastMessage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/BroadcastMessage' description: Broadcast message resource. required: true /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: get: x-products: - Users tags: - Checkout forms summary: Retrieve checkout forms operationId: GetCheckoutFormCollection x-sdk-operation-name: getAll description: Retrieves a list of checkout forms. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: Checkout forms 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/CheckoutForm' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Checkout forms summary: Create a checkout form operationId: PostCheckoutForm x-sdk-operation-name: create description: Creates a checkout form. responses: '201': description: Checkout form created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CheckoutForm' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckoutForm' /checkout-forms/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Checkout forms summary: Retrieve a checkout form operationId: GetCheckoutForm x-sdk-operation-name: get description: Retrieves a checkout form with a specified ID. responses: '200': description: Checkout form retrieved. content: application/json: schema: $ref: '#/components/schemas/CheckoutForm' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Users tags: - Checkout forms summary: Upsert a checkout form operationId: PutCheckoutForm x-sdk-operation-name: update description: Creates or updates (upserts) a checkout form with a specified ID. responses: '200': description: Checkout form updated. content: application/json: schema: $ref: '#/components/schemas/CheckoutForm' '201': description: Checkout form created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CheckoutForm' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckoutForm' delete: x-products: - Users tags: - Checkout forms summary: Delete a checkout form operationId: DeleteCheckoutForm x-sdk-operation-name: delete description: Deletes a checkout form with a specified ID. responses: '204': description: Checkout form deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /service-credentials/{type}: parameters: - $ref: '#/components/parameters/credentialType' get: x-products: - Users parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' tags: - Service credentials summary: Retrieve service credentials operationId: GetServiceCredentialCollection x-sdk-operation-name: getAll description: Retrieves a list of service credentials. responses: '200': description: List of service credentials retrieved. content: application/json: schema: type: array items: $ref: '#/components/schemas/ServiceCredential' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: > // type is required, other parameters are optional const firstCollection = await api.serviceCredentials.getAll({type: 'webhook'}); // alternatively you can specify one or more of them const params = {type: 'webhook', limit: 20, offset: 100}; const secondCollection = await api.serviceCredentials.getAll(params); // access the collection items, each item is a ServiceCredential secondCollection.items.forEach(serviceCredential => console.log(serviceCredential.fields.status)); post: x-products: - Users tags: - Service credentials summary: Create a service credential operationId: PostServiceCredential x-sdk-operation-name: create security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Creates a service credential. responses: '201': description: Service credential created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ServiceCredential' '303': description: Existing service credential retrieved. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ServiceCredential' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ServiceCredential' description: Service credential resource. required: true x-codeSamples: - lang: JavaScript source: > // first set the required properties for the new service credential const data = { host: 'foobar.test.com', auth: { type: 'none' } }; const credential = await api.serviceCredentials.create({type: 'webhook', data}); // use the ID to authenticate your webhook in Rebilly console.log(credential.fields.id); /service-credentials/{type}/{id}: parameters: - $ref: '#/components/parameters/credentialType' - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Service credentials summary: Retrieve a service credential operationId: GetServiceCredential x-sdk-operation-name: get description: Retrieves a service credential with a specified ID. responses: '200': description: Service credential retrieved. content: application/json: schema: $ref: '#/components/schemas/ServiceCredential' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: > const credential = await api.serviceCredentials.get({type: 'webhook', id: 'service-credential-1'}); console.log(credential.fields.status); patch: x-products: - Users tags: - Service credentials summary: Update a service credential operationId: PatchServiceCredential x-sdk-operation-name: update description: Updates a service credential with a specified ID. requestBody: $ref: '#/components/requestBodies/PatchCredential' responses: '200': description: Service credential updated. content: application/json: schema: $ref: '#/components/schemas/ServiceCredential' '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: > // first set the status to update for the service credential const data = { status: 'deactivated' }; const credential = await api.serviceCredentials.update({type: 'webhook', id: 'service-credential-1', data}); /service-credentials/{type}/{id}/items: parameters: - $ref: '#/components/parameters/credentialType' - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Service credentials summary: List credential root items operationId: GetServiceCredentialItemCollection x-sdk-operation-name: getItems description: Retrieves a list of root items for a specified credential. 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 credential root items 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/GoogleSpreadsheet' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: > // type and id are required, other parameters are optional const firstCollection = await api.serviceCredentials.getItems({type: 'oauth2', id: 'service-credential-1'}); // alternatively you can specify one or more of them const params = {type: 'oauth2', id: 'service-credential-1', limit: 20, offset: 100}; const secondCollection = await api.serviceCredentials.getItems(params); /custom-domains: get: x-products: - Users tags: - Custom domains summary: Retrieve custom domains operationId: GetCustomDomainCollection x-sdk-operation-name: getAll description: Retrieve a list of custom domains. 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 custom domains 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/CustomDomain' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Custom domains summary: Create a custom domain operationId: PostCustomDomain x-sdk-operation-name: create description: Create a custom domain. responses: '201': description: Custom domain created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/CustomDomain' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/CustomDomain' /custom-domains/{domain}: parameters: - name: domain in: path description: Resource domain. required: true schema: type: string maxLength: 255 pattern: ^[@~\-\.\w]+$ get: x-products: - Users tags: - Custom domains summary: Retrieve a custom domain operationId: GetCustomDomain x-sdk-operation-name: get description: Retrieve a custom domain with a specified ID. responses: '200': description: Custom domain retrieved. content: application/json: schema: $ref: '#/components/schemas/CustomDomain' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Users tags: - Custom domains summary: Delete a custom domain operationId: DeleteCustomDomain x-sdk-operation-name: delete description: Delete a custom domain with a specified ID. responses: '204': description: Custom domains deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /email-delivery-setting-verifications/{token}: parameters: - $ref: '#/components/parameters/token' put: x-products: - Users tags: - Email delivery settings summary: Verify an email delivery setting operationId: PutEmailDeliverySettingsVerification x-sdk-operation-name: verify description: Verifies an email delivery setting. responses: '200': description: Email delivery setting verified. content: application/json: schema: $ref: '#/components/schemas/EmailDeliverySetting' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /email-delivery-settings: get: x-products: - Users tags: - Email delivery settings summary: Retrieve email delivery settings operationId: GetEmailDeliverySettingCollection x-sdk-operation-name: getAll description: Retrieves email delivery settings. 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 email delivery settings 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/EmailDeliverySetting' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Email delivery settings summary: Create an email delivery setting operationId: PostEmailDeliverySetting x-sdk-operation-name: create description: |- Creates an email delivery setting. Email delivery settings are used together with email messages, or templates, to send emails. responses: '201': description: Email delivery setting created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/EmailDeliverySetting' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/EmailDeliverySetting' description: Email delivery setting resource. required: true /email-delivery-settings/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Email delivery settings summary: Retrieve an email delivery setting operationId: GetEmailDeliverySetting x-sdk-operation-name: get description: Retrieves an email delivery setting with a specified ID. responses: '200': description: Email delivery setting retrieved. content: application/json: schema: $ref: '#/components/schemas/EmailDeliverySetting' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Users tags: - Email delivery settings summary: Delete an email delivery setting operationId: DeleteEmailDeliverySetting x-sdk-operation-name: delete description: Deletes an email delivery setting with a specified ID. responses: '204': description: Email delivery setting deleted. '409': $ref: '#/components/responses/Conflict' patch: x-products: - Users tags: - Email delivery settings summary: Update an email delivery setting operationId: PatchEmailDeliverySetting x-sdk-operation-name: update description: Updates an email delivery setting with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/EmailDeliverySetting' description: Email delivery setting resource. required: true responses: '200': description: Email delivery setting updated. content: application/json: schema: $ref: '#/components/schemas/EmailDeliverySetting' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' /email-delivery-settings/{id}/resend-email-verification: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Users tags: - Email delivery settings summary: Resend email delivery setting verification email operationId: PostResendEmailDeliverySettingVerification x-sdk-operation-name: resendVerification description: >- Resends a verification email for an email delivery setting with a specified ID. responses: '200': description: Verification email sent. content: application/json: schema: $ref: '#/components/schemas/EmailDeliverySetting' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /email-messages: get: x-products: - Users tags: - Email messages summary: Retrieve email messages operationId: GetEmailMessageCollection x-sdk-operation-name: getAll description: Retrieves a list of email messages. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: List of email 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/EmailMessage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Email messages summary: Create an email message operationId: PostEmailMessage x-sdk-operation-name: create description: Creates an email message. responses: '201': description: Email message created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/EmailMessage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/EmailMessage' description: Email message resource. required: true /email-messages/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Email messages summary: Retrieve an email message operationId: GetEmailMessage x-sdk-operation-name: get description: Retrieves an email message with a specified ID. responses: '200': description: Email message retrieved. content: application/json: schema: $ref: '#/components/schemas/EmailMessage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Users tags: - Email messages summary: Delete an email message operationId: DeleteEmailMessage x-sdk-operation-name: delete description: Deletes an email message with a specified ID. responses: '204': description: Email message deleted. '409': $ref: '#/components/responses/Conflict' patch: x-products: - Users tags: - Email messages summary: Send an email message operationId: PatchEmailMessage x-sdk-operation-name: send description: Sends an email message. responses: '200': description: Email message accepted. content: application/json: schema: $ref: '#/components/schemas/EmailMessage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: type: object title: PatchEmailMessageRequest required: - status properties: status: description: Status of the email message. type: string enum: - outbox description: Email message status. required: true /email-notifications: get: x-products: - Users tags: - Email notifications summary: Retrieve email notification events operationId: GetEmailNotificationCollection x-sdk-operation-name: getAll description: Retrieves a list email notification events. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: List of email notification events 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/EmailNotification' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /events: get: x-products: - Users tags: - Rules summary: Retrieve system events operationId: GetEventCollection x-sdk-operation-name: getAll description: Retrieves a list of system events. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of system events 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/SystemEvent' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.events.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100}; const secondCollection = await api.events.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(event => console.log(event.fields.eventType)); /events/{eventType}: parameters: - $ref: '#/components/parameters/systemEventType' get: x-products: - Users tags: - Rules summary: Retrieve event information operationId: GetEvent x-sdk-operation-name: get description: Retrieves event information for a specified event type. responses: '200': description: Rules retrieved. content: application/json: schema: $ref: '#/components/schemas/SystemEvent' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- const eventDetails = await api.events.get({eventType: 'gateway-account-created'}); console.log(eventDetails.fields.rulesCount); /events/{eventType}/rules: parameters: - $ref: '#/components/parameters/systemEventType' get: x-products: - Users tags: - Rules summary: Retrieve event rules operationId: GetEventRuleCollection x-sdk-operation-name: getRules description: Retrieves rules associated with a specified event type. responses: '200': description: Rules retrieved. content: application/json: schema: $ref: '#/components/schemas/RuleSet' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- const event = await api.events.getRules({eventType: 'transaction-processed'}); console.log(event.fields.rules); put: x-products: - Users tags: - Rules summary: Update event rules operationId: PutEventRule x-sdk-operation-name: createRules description: Updates rules associated with a specified event type. responses: '200': description: Rules updated. content: application/json: schema: $ref: '#/components/schemas/RuleSet' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' requestBody: $ref: '#/components/requestBodies/RuleSet' x-codeSamples: - lang: JavaScript source: > // define at least one rule const data = { rules: [ { name: 'The One Rule', status: 'active', final: true, criteria: {}, actions: [ { name: 'blocklist', status: 'active', type: 'email', ttl: 789 }, { name: 'stop-subscriptions', status: 'active' } ] } ] }; const ruleset = await api.events.createRules({eventType: 'risk-score-changed', data}); console.log(ruleset.fields.version); // updating rules // define the ruleset to override the current values within // the event const data = { rules: [ { name: 'The One Rule', status: 'active', final: true, criteria: {}, actions: [ { name: 'blocklist', status: 'active', type: 'email', ttl: 789 }, { name: 'stop-subscriptions', status: 'active' } ] } ] }; const ruleset = await api.events.updateRules({eventType: 'risk-score-changed', data}); // each time the event's ruleset is modified // the version number is incremented console.log(ruleset.fields.version); /events/{eventType}/timeline: parameters: - $ref: '#/components/parameters/systemEventType' get: x-products: - Users tags: - Rules timeline summary: Retrieve rules engine timeline messages operationId: GetRuleSetCollection x-sdk-operation-name: getAllTimelineMessages description: Retrieves a list of rules engine 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 rules engine 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/RulesEngineTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Rules timeline summary: Create a rules engine timeline comment operationId: PostRuleSetTimeline x-sdk-operation-name: createTimelineComment description: Creates a rules engine timeline comment. requestBody: content: application/json: schema: $ref: '#/components/schemas/RulesEngineTimeline' description: Rules engine timeline resource. required: true responses: '201': description: Rules engine timeline comment created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/RulesEngineTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /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 get: x-products: - Users tags: - Rules timeline summary: Retrieve a rules engine timeline message operationId: GetRuleSetTimeline x-sdk-operation-name: getTimelineMessage description: Retrieves a rules engine timeline message with a specified ID. responses: '200': description: Rules engine message retrieved. content: application/json: schema: $ref: '#/components/schemas/RulesEngineTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Users tags: - Rules timeline summary: Delete a rules engine timeline message operationId: DeleteRuleSetTimeline x-sdk-operation-name: deleteTimelineMessage description: Deletes a rules engine timeline message with a specified ID. responses: '204': description: Rules engine timeline message deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /events/{eventType}/rules/history: parameters: - $ref: '#/components/parameters/systemEventType' get: x-products: - Users tags: - Rules summary: Retrieve change history of a ruleset operationId: GetEventRuleHistoryCollection x-sdk-operation-name: getRulesHistory description: |- Retrieves the change history of a ruleset with a specified event type. All ruleset changes are recorded in the change history. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFields' responses: '200': description: Ruleset history 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/RuleSetHistoryItem' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- // get the latest 20 versions for this event ID const history = await api.events.getRulesVersionNumber({eventType: 'risk-score-changed', limit: 20}); // each item exposes the version and `createdTime` history.items.forEach(edit => console.log(edit.fields.version)); /events/{eventType}/rules/history/{version}: parameters: - $ref: '#/components/parameters/systemEventType' - $ref: '#/components/parameters/rulesVersion' get: x-products: - Users tags: - Rules summary: Retrieve change history record of a ruleset operationId: GetEventRuleHistory x-sdk-operation-name: getRulesVersionNumber description: >- Retrieves the change history record of a ruleset with a specified event type. A history record is created each time rules are changed. parameters: - $ref: '#/components/parameters/collectionFields' responses: '200': description: Ruleset history record retrieved. content: application/json: schema: $ref: '#/components/schemas/RuleSetHistoryItem' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- // get version #2 details for this event ID const history = await api.events.getRulesVersionNumber({eventType: 'risk-score-changed', version: 2}); // the history exposes the version number and its `createdTime` console.log(history.fields.createdTime); /events/{eventType}/rules/versions/{version}: parameters: - $ref: '#/components/parameters/systemEventType' - $ref: '#/components/parameters/rulesVersion' get: x-products: - Users tags: - Rules summary: Retrieve a version of a ruleset operationId: GetEventRuleVersion x-sdk-operation-name: getRulesVersionDetail description: |- Retrieves a version of a ruleset with a specified event type. A new version is created each time you change a rule. parameters: - $ref: '#/components/parameters/collectionFields' responses: '200': description: Ruleset version retrieved. content: application/json: schema: $ref: '#/components/schemas/RuleSetVersion' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- // get version #2 for this event ID const version = await api.events.getRulesVersionDetail({eventType: 'risk-score-changed', version: 2}); // the version exposes the ruleset console.log(version.fields.rules); /events/{eventType}/rules/drafts: parameters: - $ref: '#/components/parameters/systemEventType' get: x-products: - Users tags: - Rules summary: Retrieve draft rulesets operationId: GetEventRuleSetDraftCollection x-sdk-operation-name: getAllDraftRulesets description: |- Retrieves a list of draft rulesets for a specified event type. The result are sorted by updated time in descending order. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFields' responses: '200': description: Draft rulesets 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/RuleSetDraft' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' post: x-products: - Users tags: - Rules summary: Create a draft ruleset operationId: PostEventRuleSetDraft x-sdk-operation-name: createDraftRuleset description: Creates a draft ruleset for a specified event type. responses: '201': description: Draft ruleset created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/RuleSetDraft' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' requestBody: $ref: '#/components/requestBodies/RuleSetDraft' /events/{eventType}/rules/drafts/{id}: parameters: - $ref: '#/components/parameters/systemEventType' - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Rules summary: Retrieve a draft ruleset operationId: GetEventRuleSetDraft x-sdk-operation-name: getDraftRuleset description: Retrieves a draft ruleset with a specified ID and event type. parameters: - $ref: '#/components/parameters/collectionFields' responses: '200': description: Draft ruleset retrieved. content: application/json: schema: $ref: '#/components/schemas/RuleSetDraft' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: x-products: - Users tags: - Rules summary: Delete a draft ruleset operationId: DeleteEventRuleSetDraft x-sdk-operation-name: deleteDraftRuleset description: Deletes a draft ruleset with a specified ID and event type. responses: '204': description: Draft ruleset deleted. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: x-products: - Users tags: - Rules summary: Update a draft ruleset operationId: PutEventRuleSetDraft x-sdk-operation-name: updateDraftRuleset description: Updates a draft ruleset for a specified event type. responses: '200': description: Draft ruleset updated. content: application/json: schema: $ref: '#/components/schemas/RuleSetDraft' '201': description: Draft ruleset created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/RuleSetDraft' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' requestBody: $ref: '#/components/requestBodies/RuleSetDraft' /forgot-password: servers: - url: https://api-sandbox.rebilly.com description: Sandbox server - url: https://api.rebilly.com description: Live server post: x-products: - Users tags: - Reset password summary: Request a password reset operationId: PostForgotPasswordRequest x-sdk-operation-name: forgotPassword description: Sends an email with a link containing a token to reset a user password. security: [] responses: '204': description: Email sent. '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ForgotPassword' description: Forgot password resource. required: true x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $forgotPasswordForm = new Rebilly\Entities\ForgotPassword(); $forgotPasswordForm->setEmail('johndoe@test.com'); try { $client->users()->forgotPassword($forgotPasswordForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: |- const data = { email: 'acme+test@rebilly.com' }; const request = await api.account.forgotPassword({data}); // 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\UsersService($client); $forgotPasswordForm = new \Rebilly\Sdk\Model\ForgotPassword(); $forgotPasswordForm->setEmail('johndoe@test.com'); try { $service->account()->forgotPassword($forgotPasswordForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /gateway-accounts: get: x-products: - Users tags: - Gateway accounts summary: Retrieve gateway accounts operationId: GetGatewayAccountCollection x-sdk-operation-name: getAll description: Retrieves a list of gateway accounts. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionFields' responses: '200': description: List of gateway 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/GatewayAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $gatewayAccounts = $client->$gatewayAccounts()->search([ 'filter' => 'currency:USD', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.gatewayAccounts.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.gatewayAccounts.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(gatewayAccount => console.log(gatewayAccount.fields.gatewayName)); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $gatewayAccountsPaginator = $service->gatewayAccounts()->getAllPaginator(limit: 5, filter: 'currency:USD'); foreach ($gatewayAccountsPaginator as $gatewayAccountsPage) { printf("Gateway accounts page %d/%d\n", $gatewayAccountsPaginator->key() + 1, $gatewayAccountsPaginator->count()); foreach ($gatewayAccountsPage as $gatewayAccount) { printf("Gateway account #%s: %s\n", $gatewayAccount->getId(), $gatewayAccount->getGatewayName()); } } // OR $gatewayAccounts = $service->gatewayAccounts()->getAll(filter: 'currency:USD'); foreach ($gatewayAccounts as $gatewayAccount) { printf("Gateway account #%s: %s\n", $gatewayAccount->getId(), $gatewayAccount->getGatewayName()); } post: x-products: - Users tags: - Gateway accounts summary: Create a gateway account operationId: PostGatewayAccount x-sdk-operation-name: create description: Creates a gateway account. requestBody: $ref: '#/components/requestBodies/GatewayAccount' responses: '201': description: Gateway account created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GatewayAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': description: Invalid data sent. content: application/json: schema: $ref: '#/components/schemas/InvalidError' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: > $gatewayAccountForm = new Rebilly\Entities\GatewayAccount(); $gatewayAccountForm->setGatewayName('A1Gateway'); $gatewayAccountForm->setAcquirerName('Bank of Rebilly'); $gatewayAccountForm->setOrganizationId('organizationId'); $gatewayAccountForm->setMerchantCategoryCode(5734); $gatewayAccountForm->setWebsites([ 'websiteId1', 'websiteId2', ]); $gatewayAccountForm->setPaymentCardSchemes([ Rebilly\Entities\PaymentCardScheme::SCHEME_VISA, Rebilly\Entities\PaymentCardScheme::SCHEME_MASTERCARD, ]); $gatewayAccountForm->setMethod(Rebilly\Entities\PaymentMethod::METHOD_CASH); $gatewayConfig = [ 'accountId' => 'test', 'password' => '123', ]; $gatewayAccountForm->setGatewayConfig($gatewayConfig); try { $gatewayAccount = $client->gatewayAccounts()->create($gatewayAccountForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the required properties for the new gateway account const data = { gatewayName: 'RebillyProcessor', acquirerName: 'RebillyProcessor', merchantCategoryCode: 0, acceptedCurrencies: ['USD'], method: 'payment-card', paymentCardSchemes: [ 'Visa', 'MasterCard', 'American Express', 'Discover', 'Diners Club', 'JCB' ], // the gatewayConfig varies for each gateway name, // see the API spec for details gatewayConfig: {}, }; // the ID is optional const firstKey = await api.gatewayAccounts.create({data}); // or you can provide one const secondKey = await api.gatewayAccounts.create({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $gatewayAccountForm = new \Rebilly\Sdk\Model\A1Gateway(); $gatewayAccountForm->setAcquirerName('Bank of Rebilly'); $gatewayAccountForm->setOrganizationId('organizationId'); $gatewayAccountForm->setMerchantCategoryCode('5734'); $gatewayAccountForm->setPaymentCardSchemes([ 'Visa', 'MasterCard', ]); $gatewayAccountForm->setMethod('cash'); try { $gatewayAccount = $service->gatewayAccounts()->create($gatewayAccountForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /gateway-accounts/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Gateway accounts summary: Retrieves a gateway account operationId: GetGatewayAccount x-sdk-operation-name: get description: Retrieves a gateway account with a specified ID. responses: '200': description: Gateway account retrieved. content: application/json: schema: $ref: '#/components/schemas/GatewayAccount' '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: > $gatewayAccount = $client->gatewayAccounts()->load('gatewayAccountId'); - lang: JavaScript source: >- const gatewayAccount = await api.gatewayAccounts.get({id: 'foobar-001'}); console.log(gatewayAccount.fields.gatewayName); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $gatewayAccount = $service->gatewayAccounts()->get('gatewayAccountId'); put: x-products: - Users tags: - Gateway accounts summary: Upsert a gateway account operationId: PutGatewayAccount x-sdk-operation-name: upsert description: Creates or updates (upserts) a gateway account with a specified ID. requestBody: $ref: '#/components/requestBodies/GatewayAccount' responses: '200': description: Gateway account updated. content: application/json: schema: $ref: '#/components/schemas/GatewayAccount' '201': description: Gateway account created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GatewayAccount' '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: > $gatewayAccountForm = new Rebilly\Entities\GatewayAccount(); $gatewayAccountForm->setGatewayName('A1Gateway'); $gatewayAccountForm->setAcquirerName('Bank of Rebilly'); $gatewayAccountForm->setOrganizationId('organizationId'); $gatewayAccountForm->setMerchantCategoryCode(5734); $gatewayAccountForm->setWebsites([ 'websiteId1', 'websiteId2', ]); $gatewayAccountForm->setPaymentCardSchemes([ Rebilly\Entities\PaymentCardScheme::SCHEME_VISA, Rebilly\Entities\PaymentCardScheme::SCHEME_MASTERCARD, ]); $gatewayAccountForm->setMethod(Rebilly\Entities\PaymentMethod::METHOD_CASH); $gatewayConfig = [ 'accountId' => 'test', 'password' => '123', ]; $gatewayAccountForm->setGatewayConfig($gatewayConfig); try { $gatewayAccount = $client->gatewayAccounts()->update('gatewayAccountId', $gatewayAccountForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: >- // first set the required properties for the new gateway account const data = { gatewayName: 'RebillyProcessor', acquirerName: 'RebillyProcessor', merchantCategoryCode: 0, acceptedCurrencies: ['USD'], method: 'payment-card', paymentCardSchemes: [ 'Visa', 'MasterCard', 'American Express', 'Discover', 'Diners Club', 'JCB' ], // the gatewayConfig varies for each gateway name, // see the API spec for details gatewayConfig: {}, }; // the ID is optional const firstKey = await api.gatewayAccounts.create({data}); // or you can provide one const secondKey = await api.gatewayAccounts.create({id: 'my-second-id', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $gatewayAccountForm = new \Rebilly\Sdk\Model\A1Gateway(); $gatewayAccountForm->setAcquirerName('Bank of Rebilly'); $gatewayAccountForm->setOrganizationId('organizationId'); $gatewayAccountForm->setMerchantCategoryCode('5734'); $gatewayAccountForm->setPaymentCardSchemes([ 'Visa', 'MasterCard', ]); $gatewayAccountForm->setMethod('cash'); try { $gatewayAccount = $service->gatewayAccounts()->update('gatewayAccountId', $gatewayAccountForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } patch: x-products: - Users tags: - Gateway accounts summary: Update a gateway account operationId: PatchGatewayAccount x-sdk-operation-name: update description: Updates a gateway account with a specified ID. requestBody: $ref: '#/components/requestBodies/GatewayAccount' responses: '200': description: Gateway account updated. content: application/json: schema: $ref: '#/components/schemas/GatewayAccount' '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: >- // build data with only the fields you wish to update const data = { paymentCardSchemes: [ 'Visa', 'MasterCard', 'American Express' ] }; const secondKey = await api.gatewayAccounts.update({id: 'my-second-id', data}); delete: x-products: - Users tags: - Gateway accounts summary: Delete a gateway account operationId: DeleteGatewayAccount x-sdk-operation-name: delete description: Deletes a gateway account with a specified ID. responses: '204': description: Gateway account 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->gatewayAccounts()->delete('gatewayAccountId'); - lang: JavaScript source: >- const request = await api.gatewayAccounts.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\UsersService($client); $service->gatewayAccounts()->delete('gatewayAccountId'); /gateway-accounts/{id}/close: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Users tags: - Gateway accounts summary: Close a gateway account operationId: PostGatewayAccountClosure x-sdk-operation-name: close description: >- Closes a gateway account with a specified ID. This process is also known as archiving. When a gateway account is closed, the gateway cannot process transactions and the `status` attribute is set to `closed`. >**Important:** Closing a gateway account cannot be undone. Do so with caution. responses: '201': description: Gateway account closed. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GatewayAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- const gatewayAccount = await api.gatewayAccounts.close({id: 'foobar-001'}); console.log(gatewayAccount.fields.status); /gateway-accounts/{id}/disable: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Users tags: - Gateway accounts summary: Disable a gateway account operationId: PostGatewayAccountDisablement x-sdk-operation-name: disable description: >- Disables a gateway account with a specified ID. When a gateway account is disabled, the gateway cannot process transactions and the `status` attribute is set to `inactive`. responses: '201': description: Gateway account disabled. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GatewayAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': description: Gateway account is pending activation and cannot be disabled. x-codeSamples: - lang: JavaScript source: >- const gatewayAccount = await api.gatewayAccounts.disable({id: 'foobar-001'}); console.log(gatewayAccount.fields.status); /gateway-accounts/{id}/downtime-schedules: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Gateway accounts summary: List gateway account downtime schedules operationId: GetGatewayAccountDowntimeScheduleCollection x-sdk-operation-name: getAllDowntimeSchedules description: >- Retrieves a list of downtime schedules for a gateway account with a specified ID. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of gateway account downtime schedules 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/GatewayAccountDowntimeSchedule' '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.gatewayAccounts.getAllDowntimeSchedules({id: 'my-gateway'}); // alternatively you can specify one or more of them const params = {id: 'my-gateway', limit: 20, offset: 100}; const secondCollection = await api.gatewayAccounts.getAllDowntimeSchedules(params); // access the collection items, each item is a Member secondCollection.items .forEach(gatewayAccount => console.log(gatewayAccount.fields.reason)); post: x-products: - Users tags: - Gateway accounts summary: Create a gateway account downtime schedule operationId: PostGatewayAccountDowntimeSchedule x-sdk-operation-name: createDowntimeSchedule security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Creates a downtime schedule for a gateway account with a specified ID. responses: '201': description: Gateway account downtime schedule created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GatewayAccountDowntimeSchedule' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationError' requestBody: $ref: '#/components/requestBodies/GatewayAccountDowntimeSchedule' x-codeSamples: - lang: JavaScript source: >- // first set the required properties for // the new gateway account downtime schedule const data = { startTime: '2018-08-02T15:13:23Z', endTime: '2018-08-02T15:13:23Z' }; // the gateway ID is required const secondKey = await api.gatewayAccounts.createDowntimeSchedule({id: 'my-second-id', data}); /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 get: x-products: - Users tags: - Gateway accounts summary: Retrieve a gateway account downtime schedule operationId: GetGatewayAccountDowntimeSchedule x-sdk-operation-name: getDowntimeSchedule description: Retrieves a gateway account downtime schedule with a specified ID. responses: '200': description: Gateway downtime schedule retrieved. content: application/json: schema: $ref: '#/components/schemas/GatewayAccountDowntimeSchedule' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- const downtimeSchedule = await api.gatewayAccounts.getDowntimeSchedule({id: 'foobar-001', downtimeScheduleId: 'foobar-202'}); console.log(downtimeSchedule.fields.reason); put: x-products: - Users tags: - Gateway accounts summary: Update a gateway account downtime schedule operationId: PutGatewayAccountDowntimeSchedule x-sdk-operation-name: updateDowntimeSchedule description: Updates a gateway account downtime schedule with a specified ID. responses: '200': description: Gateway account downtime schedule updated. content: application/json: schema: $ref: '#/components/schemas/GatewayAccountDowntimeSchedule' '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' requestBody: $ref: '#/components/requestBodies/GatewayAccountDowntimeSchedule' x-codeSamples: - lang: JavaScript source: |- // first set the required properties for // the update gateway account downtime schedule const data = { startTime: '2018-08-02T15:13:23Z', endTime: '2018-08-02T15:13:23Z' }; // the gateway ID is required const secondKey = await api.gatewayAccounts .updateDowntimeSchedule({id: 'my-second-id', downtimeScheduleId: 'schedule-id', data}); delete: x-products: - Users tags: - Gateway accounts summary: Delete a gateway account downtime schedule operationId: DeleteGatewayAccountDowntimeSchedule x-sdk-operation-name: deleteDowntimeSchedule description: Deletes a gateway account downtime schedule with a specified ID. responses: '204': description: Gateway account downtime schedule 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.gatewayAccounts .deleteDowntimeSchedule({id: 'my-second-key', downtimeScheduleId: 'schedule-id'}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 /gateway-accounts/{id}/enable: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Users tags: - Gateway accounts summary: Enable a gateway account operationId: PostGatewayAccountEnablement x-sdk-operation-name: enable description: >- Enables a gateway account with a specified ID. When a gateway account is enabled, the gateway can process transactions and the `status` attribute is set to `active`. responses: '201': description: Gateway account enabled. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GatewayAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': description: Gateway account is pending activation and cannot be enabled. x-codeSamples: - lang: JavaScript source: >- const gatewayAccount = await api.gatewayAccounts.enable({id: 'foobar-001'}); console.log(gatewayAccount.fields.status); /gateway-accounts/{id}/limits: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Gateway accounts summary: Retrieve gateway account limits operationId: GetGatewayAccountLimitCollection x-sdk-operation-name: getAllVolumeLimits description: Retrieves a list of limits for a gateway account with a specified ID. responses: '200': description: List of gateway account limits retrieved. content: application/json: schema: type: array items: $ref: '#/components/schemas/GatewayAccountLimit' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /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 get: x-products: - Users tags: - Gateway accounts summary: Retrieve a gateway account limit operationId: GetGatewayAccountLimit x-sdk-operation-name: getVolumeLimit description: Retrieves a gateway account limit with a specified ID. responses: '200': description: Gateway account limit retrieved. content: application/json: schema: $ref: '#/components/schemas/GatewayAccountLimit' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Users tags: - Gateway accounts summary: Update a gateway account limit operationId: PutGatewayAccountLimit x-sdk-operation-name: updateVolumeLimit description: Updates a gateway account limit with a specified ID. responses: '200': description: Gateway account limit updated. content: application/json: schema: $ref: '#/components/schemas/GatewayAccountLimit' '201': description: Gateway account limit created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GatewayAccountLimit' '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' requestBody: content: application/json: schema: $ref: '#/components/schemas/GatewayAccountLimit' delete: x-products: - Users tags: - Gateway accounts summary: Delete a gateway account limit operationId: DeleteGatewayAccountLimit x-sdk-operation-name: deleteVolumeLimit description: Deletes a gateway account limit with a specified ID. responses: '204': description: Gateway account limit deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /gateway-accounts/{id}/timeline: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Gateway accounts timeline summary: Retrieve gateway account timeline messages operationId: GetGatewayAccountTimelineCollection x-sdk-operation-name: getAllTimelineMessages description: >- Retrieves a list of timeline messages associated with a specified gateway account ID. 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 gateway account 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/GatewayAccountTimeline' '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.gatewayAccounts .getAllTimelineMessages({id: 'my-gateway'}); // alternatively you can specify one or more of them const params = {id: 'my-gateway', limit: 20, offset: 100}; const secondCollection = await api.gatewayAccounts.getAllTimelineMessages(params); // access the collection items, each item is a Member secondCollection.items .forEach(message => console.log(message.fields.eventType)); post: x-products: - Users tags: - Gateway accounts timeline summary: Create a gateway account timeline comment operationId: PostGatewayAccountTimeline x-sdk-operation-name: createTimelineComment description: Creates a timeline comment on gateway account with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/GatewayAccountTimeline' description: Gateway account timeline resource. required: true responses: '201': description: Gateway account timeline comment created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GatewayAccountTimeline' '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 .gatewayAccounts.createTimelineComment({id: 'my-gateway-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-gateway-id', data: { message, }, }; const secondComment = await api.gatewayAccounts.createTimelineComment(params); /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 get: x-products: - Users tags: - Gateway accounts timeline summary: Retrieve a gateway timeline message operationId: GetGatewayAccountTimeline x-sdk-operation-name: getTimelineMessage description: Retrieves a gateway timeline message with a specified ID. responses: '200': description: Gateway timeline message retrieved. content: application/json: schema: $ref: '#/components/schemas/GatewayAccountTimeline' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const message = await api.gatewayAccounts .getTimelineMessage({id: 'foobar-001', messageId: 'message-202'}); console.log(message.fields.eventType); delete: x-products: - Users tags: - Gateway accounts timeline summary: Delete a gateway timeline message operationId: DeleteGatewayAccountTimeline x-sdk-operation-name: deleteTimelineMessage description: Deletes a gateway timeline message with a specified ID. responses: '204': description: Gateway account 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.gatewayAccounts .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 /gateway-accounts/{id}/check-credentials: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Users tags: - Gateway accounts summary: Verify gateway account credentials operationId: PostGatewayAccountCheckCredentials x-sdk-operation-name: checkCredentials description: >- Verifies that supplied credentials are valid for a specified gateway account ID. responses: '204': description: Supplied credentials are valid. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '422': description: Supplied credentials are not valid. /gateway-accounts/{id}/financial-settings: parameters: - $ref: '#/components/parameters/resourceId' get: x-badges: - name: Experimental x-products: - Users tags: - Gateway accounts summary: Retrieve financial settings of a gateway account operationId: GetGatewayAccountFinancialSettings x-sdk-operation-name: getFinancialSettings description: >- Retrieves the financial settings of a gateway account with a specified ID. > **Important:** This operation is experimental and may not be backward compatible. responses: '200': description: Financial settings retrieved. content: application/json: schema: $ref: '#/components/schemas/GatewayAccountFinancialSettings' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-badges: - name: Experimental x-products: - Users tags: - Gateway accounts summary: Set financial settings operationId: PutGatewayAccountFinancialSettings x-sdk-operation-name: setFinancialSettings description: >- Sets financial settings for a gateway account with a specified ID. > **Important:** This operation is experimental and may not be backward compatible. requestBody: content: application/json: schema: $ref: '#/components/schemas/GatewayAccountFinancialSettings' responses: '200': description: Gateway account financial settings updated. content: application/json: schema: $ref: '#/components/schemas/GatewayAccountFinancialSettings' '201': description: Gateway account financial settings created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GatewayAccountFinancialSettings' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /digital-wallets/onboarding/apple-pay: post: x-products: - Users tags: - Gateway accounts summary: Register a domain for Apple Pay operationId: PostDigitalWalletOnboardingApplePay x-sdk-operation-name: create description: |- Registers a domain for Apple Pay. To use this operation: 1. Download the [Rebilly Apple Pay merchant domain verification file](https://www.rebilly.com/.well-known/apple-developer-merchantid-domain-association), and host it on your domain at `https://{DOMAIN}/.well-known/apple-developer-merchantid-domain-association`. 1. Use this endpoint to register the domain with Apple Pay, or to check if it is already registered. When the domain is registered, you can use Apple Pay with FramePay. requestBody: content: application/json: schema: $ref: '#/components/schemas/DigitalWalletOnboardingApplePay' description: Apple pay domain registration request. required: true security: - SecretApiKey: [] - JWT: [] responses: '200': description: Action executed without error. content: application/json: schema: $ref: '#/components/schemas/DigitalWalletOnboardingApplePay' '201': description: Domain registered with Apple Pay. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/DigitalWalletOnboardingApplePay' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /grid-segments: get: x-products: - Users tags: - Segments summary: Retrieve a user's segments operationId: GetGridSegmentCollection x-sdk-operation-name: getAll description: Retrieves a user's UI segments. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: Segments 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/GridSegment' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Segments summary: Create a new UI segment operationId: PostGridSegment x-sdk-operation-name: create description: >- Creates a new UI segment for yourself or to share with others within your organization. responses: '201': description: Segment created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GridSegment' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: $ref: '#/components/requestBodies/GridSegment' /grid-segments/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Segments summary: Retrieve a segment operationId: GetGridSegment x-sdk-operation-name: get description: Retrieves a UI segment with a specified ID. responses: '200': description: Segment 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/GridSegment' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Users tags: - Segments summary: Update a segment operationId: PutGridSegment x-sdk-operation-name: update description: Updates a segment with a specified ID. responses: '200': description: Segment updated. content: application/json: schema: $ref: '#/components/schemas/GridSegment' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/GridSegment' delete: x-products: - Users tags: - Segments summary: Delete a segment operationId: DeleteGridSegment x-sdk-operation-name: delete description: >- Deletes a segment with a specified ID. This operation also removes all shares of the deleted segment. > **Important:** This operation can only be performed by the segment owner. responses: '204': description: Segment deleted. '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /integrations: get: x-products: - Users tags: - Integrations summary: Retrieve integrations operationId: GetIntegrationCollection x-sdk-operation-name: getAll description: Retrieves a list of integrations. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: List of integrations 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/Integration' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /integrations/{label}: parameters: - $ref: '#/components/parameters/integrationLabel' get: x-products: - Users tags: - Integrations summary: Retrieve an integration for specific label operationId: GetIntegration x-sdk-operation-name: get description: Retrieves an integration with a specified label. responses: '200': description: Integration retrieved. content: application/json: schema: $ref: '#/components/schemas/Integration' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /lists: get: x-products: - Users tags: - Lists summary: Retrieve lists operationId: GetListCollection x-sdk-operation-name: getAll description: |- Retrieves a collection of lists. This operation returns the most recent version of each list. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFields' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: Collection of lists 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/ValueList' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.lists.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.lists.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(list => console.log(list.fields.name)); post: x-products: - Users tags: - Lists summary: Create a list operationId: PostList x-sdk-operation-name: create description: Creates a new list. responses: '201': description: List created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ValueList' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/ValueList' x-codeSamples: - lang: JavaScript source: >- // first set the properties for the new list const data = { name: 'My value list', values: [ 'foobar-0001', 'foobar-0002', 'foobar-0003', 'foobar-0004', 'foobar-0005', 'foobar-0006' ] }; // the ID is optional const firstList = await api.lists.create({data}); // or you can provide one const secondList = await api.lists.create({id: 'my-second-key', data}); /lists/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Lists summary: Retrieve latest list version operationId: GetList x-sdk-operation-name: getLatestVersion description: Retrieves the latest version of a list with a specified ID. responses: '200': description: List retrieved. content: application/json: schema: $ref: '#/components/schemas/ValueList' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- // get the latest version const lastest = await api.lists.get({id: 'foobar-001'}); // get an older version const older = await api.lists.get({id: 'foobar-001', version: 12}); put: x-products: - Users tags: - Lists summary: Upsert a list operationId: PutList x-sdk-operation-name: update description: Creates or updates (upserts) a list with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/ValueList' description: List resource. required: true responses: '200': description: List updated. content: application/json: schema: $ref: '#/components/schemas/ValueList' '201': description: List created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ValueList' '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: >- // creating a list const data = { name: 'My value list', values: [ 'foobar-0001', 'foobar-0002', 'foobar-0003', 'foobar-0004', 'foobar-0005', 'foobar-0006' ] }; // the ID is optional const firstList = await api.lists.create({data}); // or you can provide one const secondList = await api.lists.create({id: 'my-second-key', data}); // updating a list const data = { name: 'My better list', values: [ 'foobar-0004', 'foobar-0005', 'foobar-0006' ] }; const list = await api.lists.update({id: 'my-second-key', data}); delete: x-products: - Users tags: - Lists summary: Delete a list operationId: DeleteList x-sdk-operation-name: delete description: Deletes a list with a specified ID. responses: '204': description: List deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': description: Specified list is in use in a rule and cannot be deleted. x-codeSamples: - lang: JavaScript source: |- const request = await api.lists.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 /lists/{id}/{version}: parameters: - $ref: '#/components/parameters/resourceId' - name: version in: path required: true description: Version of the list. schema: type: integer minimum: 1 get: x-products: - Users tags: - Lists summary: Retrieve specific list version operationId: GetListVersion x-sdk-operation-name: getByVersion description: Retrieves a specified version of a list with a specified ID. responses: '200': description: List version retrieved. content: application/json: schema: $ref: '#/components/schemas/ValueList' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /memberships: get: x-products: - Users tags: - Memberships summary: Retrieve memberships operationId: GetMembershipCollection x-sdk-operation-name: getAll description: Retrieves a list of organization memberships. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of organization memberships 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/Membership' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /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' get: x-products: - Users tags: - Memberships summary: Retrieve a membership operationId: GetMembership x-sdk-operation-name: get description: Retrieves a membership with a specified organization ID and user ID. responses: '200': description: Membership retrieved. content: application/json: schema: $ref: '#/components/schemas/Membership' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Users tags: - Memberships summary: Upsert membership operationId: PutMembership x-sdk-operation-name: update description: >- Creates or updates (upserts) a membership with a specified organization ID and user ID. Only the organization owner can grant organization membership to new users. requestBody: content: application/json: schema: $ref: '#/components/schemas/Membership' required: true responses: '200': description: Membership updated. content: application/json: schema: $ref: '#/components/schemas/Membership' '201': description: Membership created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Membership' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' delete: x-products: - Users tags: - Memberships summary: Delete a membership operationId: DeleteMembership x-sdk-operation-name: delete description: Deletes a membership with a specified organization ID and user ID. responses: '204': description: Membership deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /organizations: get: x-products: - Users tags: - Organizations summary: Retrieve organizations operationId: GetOrganizationCollection x-sdk-operation-name: getAll description: Retrieves a list of organizations. 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 organizations 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/Organization' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Organizations summary: Create an organization operationId: PostOrganization x-sdk-operation-name: create description: Creates an organization. requestBody: $ref: '#/components/requestBodies/PostOrganization' responses: '201': description: Organization created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Organization' '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: | $organizationForm = new Rebilly\Entities\Organization(); $organizationForm->setName('Test Organization'); $organizationForm->setCountry('US'); try { $organization = $client->organizations()->create($organizationForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $organizationForm = new \Rebilly\Sdk\Model\PostOrganizationRequest(); $organizationForm->setName('Test Organization'); $organizationForm->setCountry('US'); try { $organization = $service->organizations()->create($organizationForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /organizations/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Organizations summary: Retrieve an organization operationId: GetOrganization x-sdk-operation-name: get description: Retrieves an organization with a specified ID. responses: '200': description: Organization retrieved. content: application/json: schema: $ref: '#/components/schemas/Organization' '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: | $organization = $client->organizations()->load('organizationId'); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $organization = $service->organizations()->get('organizationId'); patch: x-products: - Users tags: - Organizations summary: Update an organization operationId: PatchOrganization x-sdk-operation-name: update description: Updates an organization with a specified organization ID. requestBody: $ref: '#/components/requestBodies/PatchOrganization' responses: '200': description: Organization updated. content: application/json: schema: $ref: '#/components/schemas/Organization' '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: | $organizationForm = new Rebilly\Entities\Organization(); $organizationForm->setName('Test Organization'); $organizationForm->setCountry('US'); try { $organization = $client->organizations()->update('organizationId', $organizationForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $organizationForm = new \Rebilly\Sdk\Model\PatchOrganizationRequest(); $organizationForm->setName('Test Organization'); $organizationForm->setCountry('US'); try { $organization = $service->organizations()->update('organizationId', $organizationForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /payment-cards-bank-names: get: x-products: - Users tags: - Payment instruments summary: Retrieve payment card issuing bank names operationId: GetPaymentCardBankNameCollection x-sdk-operation-name: getAll description: Retrieves a list of payment card issuing bank names. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: List of payment card issuing bank names 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 title: GetPaymentCardsBankNamesResponse items: type: object properties: name: description: Name of the bank. type: string '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /payment-methods: servers: - url: https://api-sandbox.rebilly.com description: Sandbox server - url: https://api.rebilly.com description: Live server get: x-products: - Users tags: - Metadata summary: Retrieve payment method metadata operationId: GetPaymentMethodCollection x-sdk-operation-name: getAll description: Retrieves payment method metadata. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' security: [] responses: '200': description: Payment methods metadata received. content: application/json: schema: type: array items: $ref: '#/components/schemas/PaymentMethodMetadata' /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\. -]+$ get: x-products: - Users tags: - Metadata summary: Retrieve metadata of a payment method operationId: GetPaymentMethod x-sdk-operation-name: get description: Retrieves the metadata of a payment method with a specified `apiName`. security: [] responses: '200': description: Payment method metadata received. content: application/json: schema: $ref: '#/components/schemas/PaymentMethodMetadata' /payment-gateways-metadata: get: x-products: - Users tags: - Metadata summary: Retrieve payment gateway metadata operationId: GetPaymentGatewayMetadataCollection x-sdk-operation-name: getAll description: Retrieves payment gateway metadata. security: [] responses: '200': description: Payment gateway metadata received. content: application/json: schema: type: array items: $ref: '#/components/schemas/PaymentGatewayMetadata' /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\. -]+$ get: x-products: - Users tags: - Metadata summary: Retrieve payment gateway metadata operationId: GetPaymentGatewayMetadata x-sdk-operation-name: get description: Retrieves metadata for a gateway with a specified ID. security: [] responses: '200': description: Payment gateway metadata received. content: application/json: schema: $ref: '#/components/schemas/PaymentGatewayMetadata' /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' /permissions-emulation: post: x-products: - Users tags: - Profile summary: Start permissions emulation operationId: PostPermissionsEmulation x-sdk-operation-name: startPermissionsEmulation description: >- Starts permissions emulation. Emulation during emulation is not supported. If request sent during an ongoing emulation then 403 is sent in response. Escalation is not supported. requestBody: content: application/json: schema: type: object title: PostPermissionsEmulationRequest required: - permissions properties: permissions: description: List of permissions to be emulated. $ref: '#/components/schemas/AclPermissions' required: true responses: '201': description: Session created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Session' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' delete: x-products: - Users tags: - Profile summary: Stop permissions emulation operationId: DeletePermissionsEmulation x-sdk-operation-name: stopPermissionsEmulation description: |- Stops permissions emulation. Session permissions are restored to the state before emulation began. If emulations have not started then `403` is sent in response. responses: '201': description: Session restored. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Session' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /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' /previews/rule-actions/send-email: post: x-products: - Users tags: - Rules summary: Send a test email operationId: PostPreviewRuleActionEmailSending x-sdk-operation-name: sendEmailRuleAction description: Sends a test email. requestBody: content: application/json: schema: description: Send a test email. $ref: '#/components/schemas/RulesEmailNotification' description: Test email resource. required: true responses: '200': description: Test email sent. content: application/json: schema: description: Send a test email. $ref: '#/components/schemas/RulesEmailNotification' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: |- // first build the email data including // the credential hash const data = { bodyText: 'hello world', bodyHTML: `hello world`, sender: 'john.doe+test@grr.la', recipients: ['john.doe+test@grr.la'], subject: 'testing email preview', // created prior to the test credentialHash: 'dcf6e32f2daee457a1db8ce5fdfbe200' }; const email = await api.previews.sendEmailRuleAction({data}); /previews/webhooks: post: x-products: - Users tags: - Webhooks summary: Trigger a test webhook operationId: PostPreviewWebhook x-sdk-operation-name: webhook description: Triggers a test webhook. requestBody: $ref: '#/components/requestBodies/GlobalWebhook' responses: '204': description: Test webhook triggered. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': description: Invalid data sent. content: application/json: schema: $ref: '#/components/schemas/InvalidError' x-codeSamples: - lang: JavaScript source: |- // first build the webhook data including // the credential hash const data = { eventsFilter: [], status: 'active', method: 'POST', headers: {}, // hookb.in is a great tool for // previewing webhooks url: 'https://hookb.in/Oe90ZRmdeWUGWg1MGKQV', // created prior to the test credentialHash: 'dcf6e32f2daee457a1db8ce5fdfbe200' }; const request = await api.previews.webhooks({data}); // the request does not return any fields but // you can confirm the success using the status code console.log(request.response.status); // 204 /profile: get: x-products: - Users tags: - Profile summary: Retrieve user's own profile operationId: GetProfile x-sdk-operation-name: get description: Retrieves the user's own profile as requested by the user. responses: '200': description: Profile retrieved. content: application/json: schema: $ref: '#/components/schemas/Profile' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const profile = await api.profile.get(); console.log(profile.fields.email); put: x-products: - Users tags: - Profile summary: Update a user profile operationId: PutProfile x-sdk-operation-name: update description: Updates user profile. requestBody: content: application/json: schema: $ref: '#/components/schemas/Profile' description: Profile resource. required: true responses: '200': description: Profile updated. content: application/json: schema: $ref: '#/components/schemas/Profile' '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 values to update const data = { preferences: [], }; const profile = await api.profile.update({data}); /profile/mfa: get: x-products: - Users tags: - Profile summary: Retrieve user MFA status operationId: GetProfileMfa x-sdk-operation-name: getMfa description: Retrieves Multi-Factor Authentication (MFA) status of a user. responses: '200': description: User MFA status retrieved. content: application/json: schema: $ref: '#/components/schemas/ProfileMfa' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: > const mfa = await api.profile.getMfa(); console.log(mfa.fields.status, mfa.fields.type, mfa.fields.lastAuthTime); post: x-products: - Users tags: - Profile summary: Update user MFA operationId: PostProfileMfa x-sdk-operation-name: updateMfa description: >- Updates the Multi-Factor Authentication (MFA) information of a user. The generated link with an `enrollment` `rel` link must be followed to verify the existing MFA or enroll new MFA. responses: '201': description: User MFA update URL created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/ProfileMfa' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: | const mfa = await api.profile.updateMfa(); console.log(mfa.fields._links); delete: x-products: - Users tags: - Profile summary: Delete user MFA operationId: DeleteProfileMfa x-sdk-operation-name: deleteMfa description: >- Deletes the Multi-Factor Authentication (MFA) information of a user. To complete this operation, the `lastAuthTime` value must be no more than 10 minutes before this request. responses: '204': description: User MFA deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: | await api.profile.deleteMfa(); /roles: get: x-products: - Users tags: - Roles summary: Retrieve roles operationId: GetRoleCollection x-sdk-operation-name: getAll description: Retrieves a list of user roles. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: List of roles 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/Role' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Roles summary: Create a role operationId: PostRole x-sdk-operation-name: create description: Creates a role that is used to assign permissions to users. requestBody: content: application/json: schema: $ref: '#/components/schemas/Role' description: Role resource. required: true responses: '201': description: Role created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Role' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /roles/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Roles summary: Retrieve a role operationId: GetRole x-sdk-operation-name: get description: Retrieves a user role with a specified ID. parameters: - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Role retrieved. content: application/json: schema: $ref: '#/components/schemas/Role' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: x-products: - Users tags: - Roles summary: Create a role with ID operationId: PutRole x-sdk-operation-name: update description: Creates a user role with a specified ID. responses: '200': description: Role updated. content: application/json: schema: $ref: '#/components/schemas/Role' '201': description: Role created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Role' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' requestBody: content: application/json: schema: $ref: '#/components/schemas/Role' description: Role resource. required: true delete: x-products: - Users tags: - Roles summary: Delete a role operationId: DeleteRole x-sdk-operation-name: delete description: Deletes a user role with a specified ID. responses: '204': description: Role deleted. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /send-through-attribution/{eventType}: parameters: - $ref: '#/components/parameters/systemEventType' get: x-products: - Users tags: - Email notifications summary: Retrieve email notification attributions operationId: GetSendThroughAttributionCollection x-sdk-operation-name: getAll description: >- Retrieves a list of email notifications, that have been sent through attribution, for a specified event type. responses: '200': description: List of email notifications 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/SendThroughAttribution' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /status: servers: - url: https://api-sandbox.rebilly.com description: Sandbox server - url: https://api.rebilly.com description: Live server get: x-products: - Users tags: - Status summary: Retrieve API current status operationId: GetStatus x-sdk-operation-name: get description: Retrieve API current status. security: [] responses: '200': description: Status received. content: application/json: schema: $ref: '#/components/schemas/Status' x-codeSamples: - lang: JavaScript source: |- const status = await api.status.get({id: 'foobar-001'}); console.log(status.fields.status); /tracking/api: get: x-products: - Users tags: - Tracking summary: Retrieve API tracking logs operationId: GetTrackingApiCollection x-sdk-operation-name: getAllApiLogs description: Retrieves API tracking log records. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Tracking API logs 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/ApiTracking' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $apiTrackingLog = $client->apiTracking()->search([ 'filter' => 'status:200', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.tracking.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100}; const secondCollection = await api.tracking.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(entry => console.log(entry.fields.customerId)); // alternatively, download as a CSV file // all parameters are optional const firstFile = await api.tracking.downloadApiLogsCSV(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondFile = await api.tracking.downloadApiLogsCSV(params); // access the file data to view the CSV content console.log(secondFile.data); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $apiTrackingLogsPaginator = $service->tracking()->getAllApiLogsPaginator(limit: 5, filter: 'status:200'); foreach ($apiTrackingLogsPaginator as $apiTrackingLogsPage) { printf("API tracking logs page %d/%d\n", $apiTrackingLogsPaginator->key() + 1, $apiTrackingLogsPaginator->count()); foreach ($apiTrackingLogsPage as $apiTrackingLog) { printf("API tracking log #%s: %s\n", $apiTrackingLog->getId(), $apiTrackingLog->getRequest()); } } // OR $apiTrackingLogs = $service->tracking()->getAllApiLogs(filter: 'status:200'); foreach ($apiTrackingLogs as $apiTrackingLog) { printf("API tracking log #%s: %s\n", $apiTrackingLog->getId(), $apiTrackingLog->getRequest()); } /tracking/api/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Tracking summary: Retrieve an API tracking log operationId: GetTrackingApi x-sdk-operation-name: getApiLog description: Retrieves an API tracking log record with a specified ID. responses: '200': description: Tracking API log retrieved. content: application/json: schema: $ref: '#/components/schemas/ApiTracking' '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: | $apiTrackingLog = $client->apiTracking()->load('apiLogId'); - lang: JavaScript source: |- const entry = await api.tracking.getApiLog({id: 'foobar-001'}); console.log(entry.fields.request); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $apiTrackingLog = $service->tracking()->getApiLog('apiLogId'); /tracking/taxes: get: x-products: - Users tags: - Tracking summary: Retrieve tax service tracking logs operationId: GetTrackingTaxCollection x-sdk-operation-name: getAllTaxTrackingLogs description: Retrieves a collection of tax service tracking logs. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: Tax logs 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/TaxTracking' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.tracking.getAllTaxTrackingLogs(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100}; const secondCollection = await api.tracking.getAllTaxTrackingLogs(params); // access the collection items, each item is a Member secondCollection.items.forEach(entry => console.log(entry.fields.eventType)); /tracking/taxes/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Tracking summary: Retrieve a tax service tracking log operationId: GetTrackingTax x-sdk-operation-name: getTaxTrackingLog description: Retrieves a tax service tracking log with a specified ID. responses: '200': description: Tax log retrieved. content: application/json: schema: $ref: '#/components/schemas/TaxTracking' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: > const entry = await api.tracking.getTaxTrackingLog({id: 'foobar-001'}); console.log(entry.fields.eventType); /tracking/lists: get: x-products: - Users tags: - Tracking summary: Retrieve value list changes operationId: GetTrackingListCollection x-sdk-operation-name: getAllListsChangesHistory description: Retrieves the change history of value 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: Change history of a value list 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/ValueList' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.tracking.getAllListsChangesHistory(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100}; const secondCollection = await api.tracking.getAllListsChangesHistory(params); // access the collection items, each item is a Member secondCollection.items.forEach(entry => console.log(entry.fields.name)); /tracking/webhooks: get: x-products: - Users tags: - Tracking summary: Retrieve webhook tracking logs operationId: GetTrackingWebhookCollection x-sdk-operation-name: getAllWebhookTrackingLogs description: Retrieves webhook tracking logs. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' responses: '200': description: Tracking webhook logs 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/WebhookTracking' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.tracking.getAllWebhookTrackingLogs(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100}; const secondCollection = await api.tracking.getAllWebhookTrackingLogs(params); // access the collection items, each item is a Member secondCollection.items.forEach(entry => console.log(entry.fields.eventType)); /tracking/webhooks/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Tracking summary: Retrieve a webhook tracking log operationId: GetTrackingWebhook x-sdk-operation-name: getWebhookTrackingLog description: Retrieves a webhook tracking log record with a specified ID. responses: '200': description: Webhook tracking log record retrieved. content: application/json: schema: $ref: '#/components/schemas/WebhookTracking' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- const entry = await api.tracking.getWebhookTrackingLog({id: 'foobar-001'}); console.log(entry.fields.eventType); /tracking/webhooks/{id}/resend: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Users tags: - Tracking summary: Schedule a resend webhook attempt description: |- Schedules a resend attempt for a specified webhook tracking ID. Webhooks are processed asynchronously. operationId: PostTrackingWebhookResendRequest x-sdk-operation-name: resendWebhook responses: '204': description: Webhook resend attempt scheduled. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /users: get: x-products: - Users tags: - Users summary: Retrieve a list of users operationId: GetUserCollection x-sdk-operation-name: getAll description: Retrieves a list of users. 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 users 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/User' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $users = $client->users()->search([ 'filter' => 'firstName:John', ]); - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.users.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.users.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(user => console.log(user.fields.firstName)); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $usersPaginator = $service->users()->getAllPaginator(limit: 5, filter: 'firstName:John'); foreach ($usersPaginator as $usersPage) { printf("Users page %d/%d\n", $usersPaginator->key() + 1, $usersPaginator->count()); foreach ($usersPage as $user) { printf("User #%s: %s %s | %s\n", $user->getId(), $user->getFirstName(), $user->getLastName(), $user->getEmail()); } } // OR $users = $service->users()->getAll(filter: 'firstName:John'); foreach ($users as $user) { printf("User #%s: %s %s | %s\n", $user->getId(), $user->getFirstName(), $user->getLastName(), $user->getEmail()); } post: x-products: - Users tags: - Users summary: Create a user operationId: PostUser x-sdk-operation-name: create description: Creates a user. requestBody: $ref: '#/components/requestBodies/User' responses: '201': description: User created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/User' '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: | $userForm = new Rebilly\Entities\User(); $userForm->setFirstName('John'); $userForm->setLastName('Doe'); $userForm->setEmail('johndoe@test.com'); try { $user = $client->users()->create($userForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // first set the properties for the new user const data = { email: 'john.doe+test@grr.la', firstName: 'John', lastName: 'Doe', businessPhone: '151412345676', mobilePhone: '151412345676', permissions: [], country: 'US', preferences: {} }; // the ID is optional const firstProduct = await api.users.create({data}); // or you can provide one const secondProduct = await api.users.create({id: 'my-second-key', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $userForm = new \Rebilly\Sdk\Model\User(); $userForm->setFirstName('John'); $userForm->setLastName('Doe'); $userForm->setEmail('johndoe@test.com'); try { $user = $service->users()->create($userForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /users/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Users summary: Retrieve a user operationId: GetUser x-sdk-operation-name: get description: Retrieves a user with a specified ID. responses: '200': description: User retrieved. content: application/json: schema: $ref: '#/components/schemas/User' '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: | $user = $client->users()->load('userId'); - lang: JavaScript source: |- const user = await api.users.get({id: 'foobar-001'}); console.log(user.fields.firstName); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $user = $service->users()->get('userId'); put: x-products: - Users tags: - Users summary: Upsert a user operationId: PutUser x-sdk-operation-name: update description: Creates or updates (upserts) a user with a specified ID. requestBody: $ref: '#/components/requestBodies/User' responses: '200': description: User updated. content: application/json: schema: $ref: '#/components/schemas/User' '201': description: User created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/User' '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: | $userForm = new Rebilly\Entities\User(); $userForm->setFirstName('John'); $userForm->setLastName('Doe'); $userForm->setEmail('johndoe@test.com'); try { $user = $client->users()->update('userId', $userForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // creating a new user const data = { email: 'john.doe+test@grr.la', firstName: 'John', lastName: 'Doe', businessPhone: '151412345676', mobilePhone: '151412345676', permissions: [], country: 'US', preferences: {} }; // the ID is optional const firstProduct = await api.users.create({data}); // or you can provide one const secondProduct = await api.users.create({id: 'my-second-key', data}); // updating a user const data = { email: 'john.doe+test@grr.la', firstName: 'John', lastName: 'Doe', country: 'CA', }; const user = await api.users.update({id: 'my-second-key', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $userForm = new \Rebilly\Sdk\Model\User(); $userForm->setFirstName('John'); $userForm->setLastName('Doe'); $userForm->setEmail('johndoe@test.com'); try { $user = $service->users()->update('userId', $userForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /users/{id}/mfa: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Users summary: Retrieve user MFA status operationId: GetUserMfa x-sdk-operation-name: getMfa description: >- Retrieves the Multi-Factor Authentication (MFA) status of a user with a specified ID. responses: '200': description: User MFA status retrieved. content: application/json: schema: $ref: '#/components/schemas/ProfileMfa' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: > const mfa = await api.users.get({id: 'foobar-001'}); console.log(mfa.fields.status, mfa.fields.type, mfa.fields.lastAuthTime); /webhooks: get: x-products: - Users tags: - Webhooks summary: Retrieve webhooks operationId: GetWebhookCollection x-sdk-operation-name: getAll description: Retrieves a list of webhooks. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: List of webhooks 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/GlobalWebhook' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.webhooks.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.webhooks.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(webhook => console.log(webhook.fields.name)); post: x-products: - Users tags: - Webhooks summary: Create a webhook operationId: PostWebhook x-sdk-operation-name: create security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Creates a webhook. requestBody: $ref: '#/components/requestBodies/GlobalWebhook' responses: '201': description: Webhook created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GlobalWebhook' '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 webhook const data = { // leave filter empty to enable // the webhook for all events eventsFilter: [], status: 'active', method: 'POST', headers: {}, url: 'https://hookb.in/Oe90ZRmdeWUGWg1MGKQV', // created prior to the test credentialHash: 'dcf6e32f2daee457a1db8ce5fdfbe200' }; // the ID is optional const firstWebhook = await api.webhooks.create({data}); // or you can provide one const secondWebhook = await api.webhooks.create({id: 'my-second-key', data}); /webhooks/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Webhooks summary: Retrieve a webhook operationId: GetWebhook x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a webhook with a specified ID. responses: '200': description: Webhook retrieved. content: application/json: schema: $ref: '#/components/schemas/GlobalWebhook' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: |- const webhook = await api.webhooks.get({id: 'foobar-001'}); console.log(webhook.fields.id); put: x-products: - Users tags: - Webhooks summary: Upsert a webhook operationId: PutWebhook x-sdk-operation-name: update security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Creates or updates (upserts) a webhook with a specified ID. requestBody: $ref: '#/components/requestBodies/GlobalWebhook' responses: '200': description: Webhook updated. content: application/json: schema: $ref: '#/components/schemas/GlobalWebhook' '201': description: Webhook created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/GlobalWebhook' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': description: Invalid data sent. content: application/json: schema: $ref: '#/components/schemas/InvalidError' /websites: get: x-products: - Users tags: - Websites summary: Retrieve websites operationId: GetWebsiteCollection x-sdk-operation-name: getAll security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a list of websites. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' responses: '200': description: List of websites 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/Website' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP label: PHP-SDK-2.0 source: | $websites = $client->websites()->search([ 'filter' => 'name:TestWebsite', ]); - lang: JavaScript source: > // all parameters are optional const firstCollection = await api.websites.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.websites.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(website => console.log(website.fields.name)); - lang: PHP source: >- $service = new \Rebilly\Sdk\UsersService($client); $websitesPaginator = $service->websites()->getAllPaginator(limit: 5, filter: 'name:TestWebsite'); foreach ($websitesPaginator as $websitesPage) { printf("Websites page %d/%d\n", $websitesPaginator->key() + 1, $websitesPaginator->count()); foreach ($websitesPage as $website) { printf("Website #%s: %s\n", $website->getId(), $website->getName()); } } // OR $websites = $service->websites()->getAll(filter: 'name:TestWebsite'); foreach ($websites as $website) { printf("Website #%s: %s\n", $website->getId(), $website->getName()); } post: x-products: - Users tags: - Websites summary: Create a website operationId: PostWebsite x-sdk-operation-name: create description: Creates a website. requestBody: $ref: '#/components/requestBodies/Website' responses: '201': description: Website created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Website' '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: | $websiteForm = new Rebilly\Entities\Website(); $websiteForm->setName('TestWebsite'); $websiteForm->setUrl('http://testwebsite.com'); $websiteForm->setServicePhone('+0123456789'); $websiteForm->setServiceEmail('test@testwebsite.com'); try { $website = $client->websites()->create($websiteForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // first set the properties for the new website const data = { name: 'My website', url: 'https://www.acme.com', servicePhone: '15451234567', serviceEmail: 'support@acme.com', customFields: {} }; // the ID is optional const firstWebsite = await api.websites.create({data}); // or you can provide one const secondWebsite = await api.websites.create({id: 'my-second-key', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $websiteForm = new \Rebilly\Sdk\Model\Website(); $websiteForm->setName('TestWebsite'); $websiteForm->setUrl('http://testwebsite.com'); $websiteForm->setServicePhone('+0123456789'); $websiteForm->setServiceEmail('test@testwebsite.com'); try { $website = $service->websites()->create($websiteForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } /websites/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Websites summary: Retrieve a website operationId: GetWebsite x-sdk-operation-name: get security: - SecretApiKey: [] - JWT: [] - ApplicationJWT: [] description: Retrieves a website with a specified ID. responses: '200': description: Website retrieved. content: application/json: schema: $ref: '#/components/schemas/Website' '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: | $website = $client->websites()->load('websiteId'); - lang: JavaScript source: |- const website = await api.websites.get({id: 'foobar-001'}); console.log(website.fields.name); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $website = $service->websites()->get('websiteId'); put: x-products: - Users tags: - Websites summary: Upsert a website operationId: PutWebsite x-sdk-operation-name: update description: Creates or updates (upserts) a website with a specified ID. requestBody: $ref: '#/components/requestBodies/Website' responses: '200': description: Website updated. content: application/json: schema: $ref: '#/components/schemas/Website' '201': description: Website created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/Website' '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: | $websiteForm = new Rebilly\Entities\Website(); $websiteForm->setName('TestWebsite'); $websiteForm->setUrl('http://testwebsite.com'); $websiteForm->setServicePhone('+0123456789'); $websiteForm->setServiceEmail('test@testwebsite.com'); try { $website = $client->websites()->update('websiteId', $websiteForm); } catch (Rebilly\Http\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } - lang: JavaScript source: > // creating a new website const data = { name: 'My website', url: 'https://www.acme.com', servicePhone: '15451234567', serviceEmail: 'support@acme.com', customFields: {} }; // the ID is optional const firstWebsite = await api.websites.create({data}); // or you can provide one const secondWebsite = await api.websites.create({id: 'my-second-key', data}); // updating a website const data = { name: 'My website', url: 'https://www.acme.com', servicePhone: '15451234567', serviceEmail: 'support@acme.com', customFields: {} }; const website = await api.websites.update({id: 'my-second-key', data}); - lang: PHP source: |- $service = new \Rebilly\Sdk\UsersService($client); $websiteForm = new \Rebilly\Sdk\Model\Website(); $websiteForm->setName('TestWebsite'); $websiteForm->setUrl('http://testwebsite.com'); $websiteForm->setServicePhone('+0123456789'); $websiteForm->setServiceEmail('test@testwebsite.com'); try { $website = $service->websites()->update('websiteId', $websiteForm); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Users tags: - Websites summary: Delete a website operationId: DeleteWebsite x-sdk-operation-name: delete description: Deletes a website with a specified ID. responses: '204': description: Website 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->websites()->delete('websiteId'); - lang: JavaScript source: |- const request = await api.websites.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\UsersService($client); $service->websites()->delete('websiteId'); /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 get: x-badges: - name: Experimental x-products: - Reports tags: - Customers summary: Retrieve a customer's lifetime summary metrics operationId: GetCustomerSummaryMetricReport x-sdk-operation-name: getCustomerLifetimeSummaryMetrics description: Retrieves lifetime summary metrics for a customer with a specified ID. responses: '200': description: Metrics retrieved. content: application/json: schema: $ref: '#/components/schemas/CustomerInformation' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- const metrics = await api.customers.getCustomerLifetimeSummaryMetrics({id: 'foobar-0001'}); console.log(metrics.fields.revenueAmount); - lang: PHP source: >- $service = new \Rebilly\Sdk\ReportsService($client); $metrics = $service->customers()->getCustomerLifetimeSummaryMetrics('customerId'); /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). post: x-products: - Reports tags: - Data exports summary: Request the data export of a resource operationId: PostDataExport x-sdk-operation-name: queue description: Requests the export of a specific data resource. parameters: - $ref: '#/components/parameters/collectionExpand' requestBody: $ref: '#/components/requestBodies/DataExport' responses: '201': description: Data export request received. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/DataExport' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: JavaScript source: >- // first prepare the details of the export const data = { name: 'my-first-export', // only CSV is currently supported format: 'csv', // define filters, criteria, etc. // to reduce the amount of values exported arguments: {}, dateRange: { range: 'all' }, // list email addresses that will receive // a notification once the download is ready emailNotification: [''] }; const queuedExport = await api.exports.queue({resource: 'transaction', data}); console.log(queuedExport.fields.status); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $dataExport = new \Rebilly\Sdk\Model\Customers([ 'name' => 'Daily customer export', 'format' => 'csv', 'fields' => [ 'firstName', 'lastName', 'email', 'lifetimeRevenue/amount', 'lastPaymentTime', 'createdTime', ], 'recurring' => [ 'instruction' => 'RRULE:FREQ=DAILY', ], 'dateRange' => [ 'start' => 'yesterday', 'end' => 'today', ], 'emailNotification' => [ 'user@example.com', ], ]); $service->dataExports()->queue($dataExport); get: x-products: - Reports tags: - Data exports summary: Retrieve data export requests operationId: GetDataExportCollection x-sdk-operation-name: getAll description: Retrieves a list of data export requests. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionExpand' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionQuery' - $ref: '#/components/parameters/collectionCriteria' responses: '200': description: List of data export 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/DataExport' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- // all parameters are optional const firstCollection = await api.exports.getAll(); // alternatively you can specify one or more of them const params = {limit: 20, offset: 100, sort: '-createdTime'}; const secondCollection = await api.exports.getAll(params); // access the collection items, each item is a Member secondCollection.items.forEach(file => console.log(exports.fields.status)); - lang: PHP source: >- $service = new \Rebilly\Sdk\ReportsService($client); $dataExportsPaginator = $service->dataExports()->getAllPaginator(limit: 5); foreach ($dataExportsPaginator as $dataExportPage) { printf("dataExports page %d/%d\n", $dataExportsPaginator->key() + 1, $dataExportsPaginator->count()); foreach ($dataExportPage as $dataExport) { printf("DataExport #%s: %s\n", $dataExport->getId(), $dataExport->getName()); } } // OR $dataExports = $service->dataExports()->getAll(limit: 100); foreach ($dataExports as $dataExport) { printf("DataExport #%s: %s\n", $dataExport->getId(), $dataExport->getName()); } /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' get: x-products: - Reports tags: - Data exports summary: Retrieve a data export request operationId: GetDataExport x-sdk-operation-name: get description: Retrieves a data export request. parameters: - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Data export request. 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/DataExport' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: JavaScript source: >- const queuedExport = await api.exports.get({resource: 'transaction', id: 'foobar-001'}); console.log(queuedExport.fields.status); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $dataExport = $service->dataExports()->get('dataExportId'); put: x-products: - Reports tags: - Data exports summary: Modify a data export operationId: PutDataExport x-sdk-operation-name: update description: Modifies a pending data export. parameters: - $ref: '#/components/parameters/collectionExpand' requestBody: $ref: '#/components/requestBodies/DataExport' responses: '200': description: Data export modified. content: application/json: schema: $ref: '#/components/schemas/DataExport' '201': description: Data export updated. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/DataExport' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $dataExport = new \Rebilly\Sdk\Model\Customers([ 'name' => 'Daily customer export v2', 'format' => 'csv', 'fields' => [ 'firstName', 'lastName', 'email', 'lifetimeRevenue/amount', 'lastPaymentTime', ], ]); try { $dataExport = $service->dataExports()->update('dataExportId', $dataExport); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } // OR $dataExport = $service->dataExports()->get('dataExportId'); $dataExport->setFields([ 'firstName', 'lastName', 'email', 'lifetimeRevenue/amount', 'lastPaymentTime', ]); try { $dataExport = $service->dataExports()->update('dataExportId', $dataExport); } catch (\Rebilly\Sdk\Exception\DataValidationException $e) { print_r($e->getValidationErrors()); } delete: x-products: - Reports tags: - Data exports summary: Delete a data export operationId: DeleteDataExport x-sdk-operation-name: delete description: Deletes a data export. responses: '204': $ref: '#/components/responses/NoContent' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $service->dataExports()->delete('dataExportId'); /organization-exports: get: x-products: - Users tags: - Organization data exports summary: Retrieve organization data exports operationId: GetOrganizationExportCollection x-sdk-operation-name: getAll description: Retrieves a list of organization data exports. 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 organization data exports 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/OrganizationExport' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Users tags: - Organization data exports summary: Request an organization data export operationId: PostOrganizationExport x-sdk-operation-name: create description: |- Request an organization data export. The data export is asynchronously processed. requestBody: content: application/json: schema: type: object properties: includeFiles: description: Sets the export to include organization files. type: boolean default: false example: true responses: '201': description: Organization data export request received. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/OrganizationExport' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /organization-exports/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Users tags: - Organization data exports summary: Retrieve an organization data export request operationId: GetOrganizationExport x-sdk-operation-name: get description: >- Retrieve an organization data export request with a specified organization ID. responses: '200': description: Organization data export request. content: application/json: schema: $ref: '#/components/schemas/OrganizationExport' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Histograms summary: Retrieve transaction histogram report data operationId: GetHistogramTransactionReport x-sdk-operation-name: getTransactionHistogramReport description: Retrieves transaction histogram report data. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - name: aggregationPeriod in: query description: Aggregation period of the report. required: true schema: type: string enum: - hour - day - month - name: metric in: query description: Metric on which the report is based. required: true schema: type: string enum: - approval - auth_approval - avg_sales - refunds - refunds_count - sales - sales_count - all_sales_count - auth_approval_count - disputes_count - disputes_rate - credits - credits_count - unapproved_count - $ref: '#/components/parameters/collectionFilter' responses: '200': description: Transaction report retrieved. content: application/json: schema: $ref: '#/components/schemas/HistogramData' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- const params = { periodStart: '2017-09-21T00:00:00Z', // seven day period periodEnd: '2017-09-28T23:59:59Z', aggregationField: 'website', aggregationPeriod: 'day', metric: 'approval' }; const report = await api.histograms.getTransactionHistogramReport(params); console.log(report.fields.data); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $histogram = $service->histograms()->getTransactionHistogramReport( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), 'website', 'day', 'sales', ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve an API log summary report operationId: GetApiLogSummaryReport x-sdk-operation-name: getApiLogSummary description: Retrieves an API log summary report. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Report retrieved. content: application/json: schema: $ref: '#/components/schemas/ApiLogSummary' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { periodStart: '2017-09-21T00:00:00Z', periodEnd: '2017-09-28T23:59:59Z', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getApiLogSummary(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getApiLogSummary( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a cumulative subscriptions report operationId: GetCumulativeSubscriptionReport x-sdk-operation-name: getCumulativeSubscriptions description: Retrieves a cumulative subscriptions report. parameters: - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - day - month - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: Report retrieved. content: application/json: schema: $ref: '#/components/schemas/CumulativeSubscriptions' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { aggregationField: 'day', periodStart: '2017-09-21T00:00:00Z', periodEnd: '2017-09-28T23:59:59Z', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getCumulativeSubscriptions(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getCumulativeSubscriptions( 'day', new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve dashboard data operationId: GetDashboardReport x-sdk-operation-name: getDashboardMetrics description: Retrieves dashboard data. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - name: metrics in: query description: Comma-separated list of metrics. schema: type: string - name: segments in: query description: Dashboard report segments as a JSON array. schema: type: string responses: '200': description: Report retrieved. content: application/json: schema: $ref: '#/components/schemas/DashboardResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $dashboard = $service->reports()->getDashboardMetrics( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), metrics: 'approvalRate,salesCount,salesValue,refundsValue', ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a DCC markup report operationId: GetDccMarkupReport x-sdk-operation-name: getDccMarkup description: Retrieves a Dynamic Currency Conversion (DCC) markup report. parameters: - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - day - month - bin - country - baseCurrency - quoteCurrency - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: Report 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/DccMarkup' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { aggregationField: 'day', periodStart: '2017-09-21T00:00:00Z', periodEnd: '2017-09-28T23:59:59Z', limit: 20, offset: 0, filter: `gatewayAccounts:f9b4fa10-df1d-48a3-85b3-ff6bd7ce0ed2; \ transactionResult:approved,canceled,declined,unknown`, tz: 0 }; const report = await api.reports.getDccMarkup(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getDccMarkup( 'day', new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a declined transactions report operationId: GetDeclinedTransactionsReport x-sdk-operation-name: getDeclinedTransactions description: Retrieves a report on declined transactions. parameters: - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - gatewayResponseMessage - gatewayResponseOriginalMessage - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: Report retrieved. content: application/json: schema: $ref: '#/components/schemas/ReportDeclinedTransactions' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a disputes report operationId: GetDisputeReport x-sdk-operation-name: getDisputes description: Retrieves a disputes report. parameters: - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - website - gatewayAcquirer - currency - bin - country - rebillNumber - retryNumber - gatewayAccount - transactionAmount - name: periodMonth in: query description: Report month in `YYYY-MM` format. required: true schema: type: string - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: Report 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/ReportDisputes' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { aggregationField: 'website', periodMonth: '2017-09', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getDisputes(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getDisputes( 'website', '2022-01', limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve events triggered summary report operationId: GetTriggeredEventReport x-sdk-operation-name: getEventsTriggeredSummary description: Retrieves an events triggered summary report. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Report 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/ReportEventsTriggeredSummary' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { periodStart: '2017-09-22T00:00:00Z', periodEnd: '2017-09-29T23:59:59Z', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getEventsTriggeredSummary(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getEventsTriggeredSummary( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), limit: 5, ); /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' get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a rules matched summary report operationId: GetTriggeredEventRuleReport x-sdk-operation-name: getTriggeredEventRuleReport description: >- Retrieves a rules matched summary report that is based on triggered events. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Report 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/ReportRulesMatchedSummary' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { periodStart: '2017-09-22T00:00:00Z', periodEnd: '2017-09-29T23:59:59Z', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getRulesMatchedSummary(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getTriggeredEventRuleReport( 'account-password-reset-requested', new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a future renewals report operationId: GetFutureRenewalReport x-sdk-operation-name: getFutureRenewals description: Retrieves a future renewals report. parameters: - name: periodStart in: query description: |- Date and time when the report starts. This date must be in the future. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2032-01 - name: periodEnd in: query description: |- Date and time when the report ends. This date must be in the future. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2032-02 - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Report 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/FutureRenewals' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { periodStart: '2017-09-22T00:00:00Z', periodEnd: '2017-09-29T23:59:59Z', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getFutureRenewals(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getFutureRenewals( '2022-10', '2022-11', limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a journal report operationId: GetJournalReport x-sdk-operation-name: getJournal description: >- Retrieves a journal report which displays revenue for each account. A revenue journal is a detailed revenue waterfall report that describes revenue which is recognized at a certain month, aggregated by product ID, product accounting code, or plan ID. It contains information on booked revenue, recognized revenue for the aggregation field in the booked period, and the remaining revenue up to the selected month. parameters: - name: currency in: query description: Revenue currency. required: true schema: $ref: '#/components/schemas/CurrencyCode' - name: bookedFrom in: query description: >- Year and month from which revenue is booked. If this value is omitted, booked revenue is recorded from the first booked amount. schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-01 - name: bookedTo in: query description: >- Year and month in which revenue is booked until. If this value is omitted, booked revenue is recorded until the most recently booked amount. schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-01 - name: recognizedAt in: query description: Year and month when revenue is recognized. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-04 - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - product.accountingCode - product.id - plan.id - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: Report 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/ReportJournal' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { currency: 'USD', bookedFrom: '2022-01', bookedTo: '2022-06', recognizedAt: '2022-06', aggregationField: 'product.accountingCode', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getJournal(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getJournal( 'USD', '2022-04', 'product.id', limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a KYC acceptance summary report operationId: GetKycAcceptanceSummaryReport x-sdk-operation-name: getKycAcceptanceSummary description: Retrieves a Know Your Customer (KYC) acceptance summary report. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time responses: '200': description: Report retrieved. content: application/json: schema: type: object title: GetKycAcceptanceSummaryResponse properties: data: description: KYC acceptance data. type: array items: type: object description: Amount of accepted KYC documents. readOnly: true properties: documentType: allOf: - description: Type of KYC document. example: address-proof - $ref: '#/components/schemas/KycDocumentTypes' statusStatistics: type: object description: Statistics for each status. properties: accepted: type: object description: Statistics for the `accepted` status. properties: total: type: integer description: Total amount of accepted documents. example: 6 automatically: type: integer description: >- Amount of documents that have been accepted automatically. example: 4 manually: type: integer description: >- Amount of documents that have been accepted by reviewer. example: 2 afterAutoRejected: type: integer description: >- Amount of documents that have been rejected automatically and then accepted by reviewer. example: 2 rejected: type: object description: Statistics for the `rejected` status. properties: total: type: integer description: Total amount of rejected documents. example: 2 automatically: type: integer description: >- Amount of documents that have been rejected automatically. example: 1 manually: type: integer description: >- Amount of documents that have been rejected by reviewer. example: 1 afterAutoAccepted: type: integer description: >- Amount of documents that have been accepted automatically and then rejected by reviewer. example: 1 pending: type: object description: Statistics for the `pending` status. properties: total: type: integer description: Total amount of pending documents. example: 0 archived: type: object description: Statistics for the `archived` status. properties: total: type: integer description: Total amount of archived documents. example: 0 total: type: integer description: Total amount of documents. example: 8 accuracyRate: type: number description: >- Percentage of automatically accepted and rejected documents that remain in the same status after review. Calculated based on the following: `(non-archived total - accepted auto rejected - rejected auto accepted)/non-archived total`. example: 62.5 acceptanceRate: type: number description: >- Percentage of accepted documents from the total number of KYC documents. Calculated based on the following: `accepted total / total of non-archived documents`. example: 75 manualReviewTime: type: number description: >- Median duration in minutes between review and created time for manually reviewed documents. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getKycAcceptanceSummary( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a KYC rejections report operationId: GetKycRejectionSummaryReport x-sdk-operation-name: getKycRejectionSummary description: >- Retrieves a Know Your Customer (KYC) rejection report by type and by rejection reasons. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time responses: '200': description: Report 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/ReportKycRejections' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getKycRejectionSummary( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a KYC requests report operationId: GetKycRequestSummaryReport x-sdk-operation-name: getKycRequestSummary description: >- Retrieves a Know Your Customer (KYC) request report by type and by rejection reasons. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time responses: '200': description: Report 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/ReportKycRequests' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getKycRequestSummary( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a MRR report operationId: GetMonthlyRecurringRevenueReport x-sdk-operation-name: getMonthlyRecurringRevenue description: >- Retrieves a Monthly Recurring Revenue (MRR) report. Use MRR reports to view information on the predictable recurring revenue for your business over a period of months. parameters: - name: currency in: query description: Revenue currency. required: true schema: $ref: '#/components/schemas/CurrencyCode' - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-01 - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-06 - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Report 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/ReportMonthlyRecurringRevenue' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const report = await api.reports.getMonthlyRecurringRevenue({ periodStart: '2016-09', periodEnd: '2017-09', limit: 20, offset: 0, tz: 0 }); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getMonthlyRecurringRevenue( 'USD', '2022-01', '2022-03', limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a renewal sales report operationId: GetRenewalSaleReport x-sdk-operation-name: getRenewalSales description: Retrieves a renewal sales report. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-01 - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-02 - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Report 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/RenewalSales' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { periodStart: '2017-09', periodEnd: '2017-09', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getRenewalSales(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getRenewalSales( '2022-01', '2022-03', limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a retention percentage report operationId: GetRetentionPercentageReport x-sdk-operation-name: getRetentionPercentage description: Retrieves a retention percentage report. parameters: - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - day - month - quarter - year - name: aggregationPeriod in: query description: Report aggregation period. required: true schema: type: string enum: - day - month - quarter - year - cycle - name: includeSwitchedSubscriptions in: query description: Specifies whether to include switched subscriptions. schema: type: string enum: - 'true' - 'false' - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionCriteria' responses: '200': description: Report 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/ReportRetentionPercentage' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { aggregationField: 'month', aggregationPeriod: 'month', periodStart: '2016-09-01T00:00:00Z', periodEnd: '2017-09-01T00:00:00Z', includeSwitchedSubscriptions: false, limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getRetentionPercentage(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getRetentionPercentage( 'day', 'month', new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a retention value report operationId: GetRetentionValueReport x-sdk-operation-name: getRetentionValue description: >- Retrieves the total number of new customers for each aggregation period and the corresponding value for each customer over time. parameters: - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - day - month - quarter - year - leadsSource - leadsMedium - leadsCampaign - leadsContent - leadsTerm - leadsAffiliate - leadsSubAffiliate - leadsSalesAgent - bin - name: aggregationPeriod in: query description: Report aggregation period. required: true schema: type: string enum: - day - month - quarter - year - name: includeRefunds in: query description: Specifies whether to include refunds. schema: type: string enum: - 'true' - 'false' - name: includeDisputes in: query description: Specifies whether to include disputes. schema: type: string enum: - 'true' - 'false' - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionCriteria' responses: '200': description: Report 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/ReportRetentionValue' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { aggregationField: 'month', aggregationPeriod: 'month', periodStart: '2016-09-01T00:00:00Z', periodEnd: '2017-09-01T00:00:00Z', includeRefunds: true, includeDisputes: false, limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getRetentionValue(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getRetentionValue( 'month', 'day', new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a revenue waterfall report operationId: GetRevenueWaterfallReport x-sdk-operation-name: getRevenueWaterfall description: >- Retrieves a revenue waterfall report. Use revenue waterfall reports to view revenue that is recognized up to a given month. Revenue waterfall reports contain information on booked revenue, recognized revenue for the months in the issued period, and the remaining revenue up to the specified month. parameters: - name: currency in: query description: Revenue currency. required: true schema: $ref: '#/components/schemas/CurrencyCode' - name: issuedFrom in: query description: Date from which revenue invoice is issued. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-01 - name: issuedTo in: query description: Date to which revenue invoice is issued. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-04 - name: recognizedTo in: query description: Month up to which revenue is recognized. required: true schema: type: string pattern: ^\d{4}-\d{2}$ example: 2022-04 responses: '200': description: Report retrieved. content: application/json: schema: $ref: '#/components/schemas/ReportRevenueWaterfall' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const report = await api.reports.getRevenueWaterfall({ issuedFrom: '2016-09', issuedTo: '2017-09', recognizedTo: '2017-09', limit: 20, offset: 0, tz: 0 }); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getRevenueWaterfall( 'USD', '2022-01', '2022-02', '2022-02', ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a revenue audit report operationId: GetRevenueAuditReport x-sdk-operation-name: getRevenueAudit description: >- Retrieves a revenue audit report which contains detailed journal entries. A revenue audit report is a combination of a granular [revenue waterfall](https://www.rebilly.com/docs/data-tables/revenue-recognition/#revenue-waterfall) and a journal report, which describes revenue per account. Use [`filter`](https://www.rebilly.com/docs/dev-docs/search-filters) `limit` and `offset` parameters to restrict the output. security: - SecretApiKey: [] - JWT: [] parameters: - $ref: '#/components/parameters/collectionFilter' - $ref: '#/components/parameters/collectionSort' - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Revenue audit report 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/RevenueEntry' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getRevenueAudit(limit: 5); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a subscription cancellation report operationId: GetSubscriptionCancellationReport x-sdk-operation-name: getSubscriptionCancellation description: Retrieves a subscription cancellation report. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - planId - websiteId - canceledBy - cancelCategory - leadSource.source - leadSource.medium - leadSource.campaign - leadSource.content - leadSource.term - leadSource.affiliate - leadSource.subAffiliate - leadSource.salesAgent - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: Report 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/SubscriptionCancellationReport' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: >- const params = { aggregationField: 'day', periodStart: '2017-09-21T00:00:00Z', periodEnd: '2017-09-28T23:59:59Z', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getSubscriptionCancellation(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getSubscriptionCancellation( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), 'leadSource.source', limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a subscription renewal report operationId: GetSubscriptionRenewalReport x-sdk-operation-name: getSubscriptionRenewal description: Retrieves a subscription renewal report. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Report 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/SubscriptionRenewal' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { periodStart: '2017-09-21T00:00:00Z', periodEnd: '2017-09-28T23:59:59Z', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getSubscriptionRenewal(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getSubscriptionRenewal( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a tax report operationId: GetTaxReport x-sdk-operation-name: getTax description: |- Retrieves a tax report, which displays taxes collected on sales. Tax amounts are aggregated by state and municipality. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - name: accountingMethod in: query description: Accounting method to use when generating the report. required: true schema: type: string enum: - cash - accrual - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Report 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/ReportTax' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: | const params = { periodStart: '2023-01-01 00:00-00', periodEnd: '2023-03-31 23:59:59', accountingMethod: 'cash', limit: 20, offset: 0, }; const report = await api.reports.getTax(params); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a time series transactions report operationId: GetTimeSeriesTransactionReport x-sdk-operation-name: getTimeSeriesTransaction description: Retrieves a transactions report that is aggregated by time periods. parameters: - name: type in: query description: Type of report aggregation. required: true schema: type: string enum: - count - amount - approval-rate - incomplete-rate - name: subaggregate in: query description: Report subaggregate. required: true schema: type: string enum: - website - gateway-account - currency - plan - leads.source - leads.medium - leads.campaign - leads.content - leads.term - leads.affiliate - leads.subaffiliate - leads.sales-agent - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Report 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/TimeSeriesTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { periodStart: '2017-08-29T00:00:00Z', periodEnd: '2017-09-29T23:59:59Z', type: 'count', subaggregate: 'gateway-account', limit: 20, offset: 0 }; const report = await api.reports.getTimeSeriesTransaction(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getTimeSeriesTransaction( 'approval-rate', 'leads.sales-agent', new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a transaction time dispute report operationId: GetTransactionTimeDisputeReport x-sdk-operation-name: getTransactionsTimeDispute description: >- Retrieves a dispute delay in days report. This report describes the amount of time between a transaction and a dispute. parameters: - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - website - processor - currency - bin - country - rebillNumber - retryNumber - gatewayAccount - transactionAmount - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: Report 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/ReportDisputeDelays' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { aggregationField: 'website', periodStart: '2017-09-22T00:00:00Z', periodEnd: '2017-09-29T23:59:59Z', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getTransactionsTimeDispute(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getTransactionsTimeDispute( 'rebillNumber', new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), limit: 5, ); /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). get: x-badges: - name: Experimental x-products: - Reports tags: - Reports summary: Retrieve a transactions report operationId: GetTransactionReport x-sdk-operation-name: getTransactions description: Retrieves a transactions report. parameters: - name: periodStart in: query description: Date and time when the report starts. required: true schema: type: string format: date-time - name: periodEnd in: query description: Date and time when the report ends. required: true schema: type: string format: date-time - name: aggregationField in: query description: Report aggregation field. required: true schema: type: string enum: - website - currency - bin - rebillNumber - transactionResult - transactionType - gatewayAccount - gateway - retryNumber - plan - cardBrand - leadSource.source - leadSource.medium - leadSource.campaign - leadSource.content - leadSource.term - leadSource.affiliate - leadSource.subAffiliate - leadSource.salesAgent - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' - $ref: '#/components/parameters/collectionFilter' responses: '200': description: Report 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/ReportTransactions' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: JavaScript source: |- const params = { aggregationField: 'website', periodStart: '2017-09-22T00:00:00Z', periodEnd: '2017-09-29T23:59:59Z', limit: 20, offset: 0, tz: 0 }; const report = await api.reports.getTransactions(params); - lang: PHP source: |- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->reports()->getTransactions( new \DateTimeImmutable('2022-01-01'), new \DateTimeImmutable('now'), 'leadSource.subAffiliate', limit: 5, ); /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 get: x-badges: - name: Experimental x-products: - Reports tags: - Orders summary: Retrieve subscription order summary metrics operationId: GetSubscriptionSummaryMetricReport x-sdk-operation-name: getSubscriptionSummaryMetrics description: Retrieves summary metrics for a subscription order with a specified ID. responses: '200': description: Metrics retrieved. content: application/json: schema: $ref: '#/components/schemas/SubscriptionSummaryMetrics' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' x-codeSamples: - lang: PHP source: >- $service = new \Rebilly\Sdk\ReportsService($client); $report = $service->subscriptions()->getSubscriptionSummaryMetrics('subscriptionId'); /storefront/account: get: x-products: - Storefront tags: - Storefront account summary: Retrieve Account operationId: StorefrontGetAccount x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieve account. parameters: - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Account retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' patch: x-products: - Storefront tags: - Storefront account summary: Update Account operationId: StorefrontPatchAccount x-sdk-operation-name: update security: - CustomerJWT: [] description: Register account. requestBody: content: application/json: schema: allOf: - $ref: '#/components/schemas/StorefrontAccount' responses: '200': description: Account updated. content: application/json: schema: $ref: '#/components/schemas/StorefrontAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/account/forgot-password: post: x-products: - Storefront tags: - Storefront account summary: Request a password reset operationId: StorefrontPostForgotPassword x-sdk-operation-name: requestPasswordReset security: - PublishableApiKey: [] description: Sends an email with a link containing a token to reset a user password. requestBody: content: application/json: schema: type: object required: - username properties: username: description: >- Username of the account to which a verification email is sent. type: string responses: '204': description: Email sent. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/account/password: patch: x-products: - Storefront tags: - Storefront account summary: Change an account password operationId: StorefrontPatchAccountPassword x-sdk-operation-name: changePassword security: - CustomerJWT: [] description: Changes an account password. requestBody: $ref: '#/components/requestBodies/PatchAccountPassword' responses: '200': description: Account password updated. content: application/json: schema: $ref: '#/components/schemas/StorefrontAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/account/resend-verification: post: x-products: - Storefront tags: - Storefront account summary: Resend email verification operationId: StorefrontPostAccountResendVerification x-sdk-operation-name: resendEmailVerification security: - PublishableApiKey: [] description: Resends a verification email for an account with a specified username. requestBody: content: application/json: schema: type: object required: - username properties: username: description: >- Username of the account to which a verification email is sent. type: string responses: '204': description: Email sent. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/account/reset-password/{token}: parameters: - $ref: '#/components/parameters/token' post: x-products: - Storefront tags: - Storefront account summary: Finish password reset operationId: StorefrontPostResetPassword x-sdk-operation-name: confirmPasswordReset security: - PublishableApiKey: [] description: Resets a user's account password. requestBody: content: application/json: schema: type: object required: - newPassword properties: newPassword: type: string example: newP@$$w0rd description: New user account password. responses: '201': description: Password reset. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/account/verification/{token}: parameters: - $ref: '#/components/parameters/token' post: x-products: - Storefront tags: - Storefront account summary: Verify an account email operationId: StorefrontPostAccountVerification x-sdk-operation-name: verifyEmail security: - PublishableApiKey: [] description: Verifies an account email. responses: '204': description: Account verified. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/billing-portals/{slug}: parameters: - name: slug in: path description: Resource slug. required: true schema: type: string maxLength: 100 pattern: ^[@~\-\.\w]+$ get: x-products: - Storefront tags: - Storefront billing portals summary: Retrieve a billing portal operationId: StorefrontGetBillingPortal x-sdk-operation-name: get description: Retrieve a billing portal with a specified slug. security: [] responses: '200': description: Billing portal retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontBillingPortal' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/experimental/billing-portals/{slug}: parameters: - name: slug in: path description: Resource slug. required: true schema: type: string maxLength: 100 pattern: ^[@~\-\.\w]+$ get: x-products: - Storefront tags: - Storefront billing portals summary: Retrieve a billing portal operationId: StorefrontGetExperimentalBillingPortal x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieve a billing portal with a specified slug. responses: '200': description: Billing portal retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontBillingPortal' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/deposit-strategies/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront x-badges: - name: Experimental tags: - Storefront deposits summary: Retrieve a deposit strategy operationId: StorefrontGetDepositStrategy x-sdk-operation-name: get security: - CustomerJWT: [] 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' /storefront/deposit-requests/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront x-badges: - name: Experimental tags: - Storefront deposits summary: Retrieve a deposit request operationId: StorefrontGetDepositRequest x-sdk-operation-name: get security: - CustomerJWT: [] 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' /storefront/deposit: post: x-products: - Storefront x-badges: - name: Experimental tags: - Storefront deposits summary: Create a deposit operationId: StorefrontPostDeposit x-sdk-operation-name: create security: - CustomerJWT: [] description: Creates a deposit transaction. requestBody: $ref: '#/components/requestBodies/PostDeposit' responses: '201': description: Transaction created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /storefront/checkout-forms/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront checkout forms summary: Retrieve a checkout form operationId: StorefrontGetCheckoutForm x-sdk-operation-name: get description: Retrieves a checkout form with a specified ID. security: [] responses: '200': description: Checkout form retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontCheckoutForm' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/custom-fields/{resource}: parameters: - $ref: '#/components/parameters/storefrontCustomFieldResource' get: x-products: - Storefront tags: - Storefront custom fields summary: Retrieve custom fields operationId: StorefrontGetCustomFieldCollection x-sdk-operation-name: getAll security: - CustomerJWT: [] 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' /storefront/invoices: get: x-products: - Storefront tags: - Storefront invoices summary: Retrieve invoices operationId: StorefrontGetInvoiceCollection x-sdk-operation-name: getAll security: - CustomerJWT: [] description: Retrieve 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: 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/StorefrontInvoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /storefront/invoices/{id}: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/collectionExpand' get: x-products: - Storefront tags: - Storefront invoices summary: Retrieve a Invoice operationId: StorefrontGetInvoice x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieves an invoice with a specified ID. responses: '200': description: Invoice retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontInvoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /storefront/orders/{id}/upcoming-invoice: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/collectionExpand' get: x-products: - Storefront tags: - Storefront orders summary: Retrieve an upcoming order invoice operationId: StorefrontGetOrderUpcomingInvoice x-sdk-operation-name: getUpcomingInvoice security: - CustomerJWT: [] description: >- Retrieves an upcoming invoice for a specified order. An upcoming invoice is an invoice that has not been issued. It functions as a preview of the next invoice for the order. For more information, see [Invoices](https://www.rebilly.com/docs/dev-docs/invoices/). responses: '200': description: Upcoming invoice retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontUpcomingInvoice' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/kyc-documents: get: x-products: - Storefront tags: - Storefront KYC documents summary: Retrieve KYC documents operationId: StorefrontGetKycDocumentCollection x-sdk-operation-name: getAll security: - CustomerJWT: [] description: Retrieves a list of KYC documents. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' 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/StorefrontKycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Storefront tags: - Storefront KYC documents summary: Create a KYC document operationId: StorefrontPostKycDocument x-sdk-operation-name: create security: - CustomerJWT: [] description: Creates a KYC document. requestBody: content: application/json: schema: $ref: '#/components/schemas/StorefrontKycDocument' 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/StorefrontKycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/kyc-documents/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront KYC documents summary: Retrieve a KYC Document operationId: StorefrontGetKycDocument x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieves a KYC document with a specified ID. responses: '200': description: KYC document retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontKycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' patch: x-products: - Storefront tags: - Storefront KYC documents summary: Update a KYC document operationId: StorefrontPatchKycDocument x-sdk-operation-name: update security: - CustomerJWT: [] description: Updates a KYC document with a specified ID. requestBody: content: application/json: schema: $ref: '#/components/schemas/StorefrontKycDocument' description: KYC document resource. required: true responses: '200': description: KYC document updated. content: application/json: schema: $ref: '#/components/schemas/StorefrontKycDocument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /storefront/kyc-requests/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront KYC documents summary: Retrieve a KYC request operationId: StorefrontGetKycRequest x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieves a KYC request with a specified ID. parameters: - $ref: '#/components/parameters/collectionExpand' responses: '200': description: KYC request retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontKycRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/kyc-liveness-sessions: post: x-products: - Storefront tags: - Storefront KYC documents summary: Create a KYC liveness session operationId: StorefrontPostKycLivenessSession x-sdk-operation-name: create description: Creates a KYC liveness session. security: - CustomerJWT: [] requestBody: $ref: '#/components/requestBodies/PostKycLivenessSession' description: KYC request resource. required: true responses: '201': description: KYC liveness session created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontKycLivenessSession' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/kyc-liveness-sessions/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront KYC documents summary: Retrieve a KYC liveness session operationId: StorefrontGetKycLivenessSession x-sdk-operation-name: get description: Retrieves a KYC liveness session with a specified ID. security: - CustomerJWT: [] responses: '200': description: KYC liveness session retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontKycLivenessSession' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/kyc-liveness-sessions/{id}/finish: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Storefront tags: - Storefront KYC documents summary: Finish KYC liveness session operationId: StorefrontPostKycLivenessSessionFinish x-sdk-operation-name: finish description: Attempt to finalize a pending KYC liveness session. security: - CustomerJWT: [] responses: '200': description: KYC liveness session finalization attempt successful. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontKycLivenessSession' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /storefront/login: post: x-products: - Storefront tags: - Storefront account summary: Create a session with username and password operationId: StorefrontPostLogin x-sdk-operation-name: login security: - PublishableApiKey: [] description: Creates a session with a specified username and password. requestBody: content: application/json: schema: type: object required: - username - password properties: username: description: User's username. type: string password: description: User's current password. type: string responses: '201': description: Logged into account. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontCustomerJWT' '401': $ref: '#/components/responses/Unauthorized' /storefront/logout: post: x-products: - Storefront tags: - Storefront account summary: Destroys the user's current session operationId: StorefrontPostLogout x-sdk-operation-name: logout security: - CustomerJWT: [] description: Destroys the user's current session. responses: '204': description: Account logged out. '401': $ref: '#/components/responses/Unauthorized' /storefront/orders: get: x-products: - Storefront tags: - Storefront orders summary: Retrieve orders operationId: StorefrontGetOrderCollection x-sdk-operation-name: getAll security: - CustomerJWT: [] description: Retrieve 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/collectionExpand' responses: '200': description: List of 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/StorefrontOrder' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /storefront/orders/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront orders summary: Retrieve an order operationId: StorefrontGetOrder x-sdk-operation-name: get security: - CustomerJWT: [] parameters: - $ref: '#/components/parameters/collectionExpand' description: Retrieve an order with a specified ID. responses: '200': description: Order retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontOrder' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' patch: x-products: - Storefront tags: - Storefront orders summary: Update an order operationId: StorefrontPatchOrder x-sdk-operation-name: update security: - CustomerJWT: [] description: Updates an order with a specified ID. requestBody: $ref: '#/components/requestBodies/PatchOrder' responses: '200': description: Order updated. content: application/json: schema: $ref: '#/components/schemas/StorefrontOrder' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /storefront/orders/{id}/cancellation: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Storefront tags: - Storefront orders summary: Cancel an order operationId: StorefrontPostOrderCancellation x-sdk-operation-name: cancel security: - CustomerJWT: [] description: Cancels an order with a specified ID. requestBody: $ref: '#/components/requestBodies/PostOrderCancellation' responses: '201': description: Order canceled. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontOrder' '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' /storefront/orders/{id}/pause: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Storefront tags: - Storefront orders summary: Pause a subscription order operationId: StorefrontPostOrderPause x-sdk-operation-name: pause security: - CustomerJWT: [] description: Pauses an order with a specified ID. requestBody: $ref: '#/components/requestBodies/PostOrderPause' responses: '201': description: Order paused. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontOrder' '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' /storefront/subscriptions/{id}/change-items: parameters: - $ref: '#/components/parameters/resourceId' post: x-badges: - name: Experimental x-products: - Storefront tags: - Storefront orders summary: Change subscription items operationId: StorefrontPostSubscriptionItemsChange x-sdk-operation-name: changeItems security: - CustomerJWT: [] description: >- Creates a quote for requested changes to items and quantities. This operation applies the requested changes to the subscription when the quote is accepted. requestBody: content: application/json: schema: $ref: '#/components/schemas/PostSubscriptionItemsChange' description: Change items request. required: true responses: '201': description: >- Quote for requested changes to items and quantities is created and issued. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontChangeOrderItems' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /storefront/subscription-reactivations: post: x-badges: - name: Experimental x-products: - Storefront tags: - Storefront orders summary: Reactivate a subscription operationId: StorefrontPostSubscriptionReactivation x-sdk-operation-name: reactivation security: - CustomerJWT: [] description: >- Creates a quote for requested reactivation. This operation applies the requested reactivation to the subscription when the quote invoice is paid. requestBody: content: application/json: schema: $ref: '#/components/schemas/PostSubscriptionReactivation' description: Change items request. responses: '201': description: Quote for requested reactivation is created and issued. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontQuoteReactivateOrder' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /storefront/payment: post: x-products: - Storefront tags: - Storefront purchases summary: Perform a payment operationId: StorefrontPostPayment x-sdk-operation-name: payment security: - CustomerJWT: [] - PublishableApiKey: [] description: >- Performs a payment for a transaction or an invoice. If the customer's JSON Web Token (JWT) contains a `transactionId`, or `invoiceId` value, these values are used instead of the JWT value. The `transactionId` has a higher priority than the `invoiceId`. requestBody: $ref: '#/components/requestBodies/PostPayment' responses: '200': description: Transaction created. content: application/json: schema: $ref: '#/components/schemas/StorefrontTransaction' '201': description: Transaction updated. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontTransaction' '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' /storefront/payment-instruments: get: x-products: - Storefront tags: - Storefront payment instruments summary: Retrieve payment instruments operationId: StorefrontGetPaymentInstrumentCollection x-sdk-operation-name: getAll security: - CustomerJWT: [] 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' 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/StorefrontPaymentInstrument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: x-products: - Storefront tags: - Storefront payment instruments summary: Create a payment instrument operationId: StorefrontPostPaymentInstrument x-sdk-operation-name: create security: - CustomerJWT: [] - PublishableApiKey: [] description: >- Creates a payment instrument. To use this operation, you must first create a payment token using [FramePay](https://www.rebilly.com/docs/dev-docs/framepay/), then provide the token ID in this operation. requestBody: $ref: '#/components/requestBodies/StorefrontPostPaymentInstrument' responses: '201': description: Payment instrument created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontPaymentInstrument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/payment-instruments/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront payment instruments summary: Retrieve a payment instrument operationId: StorefrontGetPaymentInstrument x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieves a payment instrument with a specified ID. parameters: - $ref: '#/components/parameters/collectionLimit' - $ref: '#/components/parameters/collectionOffset' responses: '200': description: Payment instrument 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/StorefrontPaymentInstrument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' patch: x-products: - Storefront tags: - Storefront payment instruments summary: Update payment instrument operationId: StorefrontPatchPaymentInstrument x-sdk-operation-name: update security: - CustomerJWT: [] description: >- Updates the values of a payment instrument with a specified ID. Use the Framepay payment token ID to update values. For more information, see [FramePay](https://www.rebilly.com/docs/dev-docs/framepay/). requestBody: $ref: '#/components/requestBodies/StorefrontPatchPaymentInstrument' responses: '200': description: Payment instrument updated. content: application/json: schema: $ref: '#/components/schemas/StorefrontPaymentInstrument' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /storefront/payment-instruments/{id}/deactivation: parameters: - $ref: '#/components/parameters/resourceId' post: x-products: - Storefront tags: - Storefront payment instruments summary: Deactivate a payment instrument operationId: StorefrontPostPaymentInstrumentDeactivation x-sdk-operation-name: deactivate security: - CustomerJWT: [] 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/StorefrontPaymentInstrument' '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 paymentInstrument = await api.paymentInstruments.deactivate({id: 'id-to-deactivate'}); console.log(paymentInstrument.fields.status); /storefront/payment-instruments/{id}/setup: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront payment instruments summary: Retrieve a payment instrument setup transaction operationId: StorefrontGetPaymentInstrumentSetup x-sdk-operation-name: getSetupTransaction security: - CustomerJWT: [] description: >- Retrieves the latest setup transaction for a payment instrument with a specified ID. For more information, see [Transactions](#Transactions). responses: '200': description: Setup transaction retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' post: x-products: - Storefront tags: - Storefront payment instruments summary: Create a setup payment instrument transaction operationId: StorefrontPostPaymentInstrumentSetup x-sdk-operation-name: setup security: - CustomerJWT: [] description: >- Creates a setup payment instrument transaction. This operation makes the payment instrument available for further payments. Treat the response as a regular transaction. For example, approval links must be followed until the transaction is completed. requestBody: $ref: '#/components/requestBodies/SetupPaymentInstrumentRequest' responses: '201': description: Setup transaction created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /storefront/payout-requests: get: x-products: - Storefront tags: - Storefront transactions summary: Retrieve payout requests operationId: StorefrontGetPayoutRequestCollection x-sdk-operation-name: getAll security: - CustomerJWT: [] description: Retrieves a list of payout requests. 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 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/StorefrontPayoutRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /storefront/payout-requests/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront transactions summary: Retrieve a payout request operationId: StorefrontGetPayoutRequest x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieves a payout request with a specified ID. responses: '200': description: Payout request retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontPayoutRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' patch: x-products: - Storefront tags: - Storefront transactions summary: Update a payout request operationId: StorefrontPatchPayoutRequest x-sdk-operation-name: update security: - CustomerJWT: [] description: Update a payout request with a specified ID. requestBody: content: application/json: schema: type: object required: - paymentInstrumentId properties: paymentInstrumentId: type: string description: >- ID of the preferable payment instrument for the payout request. maxLength: 50 example: inst_0YVB8KPKNXCBR9EDX7JHSED75N responses: '200': description: Payout request updated. content: application/json: schema: $ref: '#/components/schemas/StorefrontPayoutRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /storefront/plans: get: x-products: - Storefront tags: - Storefront plans summary: Retrieve a list of plans operationId: StorefrontGetPlanCollection x-sdk-operation-name: getAll security: - CustomerJWT: [] 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' - $ref: '#/components/parameters/collectionExpand' 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/StorefrontPlan' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /storefront/plans/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront plans summary: Retrieve a plan operationId: StorefrontGetPlan x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieves a plan with a specified ID. parameters: - $ref: '#/components/parameters/collectionExpand' responses: '200': description: Plan retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontPlan' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/products: get: x-products: - Storefront tags: - Storefront products summary: Retrieve products operationId: StorefrontGetProductCollection x-sdk-operation-name: getAll security: - CustomerJWT: [] 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/StorefrontProduct' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /storefront/products/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront products summary: Retrieve a product operationId: StorefrontGetProduct x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieves a product with a specified ID. responses: '200': description: Product retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontProduct' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/purchase: post: x-products: - Storefront tags: - Storefront purchases summary: Make a purchase operationId: StorefrontPostPurchase x-sdk-operation-name: purchase description: >- Executes a purchase. A purchase can be completed both with and without authentication. Purchases that use a pre-created payment instrument must use authentication. To preview the purchase before completing it, use the [Purchase preview](./StorefrontPostPreviewPurchase) operation. security: - CustomerJWT: [] - PublishableApiKey: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/StorefrontPurchase' responses: '201': description: Order created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontPurchase' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/preview-purchase: post: x-badges: - name: Experimental x-products: - Storefront tags: - Storefront purchases summary: Preview a purchase operationId: StorefrontPostPreviewPurchase x-sdk-operation-name: preview description: >- Previews a purchase. Use this operation to preview a purchase before completing it. A purchase can be completed both with and without authentication. Purchases that use a pre-created payment instrument must use authentication. > **Warning:** The shipping aspect of this API is experimental and may change to support multiple shipping methods. security: - CustomerJWT: [] - PublishableApiKey: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/StorefrontOrderPreview' responses: '200': description: Purchase preview retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontOrderPreview' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/quotes/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-badges: - name: Experimental x-products: - Storefront tags: - Storefront quotes summary: Retrieve a quote operationId: StorefrontGetQuote x-sdk-operation-name: get security: - CustomerJWT: [] 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/StorefrontQuote' application/pdf: schema: $ref: '#/components/schemas/StorefrontQuote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/quotes/{id}/accept: parameters: - $ref: '#/components/parameters/resourceId' post: x-badges: - name: Experimental x-products: - Storefront tags: - Storefront quotes summary: Accept a quote operationId: StorefrontPostQuoteAcceptance x-sdk-operation-name: accept security: - CustomerJWT: [] description: Accepts an issued quote with specified ID. responses: '200': description: Quote accepted. content: application/json: schema: $ref: '#/components/schemas/StorefrontQuote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /storefront/quotes/{id}/reject: parameters: - $ref: '#/components/parameters/resourceId' post: x-badges: - name: Experimental x-products: - Storefront tags: - Storefront quotes summary: Reject a quote operationId: StorefrontPostQuoteRejection x-sdk-operation-name: reject security: - CustomerJWT: [] description: Rejects an issued quote with specified ID. responses: '200': description: Quote rejected. content: application/json: schema: $ref: '#/components/schemas/StorefrontQuote' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /storefront/ready-to-pay: post: x-products: - Storefront tags: - Storefront purchases summary: Ready to pay operationId: StorefrontPostReadyToPay x-sdk-operation-name: readyToPay security: - CustomerJWT: [] - PublishableApiKey: [] description: >- Retrieves available payment methods for a specific transaction or purchase. The order in which the payment methods are displayed to the customer must be the same as the order in the response. The list of payment methods is generated from available gateway accounts and the last matched `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/puteventrule) and [Gateway accounts](https://www.rebilly.com/catalog/all/gateway-accounts). If this operation to pay is used with a transaction-scoped JSON Web Token (JWT), all fields are ignored except `riskMetadata`. requestBody: content: application/json: schema: $ref: '#/components/schemas/ReadyToPay' responses: '200': description: Payment methods retrieved. content: application/json: schema: $ref: '#/components/schemas/ReadyToPayMethods' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/ready-to-payout: post: x-products: - Storefront tags: - Storefront purchases summary: Ready to payout operationId: StorefrontPostReadyToPayout x-sdk-operation-name: readyToPayout security: - CustomerJWT: [] description: >- Retrieves available payment methods for a specific payout amount and currency. The order in which the payment methods are displayed to the customer must be the same as the order in the response. The list of payment methods is generated from available gateway accounts and the last matched `adjust-ready-to-payout` action on the `ready-to-payout-requested` event. If no rules match for the specific request, all methods supported by the gateway accounts are sent. To invert this behavior, place all matching rules at the end of the `ready-to-payout-requested` event in the rules engine, and include an empty `paymentMethods` property for the `adjust-ready-to-payout` action. For more information, see [Update event rules](https://www.rebilly.com/catalog/all/rules/puteventrule/) and [Gateway accounts](https://www.rebilly.com/catalog/all/gateway-accounts). requestBody: content: application/json: schema: $ref: '#/components/schemas/ReadyToPayout' responses: '200': description: Payment methods retrieved. content: application/json: schema: $ref: '#/components/schemas/ReadyToPayoutMethods' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/register: post: x-products: - Storefront tags: - Storefront account summary: Register Account operationId: StorefrontPostRegister x-sdk-operation-name: register security: - PublishableApiKey: [] description: Register account. requestBody: $ref: '#/components/requestBodies/PostRegister' responses: '201': description: Account registered. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontAccount' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationError' /storefront/subscriptions: post: x-badges: - name: Experimental x-products: - Storefront tags: - Storefront orders summary: Create a subscription operationId: StorefrontPostSubscription x-sdk-operation-name: create description: Creates a subscription order in a billing portal. security: - CustomerJWT: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/PostSubscription' description: Create an order request. required: true responses: '201': description: Subscription created. headers: Location: $ref: '#/components/headers/Location' content: application/json: schema: $ref: '#/components/schemas/StorefrontOrder' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationError' /storefront/transactions: get: x-products: - Storefront tags: - Storefront transactions summary: Retrieve transactions operationId: StorefrontGetTransactionCollection x-sdk-operation-name: getAll security: - CustomerJWT: [] description: Retrieve 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' responses: '200': description: 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/StorefrontTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /storefront/transactions/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront transactions summary: Retrieve a transaction operationId: StorefrontGetTransaction x-sdk-operation-name: get security: - CustomerJWT: [] description: Retrieves a transaction with a specified ID. responses: '200': description: Transaction retrieved. content: application/json: schema: $ref: '#/components/schemas/StorefrontTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/transactions/{id}/{token}/continue: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/token' post: x-products: - Storefront tags: - Storefront transactions summary: Finish a transaction KYC verification operationId: StorefrontPostKycRequestContinue x-sdk-operation-name: finishKyc security: - CustomerJWT: [] description: >- Process a KYC interrupted transaction with a specified ID. Use this operation to process the transaction after all documents of the KYC request with a specified token have been uploaded. responses: '200': description: KYC verification finished. content: application/json: schema: $ref: '#/components/schemas/StorefrontTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /storefront/transactions/{id}/{token}/bypass: parameters: - $ref: '#/components/parameters/resourceId' - $ref: '#/components/parameters/token' post: x-products: - Storefront tags: - Storefront transactions summary: Skip a transaction KYC verification operationId: StorefrontPostKycRequestBypass x-sdk-operation-name: skipKyc security: - CustomerJWT: [] description: >- Skips an optional KYC request with a specified token, for a transaction with a specified ID. Use this operation to skip a KYC request that has been marked as optional in a transaction flow, so that you can further process the transaction. responses: '200': description: KYC verification skipped. content: application/json: schema: $ref: '#/components/schemas/StorefrontTransaction' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /storefront/websites/{id}: parameters: - $ref: '#/components/parameters/resourceId' get: x-products: - Storefront tags: - Storefront websites summary: Retrieve a website operationId: StorefrontGetWebsite x-sdk-operation-name: get security: - CustomerJWT: [] description: |- Retrieves a website with a specified ID. Use this operation to find the website name, logo, or more. responses: '200': description: Website retrieved. content: application/json: schema: $ref: '#/components/schemas/Website' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /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: application-instance-disabled: post: summary: Application instance was disabled operationId: application-instance-disabled x-products: - Users tags: - Application owners requestBody: $ref: '#/components/requestBodies/ApplicationInstanceDisabled' responses: 2xx: description: Returns any 2xx status to indicate that data is received. application-instance-enabled: post: summary: Application instance was enabled operationId: application-instance-enabled x-products: - Users tags: - Application owners requestBody: $ref: '#/components/requestBodies/ApplicationInstanceEnabled' responses: 2xx: description: Returns any 2xx status to indicate that data is received. 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. balance-transaction-settled: post: summary: Balance transaction settled operationId: balance-transaction-settled tags: - Balance transactions x-products: - Users requestBody: $ref: '#/components/requestBodies/InvoiceRevenueRecognized' 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-downtime-ended: post: summary: Gateway account downtime ended operationId: gateway-account-downtime-ended x-products: - Users tags: - Gateway accounts requestBody: $ref: '#/components/requestBodies/GatewayAccountWebhook' responses: 2xx: description: Returns any 2xx status to indicate that data is received. gateway-account-downtime-started: post: summary: Gateway account downtime started operationId: gateway-account-downtime-started x-products: - Users tags: - Gateway accounts requestBody: $ref: '#/components/requestBodies/GatewayAccountWebhook' responses: 2XX: description: Returns any 2xx status to indicate that data is received. gateway-account-limit-reached: post: summary: Gateway account limit reached operationId: gateway-account-limit-reached x-products: - Users tags: - Gateway accounts requestBody: $ref: '#/components/requestBodies/GatewayAccountAndGatewayAccountLimit' 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. data-export-completed: post: summary: Data export completed operationId: data-export-completed x-products: - Reports tags: - Data exports requestBody: $ref: '#/components/requestBodies/DataExportWebhook' 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.