401GO Money Movement API

The Money Movement API from 401GO — 10 operation(s) for money movement.

OpenAPI Specification

401go-money-movement-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 401GO Money Movement API
  version: 1.0.0
tags:
- name: Money Movement
paths:
  /participants/{participant_id}/disbursements/:
    get:
      operationId: participants_disbursements_list
      description: Get a list of participant's disbursements.
      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:
      - Money Movement
      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
                      description: Convert chosen empty strings into None during serialization. Specify
                        with the `empty_to_null_fields` Meta attribute.
                      properties:
                        object_id:
                          type: string
                          readOnly: true
                          description: Unique identifier for the disbursement.
                        reason:
                          type: string
                          enum:
                          - Termination of Employment
                          - Hardship Withdrawal
                          - Pre-Retirement Withdrawal
                          - Qualified Domestic Relations Order
                          - Retirement Age Withdrawal
                          - Required Minimum Distribution
                          - Permanent Disability
                          - Death of Participant
                          - Plan Termination
                          - IRA
                          - Emergency Expense
                          - Correction
                          - Move Rollover Funds
                          - Permissible Withdrawal
                          description: The reason for the disbursement request.
                        pretax_amount:
                          type: string
                          format: decimal
                          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
                          description: Pre-tax amount to disburse.
                        posttax_amount:
                          type: string
                          format: decimal
                          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
                          description: Post-tax amount to disburse.
                        pretax_memo:
                          type: string
                          description: Payment memo for pre-tax disbursement (max 20 characters). Required
                            when pretax_amount is provided.
                          maxLength: 20
                        posttax_memo:
                          type: string
                          description: Payment memo for post-tax disbursement (max 20 characters). Required
                            when posttax_amount is provided.
                          maxLength: 20
                        posttax_payment_method:
                          type: string
                          enum:
                          - Check
                          - Wire
                          - ACH Transfer
                          - Fee Transfer
                          - Forced Rollover
                          description: Payment method for post-tax portion (if different from pre-tax).
                            Only used in split disbursements when different from payment_method.
                        posttax_bank_name:
                          type: string
                          description: Bank name for post-tax portion. Only used in split disbursements
                            when different from payment_method.
                        posttax_bank_routing_aba_number:
                          type: string
                          description: Routing number for post-tax portion. Only used in split disbursements
                            when different from payment_method. Not necessary for Check Payments.
                        posttax_bank_account_number:
                          type: string
                          description: Account number for post-tax portion. Only used in split disbursements
                            when different from payment_method. Not necessary for Check Payments.
                        posttax_name_on_bank_account:
                          type: string
                          description: Account holder for post-tax portion. Only used in split disbursements
                            when different from payment_method. Not necessary for Check Payments.
                        payment_method:
                          type: string
                          enum:
                          - Check
                          - Wire
                          - ACH Transfer
                          - Fee Transfer
                          - Forced Rollover
                          description: The payment method to use (e.g., Check, ACH, Wire). For single
                            disbursements, use this field regardless of tax type. For split disbursements,
                            this applies to the pre-tax portion.
                        status:
                          type: string
                          readOnly: true
                          description: The current status of the disbursement (e.g., Pending Approval,
                            Funds Sent, etc.)
                        is_rollover:
                          type: boolean
                          default: false
                          description: Set to true if this is a rollover to a new provider.
                        payment_address:
                          allOf:
                          - type: object
                            description: A participant's Address
                            properties:
                              address_line_1:
                                type: string
                                maxLength: 100
                              address_line_2:
                                type: string
                                maxLength: 100
                              city:
                                type: string
                                maxLength: 80
                              state:
                                type: string
                                maxLength: 80
                              postal_code:
                                type: string
                                maxLength: 20
                              country:
                                type: string
                                default: US
                                maxLength: 80
                            required:
                            - address_line_1
                            - city
                            - postal_code
                            - state
                          description: Payment address for pre-tax portion (defaults to participant's
                            address if not provided). Only required if different from participant's address.
                        posttax_payment_address:
                          allOf:
                          - type: object
                            description: A participant's Address
                            properties:
                              address_line_1:
                                type: string
                                maxLength: 100
                              address_line_2:
                                type: string
                                maxLength: 100
                              city:
                                type: string
                                maxLength: 80
                              state:
                                type: string
                                maxLength: 80
                              postal_code:
                                type: string
                                maxLength: 20
                              country:
                                type: string
                                default: US
                                maxLength: 80
                            required:
                            - address_line_1
                            - city
                            - postal_code
                            - state
                          description: Payment address for post-tax portion (defaults to participant's
                            address if not provided).
                        bank_name:
                          type: string
                          description: Name of the bank for ACH/Wire payments (used for pre-tax portion
                            in splits). For single disbursements, use this field regardless of tax type.
                            For split disbursements, this applies to the pre-tax portion
                        bank_routing_aba_number:
                          type: string
                          description: Routing (ABA) number for the bank account. For single disbursements,
                            use this field regardless of tax type. For split disbursements, this applies
                            to the pre-tax portion. Not necessary for Check Payments.
                        bank_account_number:
                          type: string
                          description: Bank account number for payment. For single disbursements, use
                            this field regardless of tax type. For split disbursements, this applies to
                            the pre-tax portion. Not necessary for Check Payments.
                        name_on_bank_account:
                          type: string
                          description: Name of the account holder for the bank account. For single disbursements,
                            use this field regardless of tax type. For split disbursements, this applies
                            to the pre-tax portion. Not necessary for Check Payments.
                        federal_withholding_percent:
                          type: string
                          format: decimal
                          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
                          description: Federal tax withholding percent (required for Hardship and RMD
                            disbursements). Enter as percentage (e.g., 10.0 for 10%)
                        hardship:
                          type: string
                          enum:
                          - Expenses for Medical Care
                          - Purchase of a Principal Residence
                          - Educational Fees
                          - Prevent Eviction or Foreclosure
                          - Funeral Expenses
                          - Repair Damage to Principal Residence
                          - Qualified Federally Declared Disasters
                          description: Specific hardship reason (required for hardship disbursements).
                        name:
                          type: string
                          description: The participant's name
                        dob:
                          type: string
                          description: The participant's date of birth
                        married:
                          type: boolean
                          description: The participant's marital status
                        phone:
                          type: string
                          description: The participant's phone number
                        address:
                          allOf:
                          - type: object
                            description: A participant's Address
                            properties:
                              address_line_1:
                                type: string
                                maxLength: 100
                              address_line_2:
                                type: string
                                maxLength: 100
                              city:
                                type: string
                                maxLength: 80
                              state:
                                type: string
                                maxLength: 80
                              postal_code:
                                type: string
                                maxLength: 20
                              country:
                                type: string
                                default: US
                                maxLength: 80
                            required:
                            - address_line_1
                            - city
                            - postal_code
                            - state
                          description: The participant's address
                      required:
                      - address
                      - dob
                      - married
                      - name
                      - object_id
                      - payment_method
                      - phone
                      - reason
                      - status
          description: ''
        '401':
          description: 'Unauthorized: Missing or invalid authentication'
        '403':
          description: 'Forbidden: Insufficient permissions or scopes'
    post:
      operationId: participants_disbursements_create
      description: "Create a new disbursement request.\nField Usage Patterns:\n1. Single Disbursement\
        \ (pre-tax only or post-tax only):\n    - Use regular fields (payment_method, bank_name, etc.)\
        \ for payment details\n    - Use pretax_memo for pre-tax disbursements\n    - Use posttax_memo\
        \ for post-tax disbursements\n    - Use payment_address for pre-tax disbursements\n    - Use posttax_payment_address\
        \ for post-tax disbursements\n\n2. Split Disbursement (both pre-tax and post-tax):\n    - Use\
        \ regular fields (payment_method, bank_name, etc.) for pre-tax portion\n    - Use posttax_* fields\
        \ for post-tax portion if different from pre-tax\n    - Both pretax_memo and posttax_memo are\
        \ required\n    - Both payment_address and posttax_payment_address can be specified if different"
      parameters:
      - in: path
        name: participant_id
        schema:
          type: string
        required: true
      tags:
      - Money Movement
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: Convert chosen empty strings into None during serialization. Specify with the
                `empty_to_null_fields` Meta attribute.
              properties:
                reason:
                  type: string
                  enum:
                  - Termination of Employment
                  - Hardship Withdrawal
                  - Pre-Retirement Withdrawal
                  - Qualified Domestic Relations Order
                  - Retirement Age Withdrawal
                  - Required Minimum Distribution
                  - Permanent Disability
                  - Death of Participant
                  - Plan Termination
                  - IRA
                  - Emergency Expense
                  - Correction
                  - Move Rollover Funds
                  - Permissible Withdrawal
                  description: The reason for the disbursement request.
                pretax_amount:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
                  description: Pre-tax amount to disburse.
                posttax_amount:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
                  description: Post-tax amount to disburse.
                pretax_memo:
                  type: string
                  description: Payment memo for pre-tax disbursement (max 20 characters). Required when
                    pretax_amount is provided.
                  maxLength: 20
                posttax_memo:
                  type: string
                  description: Payment memo for post-tax disbursement (max 20 characters). Required when
                    posttax_amount is provided.
                  maxLength: 20
                posttax_payment_method:
                  type: string
                  enum:
                  - Check
                  - Wire
                  - ACH Transfer
                  - Fee Transfer
                  - Forced Rollover
                  description: Payment method for post-tax portion (if different from pre-tax). Only used
                    in split disbursements when different from payment_method.
                posttax_bank_name:
                  type: string
                  description: Bank name for post-tax portion. Only used in split disbursements when different
                    from payment_method.
                posttax_bank_routing_aba_number:
                  type: string
                  description: Routing number for post-tax portion. Only used in split disbursements when
                    different from payment_method. Not necessary for Check Payments.
                posttax_bank_account_number:
                  type: string
                  description: Account number for post-tax portion. Only used in split disbursements when
                    different from payment_method. Not necessary for Check Payments.
                posttax_name_on_bank_account:
                  type: string
                  description: Account holder for post-tax portion. Only used in split disbursements when
                    different from payment_method. Not necessary for Check Payments.
                payment_method:
                  type: string
                  enum:
                  - Check
                  - Wire
                  - ACH Transfer
                  - Fee Transfer
                  - Forced Rollover
                  description: The payment method to use (e.g., Check, ACH, Wire). For single disbursements,
                    use this field regardless of tax type. For split disbursements, this applies to the
                    pre-tax portion.
                hardship_proof_document:
                  type: string
                  format: byte
                  description: Base64-encoded proof document required for hardship disbursements and death
                    disbursements.
                  writeOnly: true
                hardship_signature:
                  type: string
                  format: byte
                  description: 'Base64-encoded signature image for hardship disbursements. Recommended
                    dimensions: 500px width x 150px height (10:3 aspect ratio) to match the final document
                    format.'
                  writeOnly: true
                is_rollover:
                  type: boolean
                  default: false
                  description: Set to true if this is a rollover to a new provider.
                payment_address:
                  allOf:
                  - type: object
                    description: A participant's Address
                    properties:
                      address_line_1:
                        type: string
                        minLength: 1
                        maxLength: 100
                      address_line_2:
                        type: string
                        maxLength: 100
                      city:
                        type: string
                        minLength: 1
                        maxLength: 80
                      state:
                        type: string
                        minLength: 1
                        maxLength: 80
                      postal_code:
                        type: string
                        minLength: 1
                        maxLength: 20
                      country:
                        type: string
                        minLength: 1
                        default: US
                        maxLength: 80
                    required:
                    - address_line_1
                    - city
                    - postal_code
                    - state
                  description: Payment address for pre-tax portion (defaults to participant's address
                    if not provided). Only required if different from participant's address.
                posttax_payment_address:
                  allOf:
                  - type: object
                    description: A participant's Address
                    properties:
                      address_line_1:
                        type: string
                        minLength: 1
                        maxLength: 100
                      address_line_2:
                        type: string
                        maxLength: 100
                      city:
                        type: string
                        minLength: 1
                        maxLength: 80
                      state:
                        type: string
                        minLength: 1
                        maxLength: 80
                      postal_code:
                        type: string
                        minLength: 1
                        maxLength: 20
                      country:
                        type: string
                        minLength: 1
                        default: US
                        maxLength: 80
                    required:
                    - address_line_1
                    - city
                    - postal_code
                    - state
                  description: Payment address for post-tax portion (defaults to participant's address
                    if not provided).
                bank_name:
                  type: string
                  description: Name of the bank for ACH/Wire payments (used for pre-tax portion in splits).
                    For single disbursements, use this field regardless of tax type. For split disbursements,
                    this applies to the pre-tax portion
                bank_routing_aba_number:
                  type: string
                  description: Routing (ABA) number for the bank account. For single disbursements, use
                    this field regardless of tax type. For split disbursements, this applies to the pre-tax
                    portion. Not necessary for Check Payments.
                bank_account_number:
                  type: string
                  description: Bank account number for payment. For single disbursements, use this field
                    regardless of tax type. For split disbursements, this applies to the pre-tax portion.
                    Not necessary for Check Payments.
                name_on_bank_account:
                  type: string
                  description: Name of the account holder for the bank account. For single disbursements,
                    use this field regardless of tax type. For split disbursements, this applies to the
                    pre-tax portion. Not necessary for Check Payments.
                federal_withholding_percent:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
                  description: Federal tax withholding percent (required for Hardship and RMD disbursements).
                    Enter as percentage (e.g., 10.0 for 10%)
                hardship:
                  type: string
                  enum:
                  - Expenses for Medical Care
                  - Purchase of a Principal Residence
                  - Educational Fees
                  - Prevent Eviction or Foreclosure
                  - Funeral Expenses
                  - Repair Damage to Principal Residence
                  - Qualified Federally Declared Disasters
                  description: Specific hardship reason (required for hardship disbursements).
                name:
                  type: string
                  minLength: 1
                  description: The participant's name
                dob:
                  type: string
                  format: date
                  description: The participant's date of birth
                married:
                  type: boolean
                  description: The participant's marital status
                phone:
                  type: string
                  minLength: 1
                  description: The participant's phone number
                address:
                  allOf:
                  - type: object
                    description: A participant's Address
                    properties:
                      address_line_1:
                        type: string
                        minLength: 1
                        maxLength: 100
                      address_line_2:
                        type: string
                        maxLength: 100
                      city:
                        type: string
                        minLength: 1
                        maxLength: 80
                      state:
                        type: string
                        minLength: 1
                        maxLength: 80
                      postal_code:
                        type: string
                        minLength: 1
                        maxLength: 20
                      country:
                        type: string
                        minLength: 1
                        default: US
                        maxLength: 80
                    required:
                    - address_line_1
                    - city
                    - postal_code
                    - state
                  description: The participant's address
              required:
              - address
              - dob
              - married
              - name
              - payment_method
              - phone
              - reason
          application/x-www-form-urlencoded:
            schema:
              type: object
              description: Convert chosen empty strings into None during serialization. Specify with the
                `empty_to_null_fields` Meta attribute.
              properties:
                reason:
                  type: string
                  enum:
                  - Termination of Employment
                  - Hardship Withdrawal
                  - Pre-Retirement Withdrawal
                  - Qualified Domestic Relations Order
                  - Retirement Age Withdrawal
                  - Required Minimum Distribution
                  - Permanent Disability
                  - Death of Participant
                  - Plan Termination
                  - IRA
                  - Emergency Expense
                  - Correction
                  - Move Rollover Funds
                  - Permissible Withdrawal
                  description: The reason for the disbursement request.
                pretax_amount:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
                  description: Pre-tax amount to disburse.
                posttax_amount:
                  type: string
                  format: decimal
                  pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
                  description: Post-tax amount to disburse.
                pretax_memo:
                  type: string
                  description: Payment memo for pre-tax disbursement (max 20 characters). Required when
                    pretax_amount is provided.
                  maxLength: 20
                posttax_memo:
                  type: string
                  description: Payment memo for post-tax disbursement (max 20 characters). Required when
                    posttax_amount is provided.
                  maxLength: 20
                posttax_payment_method:
                  type: string
                  enum:
                  - Check
                  - Wire
                  - ACH Transfer
                  - Fee Transfer
                  - Forced Rollover
                  description: Payment method for post-tax portion (if different from pre-tax). Only used
                    in split disbursements when different from payment_method.
                posttax_bank_name:
                  type: string
                  description: Bank name for post-tax portion. Only used in split disbursements when different
                    from payment_method.
                posttax_bank_routing_aba_number:
                  type: string
                  description: Routing number for post-tax portion. Only used in split disbursements when
                    different from payment_method. Not necessary for Check Payments.
                posttax_bank_account_number:
                  type: string
                  description: Account number for post-tax portion. Only used in split disbursements when
                    different from payment_method. Not necessary for Check Payments.
                posttax_name_on_bank_account:
                  type: string
                  description: Account holder for post-tax portion. Only used in split disbursements when
                    different from payment_method. Not necessary for Check Payments.
                payment_method:
                  type: string
                  enum:
                  - Check
                  - Wire
                  - ACH Transfer
                  - Fee Transfer
                  - Forced Rollover
                  description: The payment method to use (e.g., Check, ACH, Wire). For single disbursements,
                    use this field regardless of tax type. For split disbursements, this applies to the
                    pre-tax portion.
                hardship_proof_document:
                  type: string
                  format: byte
                  description: Base64-encoded proof document required for hardship disbursements and death
                    disbursements.
                  writeOnly: true
                hardship_signature:
                  type: string
                  format: byte
                  description: 'Base64-encoded signature image for hardship disbursements. Recommended
                    dimensions: 500px width x 150px height (10:3 aspect ratio) to match the final document
                    format.'
                  writeOnly: true
                is_rollover:
                  type: boolean
                  default: false
                  description: Set to true if this is a rollover to a new provider.
                payment_address:
                  allOf:
                  - type: object
                    description: A participant's Address
                    properties:
                      address_line_1:
                        type: string
                        minLength: 1
                        maxLength: 100
                      address_line_2:
                        type: string
                        maxLength: 100
                      city:
                        type: string
                        minLength: 1
                        maxLength: 80
                      state:
                        type: string
                        minLength: 1
                        maxLength: 80
                      postal_code:
             

# --- truncated at 32 KB (231 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/401go/refs/heads/main/openapi/401go-money-movement-api-openapi.yml