openapi: 3.1.0 info: title: 1Password Partnership API description: The 1Password Partnership API enables partners to manage the provisioning and deprovisioning of third-party partner billing accounts for customers. Partners can create billing accounts, retrieve account details, update account expiration dates, and delete accounts. The API supports partner billing accounts for 1Password individual and family accounts. Team and business accounts are not supported through this API. version: 1.0.0 contact: name: 1Password Support url: https://support.1password.com/ termsOfService: https://1password.com/legal/terms-of-service/ externalDocs: description: 1Password Partnership API Reference url: https://developer.1password.com/docs/partnership-api/reference/ servers: - url: https://billing.b5test.eu/api/v1 description: 1Password Partnership API server. tags: - name: Accounts description: Operations for managing partner billing accounts for customers, including creating, retrieving, updating, and deleting billing accounts. security: - bearerAuth: [] paths: /partners/accounts: post: operationId: createPartnerAccount summary: 1Password Create a Partner Billing Account description: Creates a new third-party partner billing account for a customer through the partner billing service. Returns the activation token used to create a partner billing link for the customer to complete provisioning. Append the activation token to a 1Password partnership redemption link to create the customer's partner billing link. tags: - Accounts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAccountRequest' responses: '201': description: Successfully created partner billing account content: application/json: schema: $ref: '#/components/schemas/Account' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '409': description: A billing account already exists for the specified account UID. content: application/json: schema: $ref: '#/components/schemas/Error' x-microcks-operation: delay: 0 dispatcher: FALLBACK /partners/accounts/{accountUid}: get: operationId: getPartnerAccount summary: 1Password Get Partner Billing Account Details description: Returns details about a customer's partner billing account, including the account type, domain, status, activation token, and scheduled end date if applicable. tags: - Accounts parameters: - $ref: '#/components/parameters/accountUidParam' responses: '200': description: Successfully retrieved account details content: application/json: schema: $ref: '#/components/schemas/Account' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updatePartnerAccount summary: 1Password Update a Partner Billing Account description: Updates the date and time a customer's billing account is scheduled to be removed from the partner billing service. Use this endpoint to extend or shorten the billing period for a customer. tags: - Accounts parameters: - $ref: '#/components/parameters/accountUidParam' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateAccountRequest' responses: '200': description: Successfully updated account content: application/json: schema: $ref: '#/components/schemas/Account' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deletePartnerAccount summary: 1Password Delete a Partner Billing Account description: Deactivates and removes a customer's third-party billing account from the partner billing service. After deletion, GET requests will no longer return account information for the customer account UID. tags: - Accounts parameters: - $ref: '#/components/parameters/accountUidParam' responses: '204': description: Successfully deleted the partner billing account '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: bearerAuth: type: http scheme: bearer description: A partnership API bearer token provided by 1Password. Each request must include this token in the Authorization header. parameters: accountUidParam: name: accountUid in: path description: The unique identifier for the customer's billing account, supplied by the partner. Can be up to 200 characters long with alphanumeric characters (A-Z, a-z, 0-9), hyphens, and periods. required: true schema: type: string maxLength: 200 pattern: ^[A-Za-z0-9.\-]+$ responses: BadRequest: description: Bad request due to invalid input content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication credentials are missing or invalid content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found content: application/json: schema: $ref: '#/components/schemas/Error' schemas: CreateAccountRequest: type: object description: The request body for creating a new partner billing account. required: - account_uid - account_type - domain properties: account_uid: type: string description: The unique identifier for the customer's billing account, supplied by the partner. Can be up to 200 characters with alphanumeric characters, hyphens, and periods. maxLength: 200 pattern: ^[A-Za-z0-9.\-]+$ account_type: type: string description: The 1Password account type for the customer. Individual (I) or Family (F). Team and business accounts are not supported. enum: - I - F domain: type: string description: The domain the customer can use for their new or existing 1Password account. ends_at: type: string format: date-time description: The optional date and time to remove the customer's account from the partner billing service. ISO 8601 format. UpdateAccountRequest: type: object description: The request body for updating a partner billing account. properties: ends_at: type: string format: date-time description: The date and time to schedule removal of the customer's billing account from the partner billing service. ISO 8601 format. Account: type: object description: Represents a partner billing account for a 1Password customer. properties: account_uid: type: string description: The unique identifier for the customer's billing account. account_type: type: string description: The 1Password account type. I for individual, F for family. enum: - I - F domain: type: string description: The domain associated with the customer's 1Password account. status: type: string description: The current status of the partner billing account. enum: - entitled - provisioned - activated - suspended - deprovisioned activation_token: type: string description: The unique activation token used to link the customer's 1Password account with their partner billing account. Append this to a 1Password partnership redemption link. ends_at: type: string format: date-time description: The date and time the customer's account is scheduled to be removed from the partner billing service. created_at: type: string format: date-time description: The date and time the billing account was created. Error: type: object description: Represents an error response from the Partnership API. properties: status: type: integer description: The HTTP status code. message: type: string description: A human-readable error message. code: type: string description: A machine-readable error code.