1Password Partnership API

You can use the 1Password Partnership API to manage the provisioning and deprovisioning of third-party partner billing accounts for your customers. The API supports partner billing accounts for 1Password individual and family accounts. The Partnership API does not support 1Password team or business accounts.

OpenAPI Specification

1password-partnership-openapi.yml Raw ↑
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.