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