401GO Beneficiaries API

The Beneficiaries API from 401GO — 2 operation(s) for beneficiaries.

OpenAPI Specification

401go-beneficiaries-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 401GO Beneficiaries API
  version: 1.0.0
tags:
- name: Beneficiaries
paths:
  /participants/{participant_id}/beneficiaries/:
    get:
      operationId: participants_beneficiaries_list
      description: Get a list of a participant's beneficiaries.
      parameters:
      - name: page
        required: false
        in: query
        description: A page number within the paginated result set.
        schema:
          type: integer
      - name: page_size
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - in: path
        name: participant_id
        schema:
          type: string
        required: true
      tags:
      - Beneficiaries
      security:
      - oauth2: []
      - knoxApiToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                required:
                - count
                - results
                properties:
                  count:
                    type: integer
                    example: 123
                  next:
                    type:
                    - string
                    - 'null'
                    format: uri
                    example: http://api.example.org/accounts/?page=4
                  previous:
                    type:
                    - string
                    - 'null'
                    format: uri
                    example: http://api.example.org/accounts/?page=2
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        object_id:
                          type:
                          - string
                          - 'null'
                        name:
                          type: string
                          maxLength: 200
                        email:
                          type: string
                          format: email
                          maxLength: 100
                        phone:
                          type: string
                          maxLength: 40
                        dob:
                          type: string
                          format: date
                          title: Birthday
                        percentage:
                          type: string
                          format: decimal
                          pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                          description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                      required:
                      - dob
                      - name
                      - percentage
          description: ''
        '401':
          description: 'Unauthorized: Missing or invalid authentication'
        '403':
          description: 'Forbidden: Insufficient permissions or scopes'
    post:
      operationId: participants_beneficiaries_create
      description: 'Create a single or multiple beneficiaries for a participant.

        If a list is provided, either all or none will be created.'
      parameters:
      - in: header
        name: Idempotent-Key
        schema:
          type: string
        description: Supply a key to safely retry requests without the server duplicating the action.
          Will be remembered for 24 hours.
      - in: path
        name: participant_id
        schema:
          type: string
        required: true
      tags:
      - Beneficiaries
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - type: object
                properties:
                  object_id:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                    minLength: 1
                    maxLength: 200
                  email:
                    type: string
                    format: email
                    maxLength: 100
                  phone:
                    type: string
                    maxLength: 40
                  dob:
                    type: string
                    format: date
                    title: Birthday
                  percentage:
                    type: string
                    format: decimal
                    pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                    description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                required:
                - dob
                - name
                - percentage
              - type: array
                items:
                  type: object
                  properties:
                    object_id:
                      type:
                      - string
                      - 'null'
                    name:
                      type: string
                      minLength: 1
                      maxLength: 200
                    email:
                      type: string
                      format: email
                      maxLength: 100
                    phone:
                      type: string
                      maxLength: 40
                    dob:
                      type: string
                      format: date
                      title: Birthday
                    percentage:
                      type: string
                      format: decimal
                      pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                      description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                  required:
                  - dob
                  - name
                  - percentage
          application/x-www-form-urlencoded:
            schema:
              oneOf:
              - type: object
                properties:
                  object_id:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                    minLength: 1
                    maxLength: 200
                  email:
                    type: string
                    format: email
                    maxLength: 100
                  phone:
                    type: string
                    maxLength: 40
                  dob:
                    type: string
                    format: date
                    title: Birthday
                  percentage:
                    type: string
                    format: decimal
                    pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                    description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                required:
                - dob
                - name
                - percentage
              - type: array
                items:
                  type: object
                  properties:
                    object_id:
                      type:
                      - string
                      - 'null'
                    name:
                      type: string
                      minLength: 1
                      maxLength: 200
                    email:
                      type: string
                      format: email
                      maxLength: 100
                    phone:
                      type: string
                      maxLength: 40
                    dob:
                      type: string
                      format: date
                      title: Birthday
                    percentage:
                      type: string
                      format: decimal
                      pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                      description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                  required:
                  - dob
                  - name
                  - percentage
          multipart/form-data:
            schema:
              oneOf:
              - type: object
                properties:
                  object_id:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                    minLength: 1
                    maxLength: 200
                  email:
                    type: string
                    format: email
                    maxLength: 100
                  phone:
                    type: string
                    maxLength: 40
                  dob:
                    type: string
                    format: date
                    title: Birthday
                  percentage:
                    type: string
                    format: decimal
                    pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                    description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                required:
                - dob
                - name
                - percentage
              - type: array
                items:
                  type: object
                  properties:
                    object_id:
                      type:
                      - string
                      - 'null'
                    name:
                      type: string
                      minLength: 1
                      maxLength: 200
                    email:
                      type: string
                      format: email
                      maxLength: 100
                    phone:
                      type: string
                      maxLength: 40
                    dob:
                      type: string
                      format: date
                      title: Birthday
                    percentage:
                      type: string
                      format: decimal
                      pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                      description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                  required:
                  - dob
                  - name
                  - percentage
      security:
      - oauth2: []
      - knoxApiToken: []
      responses:
        '201':
          content:
            application/json:
              schema:
                oneOf:
                - type: object
                  properties:
                    object_id:
                      type:
                      - string
                      - 'null'
                    name:
                      type: string
                      maxLength: 200
                    email:
                      type: string
                      format: email
                      maxLength: 100
                    phone:
                      type: string
                      maxLength: 40
                    dob:
                      type: string
                      format: date
                      title: Birthday
                    percentage:
                      type: string
                      format: decimal
                      pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                      description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                  required:
                  - dob
                  - name
                  - percentage
                - type: array
                  items:
                    type: object
                    properties:
                      object_id:
                        type:
                        - string
                        - 'null'
                      name:
                        type: string
                        maxLength: 200
                      email:
                        type: string
                        format: email
                        maxLength: 100
                      phone:
                        type: string
                        maxLength: 40
                      dob:
                        type: string
                        format: date
                        title: Birthday
                      percentage:
                        type: string
                        format: decimal
                        pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                        description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                    required:
                    - dob
                    - name
                    - percentage
          description: ''
        '400':
          description: 'Bad Request: Invalid beneficiary data'
        '401':
          description: 'Unauthorized: Missing or invalid authentication'
        '403':
          description: 'Forbidden: Insufficient permissions or scopes'
    patch:
      operationId: participants_beneficiaries_partial_update
      description: 'Partially update a list of beneficiaries. Each entry must include the `object_id`.
        The provided list must

        be a subset of the participant''s beneficiaries. Validates every entry first, then either applies
        all or none of

        them.'
      parameters:
      - in: path
        name: participant_id
        schema:
          type: string
        required: true
      tags:
      - Beneficiaries
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                object_id:
                  type:
                  - string
                  - 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  format: email
                  maxLength: 100
                phone:
                  type: string
                  maxLength: 40
                dob:
                  type: string
                  format: date
                  title: Birthday
                percentage:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                  description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                object_id:
                  type:
                  - string
                  - 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  format: email
                  maxLength: 100
                phone:
                  type: string
                  maxLength: 40
                dob:
                  type: string
                  format: date
                  title: Birthday
                percentage:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                  description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
          multipart/form-data:
            schema:
              type: object
              properties:
                object_id:
                  type:
                  - string
                  - 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  format: email
                  maxLength: 100
                phone:
                  type: string
                  maxLength: 40
                dob:
                  type: string
                  format: date
                  title: Birthday
                percentage:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                  description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
      security:
      - oauth2: []
      - knoxApiToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  object_id:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                    maxLength: 200
                  email:
                    type: string
                    format: email
                    maxLength: 100
                  phone:
                    type: string
                    maxLength: 40
                  dob:
                    type: string
                    format: date
                    title: Birthday
                  percentage:
                    type: string
                    format: decimal
                    pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                    description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                required:
                - dob
                - name
                - percentage
          description: ''
  /participants/{participant_id}/beneficiaries/{beneficiary_id}/:
    get:
      operationId: participants_beneficiaries_retrieve
      description: Retrieve a specific beneficiary.
      parameters:
      - in: path
        name: beneficiary_id
        schema:
          type: string
        required: true
      - in: path
        name: participant_id
        schema:
          type: string
        required: true
      tags:
      - Beneficiaries
      security:
      - oauth2: []
      - knoxApiToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  object_id:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                    maxLength: 200
                  email:
                    type: string
                    format: email
                    maxLength: 100
                  phone:
                    type: string
                    maxLength: 40
                  dob:
                    type: string
                    format: date
                    title: Birthday
                  percentage:
                    type: string
                    format: decimal
                    pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                    description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                required:
                - dob
                - name
                - percentage
          description: ''
        '401':
          description: 'Unauthorized: Missing or invalid authentication'
        '403':
          description: 'Forbidden: Insufficient permissions or scopes'
    put:
      operationId: participants_beneficiaries_update
      description: Fully update a specific beneficiary.
      parameters:
      - in: path
        name: beneficiary_id
        schema:
          type: string
        required: true
      - in: path
        name: participant_id
        schema:
          type: string
        required: true
      tags:
      - Beneficiaries
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                object_id:
                  type:
                  - string
                  - 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  format: email
                  maxLength: 100
                phone:
                  type: string
                  maxLength: 40
                dob:
                  type: string
                  format: date
                  title: Birthday
                percentage:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                  description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
              required:
              - dob
              - name
              - percentage
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                object_id:
                  type:
                  - string
                  - 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  format: email
                  maxLength: 100
                phone:
                  type: string
                  maxLength: 40
                dob:
                  type: string
                  format: date
                  title: Birthday
                percentage:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                  description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
              required:
              - dob
              - name
              - percentage
          multipart/form-data:
            schema:
              type: object
              properties:
                object_id:
                  type:
                  - string
                  - 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  format: email
                  maxLength: 100
                phone:
                  type: string
                  maxLength: 40
                dob:
                  type: string
                  format: date
                  title: Birthday
                percentage:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                  description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
              required:
              - dob
              - name
              - percentage
        required: true
      security:
      - oauth2: []
      - knoxApiToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  object_id:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                    maxLength: 200
                  email:
                    type: string
                    format: email
                    maxLength: 100
                  phone:
                    type: string
                    maxLength: 40
                  dob:
                    type: string
                    format: date
                    title: Birthday
                  percentage:
                    type: string
                    format: decimal
                    pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                    description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                required:
                - dob
                - name
                - percentage
          description: ''
        '400':
          description: 'Bad Request: Invalid beneficiary data'
        '401':
          description: 'Unauthorized: Missing or invalid authentication'
        '403':
          description: 'Forbidden: Insufficient permissions or scopes'
    patch:
      operationId: participants_beneficiaries_partial_update_2
      description: Partially update a single beneficiary.
      parameters:
      - in: path
        name: beneficiary_id
        schema:
          type: string
        required: true
      - in: path
        name: participant_id
        schema:
          type: string
        required: true
      tags:
      - Beneficiaries
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                object_id:
                  type:
                  - string
                  - 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  format: email
                  maxLength: 100
                phone:
                  type: string
                  maxLength: 40
                dob:
                  type: string
                  format: date
                  title: Birthday
                percentage:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                  description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                object_id:
                  type:
                  - string
                  - 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  format: email
                  maxLength: 100
                phone:
                  type: string
                  maxLength: 40
                dob:
                  type: string
                  format: date
                  title: Birthday
                percentage:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                  description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
          multipart/form-data:
            schema:
              type: object
              properties:
                object_id:
                  type:
                  - string
                  - 'null'
                name:
                  type: string
                  minLength: 1
                  maxLength: 200
                email:
                  type: string
                  format: email
                  maxLength: 100
                phone:
                  type: string
                  maxLength: 40
                dob:
                  type: string
                  format: date
                  title: Birthday
                percentage:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                  description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
      security:
      - oauth2: []
      - knoxApiToken: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
                properties:
                  object_id:
                    type:
                    - string
                    - 'null'
                  name:
                    type: string
                    maxLength: 200
                  email:
                    type: string
                    format: email
                    maxLength: 100
                  phone:
                    type: string
                    maxLength: 40
                  dob:
                    type: string
                    format: date
                    title: Birthday
                  percentage:
                    type: string
                    format: decimal
                    pattern: ^-?\d{0,3}(?:\.\d{0,0})?$
                    description: Enter a percentage, so 1% would be 1.0 and 5 bps would be 0.05
                required:
                - dob
                - name
                - percentage
          description: ''
        '400':
          description: 'Bad Request: Invalid beneficiary data'
        '401':
          description: 'Unauthorized: Missing or invalid authentication'
        '403':
          description: 'Forbidden: Insufficient permissions or scopes'
    delete:
      operationId: participants_beneficiaries_destroy
      description: Delete a beneficiary.
      parameters:
      - in: path
        name: beneficiary_id
        schema:
          type: string
        required: true
      - in: path
        name: participant_id
        schema:
          type: string
        required: true
      tags:
      - Beneficiaries
      security:
      - oauth2: []
      - knoxApiToken: []
      responses:
        '204':
          description: No response body
        '403':
          description: 'Forbidden: Invalid permissions to delete this beneficiary'
        '401':
          description: 'Unauthorized: Missing or invalid authentication'
components:
  securitySchemes:
    knoxApiToken:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"
    oauth2:
      type: http
      scheme: bearer
      description: OAuth 2.0 Bearer based with an existing token. Enter a token retrieved via the regular
        OAuth flow elsewhere.
servers:
- url: https://app.401go.com/api
  description: Base URL reconciled from apis.yml