Branch Partner OpenAPI
This page contains the current Branch Partner OpenAPI definition presented in both JSON and YAML formats.
Click to copy the code using the clipboard button, which appears when you hover your cursor at the top right.
{
"openapi": "3.0.1",
"info": {
"title": "Branch API",
"description": "Branch API",
"version": "2.0.5"
},
"servers": [
{
"url": "https://api.branchapp.com",
"description": "Production URL"
},
{
"url": "https://sandbox.branchapp.com",
"description": "Sandbox URL"
}
],
"paths": {
"/v2/organizations/{orgId}/employees/{employeeId}/payment-profile": {
"get": {
"tags": [
"Payment Profile"
],
"summary": "Get Payment Profile",
"description": "Get the payment profile for an employee, which shows the payment types by which a worker can be paid according to their current configuration, and the active payment type.",
"operationId": "getEmployeePaymentProfile",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmployeePaymentProfileDto"
}
}
}
},
"404": {
"description": "Returned if the requested employeeId was not found",
"content": {
"application/json": {
"examples": {
"Not Found": {
"description": "Not Found",
"value": {
"timestamp": "2024-02-06T18:02:04.351+00:00",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/v2/organizations/100019/employees/2444666666/payment-profile"
}
}
}
}
}
}
}
},
"put": {
"tags": [
"Payment Profile"
],
"summary": "Update Payment Profile",
"description": "Update a worker's payment profile to change the active payment type.",
"operationId": "updatePaymentProfileActiveType",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmployeePaymentProfileItem"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmployeePaymentProfileDto"
}
}
}
},
"400": {
"description": "Returned if the request does not adhere to the API specification. Or if the worker does not have the requested profile type configured",
"content": {
"application/json": {
"examples": {
"Invalid Request": {
"description": "Invalid Request",
"value": {
"timestamp": "2024-02-06T18:13:21.047+00:00",
"status": 400,
"error": "Bad Request",
"message": "[400] valid payment card not found for employee",
"path": "/v2/organizations/100019/employees/123456/payment-profile"
}
}
}
}
}
},
"404": {
"description": "Returned if the requested employeeId was not found",
"content": {
"application/json": {
"examples": {
"Not Found": {
"description": "Not Found",
"value": {
"timestamp": "2024-02-06T18:02:04.351+00:00",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/v2/organizations/100019/employees/2444666666/payment-profile"
}
}
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/payroll-calendar/periods/{payrollPeriodId}": {
"get": {
"tags": [
"Payroll Periods"
],
"summary": "Get Payroll Period",
"description": "Get an existing payroll period.",
"operationId": "getPayrollPeriod",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "payrollPeriodId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PayrollPeriodDto"
}
}
}
}
}
},
"put": {
"tags": [
"Payroll Periods"
],
"summary": "Update Payroll Period",
"description": "Update a payroll period pay date and deadline.",
"operationId": "updatePayrollPeriod",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "payrollPeriodId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PayrollPeriodUpdateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PayrollPeriodDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/employees/{employeeId}": {
"get": {
"tags": [
"Employees"
],
"summary": "Get Employee",
"description": "Get an Employee by ID.",
"operationId": "getEmployee",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/EmployeeDto"
}
}
}
}
}
},
"put": {
"tags": [
"Employees"
],
"summary": "Update Employee",
"description": "Update an employee by ID.",
"operationId": "updateEmployee",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmployeeUpdateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/EmployeeDto"
}
}
}
}
}
},
"post": {
"tags": [
"Employees"
],
"summary": "Create Employee",
"description": "Create a new employee.",
"operationId": "createEmployee",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmployeeCreationRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/EmployeeDto"
}
}
}
}
}
},
"delete": {
"tags": [
"Employees"
],
"summary": "Delete Employee",
"description": "Delete an employee by ID.",
"operationId": "deleteEmployee",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/v1/organizations/{orgId}/employees/{employeeId}/shifts/{shiftId}": {
"get": {
"tags": [
"Shifts"
],
"summary": "Get Shift",
"description": "Get a worker's completed shift. Requires shift_id to identify which shift to retrieve. If an existing shift cannot be found with the provided shift_id, call will return 404 - Not Found. Successful call will return the completed shift.",
"operationId": "getShift",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "shiftId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/ShiftDto"
}
}
}
}
}
},
"put": {
"tags": [
"Shifts"
],
"summary": "Update Shift",
"description": "Update a worker's completed shift. Requires shift_id to identify which shift to update. If an existing shift cannot be found with the provided shift_id, call will return 404 - Not Found. Requests made with missing required fields or invalid dates/times will return 400 - Bad Request. Successful call will return newly updated shift.",
"operationId": "updateShift",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "shiftId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ShiftUpdateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/ShiftDto"
}
}
}
}
}
},
"delete": {
"tags": [
"Shifts"
],
"summary": "Delete shift",
"description": "Delete an existing shift. Requires shift_id to identify which shift to delete. If an existing shift cannot be found with the provided shift_id, call will return 404 - Not Found. Successful call will return status 204 - No Content.",
"operationId": "deleteShift",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "shiftId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/v1/organizations/{orgId}/employees/{employeeId}/period-earnings": {
"put": {
"tags": [
"Employee Earnings"
],
"summary": "Update Employee Earning",
"description": "Update an employee's earning for a period.",
"operationId": "updateEmployeePeriodEarning",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmployeePeriodEarningRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/EmployeePeriodEarningSummaryDto"
}
}
}
}
}
}
},
"/v2/organizations/{orgId}/workers/{workerId}/disbursements": {
"get": {
"tags": [
"V2 Disbursements"
],
"summary": "Search Disbursements",
"description": "Searches all disbursements sent to worker.",
"operationId": "getDisbursementsForWorker",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "workerId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"PENDING",
"SCHEDULED",
"COMPLETED",
"FAILED",
"CANCELED",
"SKIPPED",
"UNKNOWN"
]
}
},
{
"name": "type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"TIP",
"TRIP",
"MILEAGE",
"PAYCHECK",
"MISCELLANEOUS",
"DEVICE",
"DELIVERY",
"DEPOSIT",
"BONUS",
"REWARD",
"UNKNOWN"
]
}
},
{
"name": "external_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "invoice_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "worker_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "time_last_attempted_start",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "time_last_attempted_end",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "after",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "before",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "sort",
"in": "query",
"description": "Format: field_name,direction",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/ApiCursorPageV2DisbursementDto"
}
}
}
}
}
},
"post": {
"tags": [
"V2 Disbursements"
],
"summary": "Create Disbursement",
"description": "Creates a disbursement for an worker. A disbursement is an initiation of payment to a worker.",
"operationId": "createDisbursement",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "workerId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/V2DisbursementCreateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Returned if the disbursement already exists and an additional attempt to disburse funds was not made. This can occur if the disbursement was already complete or if the resulting status is in [ CANCELED | SKIPPED ]",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/V2DisbursementDto"
}
}
}
},
"201": {
"description": "Returned if an attempt to disburse funds was successful. This can occur if the disbursement is new or if it already exists and is retried successfully.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/V2DisbursementDto"
}
}
}
},
"202": {
"description": "Returned if an attempt to disburse funds was unsuccessful. This can occur if the resulting status is in [ FAILED | PENDING ]. Additional information can be found via reason_code.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/V2DisbursementDto"
}
}
}
},
"400": {
"description": "Returned if the request does not adhere to the API specification. Can also be returned if the disbursement cannot be created due to improper invoicing setup.",
"content": {
"application/json": {
"examples": {
"Invalid Request": {
"description": "Invalid Request",
"value": {
"timestamp": "2023-01-01T00:00:00.000+00:00",
"status": 400,
"error": "Bad Request",
"message": "amount is required",
"path": "/v2/organizations/123/employees/123/disbursements"
}
},
"Missing Invoice Configuration": {
"description": "Missing Invoice Configuration",
"value": {
"timestamp": "2023-01-01T00:00:00.000+00:00",
"status": 400,
"error": "Bad Request",
"message": "Could not match disbursement to invoice configuration",
"path": "/v2/organizations/123/employees/123/disbursements"
}
}
}
}
}
},
"429": {
"description": "Returned if the request is throttled. Throttling can occur based on requests/min or if you have reached your organization's daily disbursement limit.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
},
"500": {
"description": "If persistent, contact your Branch representative.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/v2/organizations/{orgId}/employees/{employeeId}/external-cards": {
"get": {
"tags": [
"External Cards"
],
"summary": "Get External Cards for Employee",
"description": "Get a list of external cards for an employee.",
"operationId": "getExternalCardsForOrganizationEmployee",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "network",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"example": "visa"
},
{
"name": "last4",
"in": "query",
"required": false,
"schema": {
"type": "string"
},
"example": 1234
},
{
"name": "time_created_start",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
},
"example": "2023-01-01T00:00:00.000Z"
},
{
"name": "time_created_end",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
},
"example": "2023-01-31T23:59:59.999Z"
},
{
"name": "sort",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "direction",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageSlimEmployeeTabapayExternalCardDto"
}
}
}
}
}
},
"post": {
"tags": [
"External Cards"
],
"summary": "Add External Card for Employee",
"description": "Add an external card for an employee.",
"operationId": "addExternalCardForOrganizationEmployee",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmployeeDirectFormRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Returned if an attempt to add an external payment card was successful.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/EmployeeTabapayExternalCardDto"
}
}
}
},
"400": {
"description": "Returned if the request does not adhere to the API specification. This will also return if the payment card details are invalid or not supported",
"content": {
"application/json": {
"examples": {
"Invalid Request": {
"description": "Invalid Request",
"value": {
"timestamp": "2023-01-01T00:00:00.000+00:00",
"status": 400,
"error": "Bad Request",
"message": "token is required",
"path": "/v2/organizations/123/employees/123/disbursements"
}
}
}
}
}
},
"409": {
"description": "Returned if the worker has an existing external payment card. Direct worker,\nto delete their current card and try again.\n",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ErrorResponse"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/remittances/{remittanceId}/deductions": {
"post": {
"tags": [
"Remittance"
],
"summary": "Report Remittance Deduction",
"description": "Post an amount that was deducted from a worker on the remittance.",
"operationId": "reportOrganizationRemittanceDeduction",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "remittanceId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeductionCreationRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created"
}
}
}
},
"/v1/organizations/{orgId}/payroll-calendar": {
"get": {
"tags": [
"Payroll Calendar"
],
"summary": "Get Payroll Calendar",
"description": "Get the payroll calendar for an organization",
"operationId": "getPayrollCalendar",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PayrollCalendarDto"
}
}
}
}
}
},
"post": {
"tags": [
"Payroll Calendar"
],
"summary": "Create Payroll Calendar",
"description": "Create a new payroll calendar, which defines payroll periods.",
"operationId": "createPayrollCalendar",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PayrollCalendarCreationRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PayrollCalendarDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/employees/{employeeId}/wallets": {
"post": {
"tags": [
"Wallet"
],
"summary": "Create Wallet",
"description": "Creates a digital wallet for an employee. Optionally allows a Branch card to be automatically ordered for the employee.",
"operationId": "createWalletForEmployee",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "X-Test-Mode",
"in": "header",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "orgId",
"in": "path",
"description": "The Organization ID",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"description": "The Employee ID",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OrganizationWalletCreationRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OrganizationWalletCreatedSchema"
}
}
}
},
"400": {
"description": "Bad Request. If a field provided is invalid, an error response will be returned with a message describing why.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
},
"example": {
"timestamp": "2023-01-01T11:00:00.000+00:00",
"status": 400,
"error": "Bad Request",
"message": "Field 'example' was invalid",
"path": "/v1/organizations/123/employees/456/wallets"
}
}
}
},
"404": {
"description": "Not Found. Can occur for example if the create_employee field is set to false, and the employee ID provided does not match an existing worker.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
},
"example": {
"timestamp": "2023-01-01T11:00:00.000+00:00",
"status": 404,
"error": "Not Found",
"message": "Employee does not exist for org",
"path": "/v1/organizations/123/employees/456/wallets"
}
}
}
},
"409": {
"description": "Conflict. Can occur for example if the email address provided matches an account that already exists.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
},
"example": {
"timestamp": "2023-01-01T11:00:00.000+00:00",
"status": 409,
"error": "Conflict",
"message": "Could not create wallet account for user: An account with the email '[email protected]' already exists",
"path": "/v1/organizations/123/employees/456/wallets"
}
}
}
},
"429": {
"description": "Rate limited. Max 2 wallet creation requests per second.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
},
"example": {
"timestamp": "2023-01-01T11:00:00.000+00:00",
"status": 429,
"error": "Too Many Requests",
"message": "You have exhausted your API Request Quota",
"path": "/v1/organizations/123/employees/456/wallets"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/employees/{employeeId}/shifts": {
"post": {
"tags": [
"Shifts"
],
"summary": "Submit Shift",
"description": "Submit a person's completed shift. Shifts are used to track hours worked by an individual employee and calculate EWA. Shifts may be created with a shift_id unique within the organization. Failure to provide a shift_id will cause a UUID to be generated instead.If a duplicate shift_id is provided, call will return 409 - Conflict. Successful call will return the created shift and status 201.",
"operationId": "submitShift",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ShiftCreationRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/ShiftDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/employees/{employeeId}/disbursements": {
"get": {
"tags": [
"Disbursements"
],
"summary": "Get Employee Disbursements",
"description": "Get a list of disbursements for an employee.",
"operationId": "getDisbursementsForEmployee",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"CREATED",
"ATTEMPTING_PAYBACK",
"PAYBACK_FAILED",
"COMPLETED",
"FAILED",
"SKIPPED",
"CANCELLED",
"SCHEDULED",
"UNKNOWN"
]
}
},
{
"name": "type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"TIPS",
"TRIP",
"MILEAGE",
"PAYCHECK",
"MISCELLANEOUS",
"DEVICE",
"DELIVERY",
"DEPOSIT",
"BONUS",
"REWARD",
"UNKNOWN"
]
}
},
{
"name": "external_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "invoice_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "amount",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employee_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "employee_group",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "time_created_start",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "time_created_end",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "page_direction",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"PREV",
"NEXT"
]
}
},
{
"name": "last_time_created",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "last_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "sort",
"in": "query",
"description": "Format: field_name,direction",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageDisbursementDto"
}
}
}
}
}
},
"post": {
"tags": [
"Disbursements"
],
"summary": "Create Disbursement",
"description": "Creates a disbursement for an employee. This initiates a payment to the employee.",
"operationId": "createDisbursement_1",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DisbursementCreationRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/DisbursementDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/remittances/{remittanceId}": {
"patch": {
"tags": [
"Remittance"
],
"summary": "Complete Remittance Deduction",
"description": "Update an existing remittance to mark it as completed.",
"operationId": "updateOrganizationRemittance",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "remittanceId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RemittanceUpdateRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/v2/organizations/{orgId}/payouts/wallet/{transferId}": {
"get": {
"tags": [
"Wallet Payout Details"
],
"summary": "Get Wallet Payout",
"description": "Returns Wallet payout details for a disbursement",
"operationId": "getWalletPayoutDetails",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "transferId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/V2WalletPayoutDto"
}
}
}
}
}
}
},
"/v2/organizations/{orgId}/payouts/card/{transferId}": {
"get": {
"tags": [
"Card Payout Details"
],
"summary": "Get External Card Payout",
"description": "Returns external card payout details for a disbursement",
"operationId": "getExternalCardPayoutDetails",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "transferId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/V2CardPayoutDto"
}
}
}
}
}
}
},
"/v2/organizations/{orgId}/employees/{employeeId}/external-cards/{entityId}": {
"get": {
"tags": [
"External Cards"
],
"summary": "Get External Cards for Entity",
"description": "Get a list of external cards for an entity.",
"operationId": "getExternalCardByEntityId",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "entityId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/EmployeeTabapayExternalCardDto"
}
}
}
}
}
},
"delete": {
"tags": [
"External Cards"
],
"summary": "Delete External Card for Entity",
"description": "Delete an external card for an entity.",
"operationId": "deleteExternalCardByEntityId",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "entityId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"204": {
"description": "No Content"
}
}
}
},
"/v2/organizations/{orgId}/disbursements": {
"get": {
"tags": [
"V2 Disbursements"
],
"summary": "Search Disbursements",
"description": "Searches all disbursements.",
"operationId": "searchDisbursements",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"PENDING",
"SCHEDULED",
"COMPLETED",
"FAILED",
"CANCELED",
"SKIPPED",
"UNKNOWN"
]
}
},
{
"name": "type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"TIP",
"TRIP",
"MILEAGE",
"PAYCHECK",
"MISCELLANEOUS",
"DEVICE",
"DELIVERY",
"DEPOSIT",
"BONUS",
"REWARD",
"UNKNOWN"
]
}
},
{
"name": "external_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "invoice_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "worker_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "time_last_attempted_start",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "time_last_attempted_end",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "after",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "before",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "sort",
"in": "query",
"description": "Format: field_name,direction",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/ApiCursorPageV2DisbursementDto"
}
}
}
}
}
}
},
"/v1/organizations": {
"get": {
"tags": [
"Organizations"
],
"operationId": "getAllOrganizations",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "pageRequest",
"in": "query",
"required": true,
"schema": {
"$ref": "#/components/schemas/PageRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageOrganizationDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}": {
"get": {
"tags": [
"Organizations"
],
"operationId": "getOrganization",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/OrganizationDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/wallets": {
"get": {
"tags": [
"Wallet"
],
"summary": "Get Wallets",
"description": "Get a list of wallets for an organization.",
"operationId": "getWallets",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageOrganizationWalletDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/wallet-statuses": {
"get": {
"tags": [
"Wallet"
],
"summary": "Get Wallet Status",
"description": "Get the status of wallets for an organization.",
"operationId": "getWalletStatuses",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageOrganizationWalletStatusDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/remittances": {
"get": {
"tags": [
"Remittance"
],
"summary": "Get Remittances",
"description": "Return a list of remittances by an organization.",
"operationId": "getOrganizationRemittances",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageRemittanceDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/remittances/{remittanceId}/requested-deductions": {
"get": {
"tags": [
"Remittance"
],
"summary": "Get Remittance Requested Deductions",
"description": "Return a list of requested deductions from an organization's remittance.",
"operationId": "getOrganizationRemittanceRequestedDeductions",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "remittanceId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageRemittanceRequestedDeductionDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/invoices/{invoiceId}/disbursements": {
"get": {
"tags": [
"Disbursements"
],
"summary": "Get Invoice Disbursements",
"description": "Get a list of disbursements for an invoice.",
"operationId": "getDisbursementsForInvoice",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "invoiceId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"CREATED",
"ATTEMPTING_PAYBACK",
"PAYBACK_FAILED",
"COMPLETED",
"FAILED",
"SKIPPED",
"CANCELLED",
"SCHEDULED",
"UNKNOWN"
]
}
},
{
"name": "type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"TIPS",
"TRIP",
"MILEAGE",
"PAYCHECK",
"MISCELLANEOUS",
"DEVICE",
"DELIVERY",
"DEPOSIT",
"BONUS",
"REWARD",
"UNKNOWN"
]
}
},
{
"name": "external_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "invoice_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "amount",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employee_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "employee_group",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "time_created_start",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "time_created_end",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "page_direction",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"PREV",
"NEXT"
]
}
},
{
"name": "last_time_created",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "last_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "sort",
"in": "query",
"description": "Format: field_name,direction",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageDisbursementDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/employees": {
"get": {
"tags": [
"Employees"
],
"summary": "Search Employees",
"description": "Search for employees by providing search criteria.",
"operationId": "searchEmployees",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "first_name",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "last_name",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageEmployeeDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/employees/{employeeId}/wallet": {
"get": {
"tags": [
"Wallet"
],
"summary": "Get Employee Wallet",
"description": "Get wallet for an employee.",
"operationId": "getWallet",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/OrganizationWalletDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/employees/{employeeId}/card": {
"get": {
"tags": [
"Cards"
],
"summary": "Get Active User Card",
"description": "Card returned will be either active or temporarily suspended. Permanently terminated cards are not returned. \nIf the provided user does not have an active or suspended card, call will return 404 - Not Found.",
"operationId": "getCard",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Success - Returns a user's active card. \n`state` can be `ACTIVE` or `SUSPENDED`. \n`card_type` can be `PHYSICAL` or `VIRTUAL`.",
"content": {
"application/json": {
"example": {
"state": "ACTIVE",
"card_type": "PHYSICAL",
"time_created": "2020-02-18T19:42:48Z"
}
}
}
},
"404": {
"description": "Not Found. No active or suspended card",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApiError"
},
"example": {
"timestamp": "2023-10-04T23:08:23.954+00:00",
"status": 404,
"error": "Not Found",
"message": "Employee does not have an active card.",
"path": "/v1/organizations/123/employees/456/card"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/employees/{employeeId}/address": {
"get": {
"tags": [
"Employees"
],
"summary": "Get Employee Address",
"description": "Get the address of an employee.",
"operationId": "getEmployeeAddress",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employeeId",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/Address"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/disbursements": {
"get": {
"tags": [
"Disbursements"
],
"summary": "Search Disbursements",
"description": "Searches disbursements while returning HATEOAS links (e.g. prev_page, next_page) for retrieving additional data.",
"operationId": "searchDisbursements_1",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "status",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"CREATED",
"ATTEMPTING_PAYBACK",
"PAYBACK_FAILED",
"COMPLETED",
"FAILED",
"SKIPPED",
"CANCELLED",
"SCHEDULED",
"UNKNOWN"
]
}
},
{
"name": "type",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"TIPS",
"TRIP",
"MILEAGE",
"PAYCHECK",
"MISCELLANEOUS",
"DEVICE",
"DELIVERY",
"DEPOSIT",
"BONUS",
"REWARD",
"UNKNOWN"
]
}
},
{
"name": "external_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "invoice_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "amount",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employee_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "employee_group",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "time_created_start",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "time_created_end",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "page_direction",
"in": "query",
"required": false,
"schema": {
"type": "string",
"enum": [
"PREV",
"NEXT"
]
}
},
{
"name": "last_time_created",
"in": "query",
"required": false,
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "last_id",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "sort",
"in": "query",
"description": "Format: field_name,direction",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageDisbursementDto"
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/card-programs": {
"get": {
"tags": [
"card-program-controller"
],
"operationId": "getCardPrograms",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CardProgram"
}
}
}
}
}
}
}
},
"/v1/organizations/{orgId}/advances": {
"get": {
"tags": [
"Advances"
],
"summary": "Search Advances",
"description": "Search for advances by an organization by entering search criteria. ",
"operationId": "searchOrganizationAdvances",
"parameters": [
{
"name": "apikey",
"in": "header",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "orgId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "employee_id",
"in": "query",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "page",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"name": "size",
"in": "query",
"required": false,
"schema": {
"type": "integer",
"format": "int64"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/PageEmployeeAdvanceDto"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"EmployeePaymentProfileItem": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"WALLET",
"CARD",
"NONE"
]
},
"ref": {
"type": "string"
}
}
},
"EmployeePaymentProfileDto": {
"type": "object",
"properties": {
"additional_payment_methods": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EmployeePaymentProfileItem"
}
},
"payment_method": {
"$ref": "#/components/schemas/EmployeePaymentProfileItem"
}
}
},
"PayrollPeriodUpdateRequest": {
"type": "object",
"properties": {
"payroll_deadline": {
"type": "string",
"description": "The date by which workers' pay must be determined.",
"format": "date",
"example": "2000-01-01"
},
"pay_date": {
"type": "string",
"description": "The date individuals will receive payment.",
"format": "date",
"example": "2000-01-01"
}
}
},
"PayrollPeriodDto": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The existing payroll period id.",
"format": "int32"
},
"payroll_deadline": {
"type": "string",
"description": "The date by which workers' pay must be determined.",
"format": "date",
"example": "2000-01-01"
},
"pay_date": {
"type": "string",
"description": "The date individuals will receive payment.",
"format": "date",
"example": "2000-01-01"
}
}
},
"EmployeeUpdateRequest": {
"required": [
"first_name",
"last_name"
],
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "Numbers not allowed",
"example": "John"
},
"last_name": {
"type": "string",
"description": "Numbers not allowed",
"example": "Larson"
},
"phone_number": {
"type": "string",
"example": "+11235550123"
},
"email_address": {
"type": "string",
"example": "[email protected]"
},
"type": {
"type": "string",
"enum": [
"HOURLY",
"SALARY"
]
},
"pay_rate": {
"minimum": 0,
"type": "integer",
"description": "Rate of pay, in cents, used in conjunction with type. The following should be defined as follows:\n If type = salary, then should be the annual salary of the employee\n If type = hourly, then should be the hourly rate the employee earns",
"format": "int32"
},
"business_name": {
"type": "string",
"example": "Dunder Mifflin Paper Company"
},
"group_name": {
"type": "string",
"example": "GOLD"
},
"ein": {
"type": "string",
"example": "XXXXXXXXX"
},
"password": {
"type": "string"
}
}
},
"EmployeeDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"first_name": {
"type": "string",
"description": "First name of employee"
},
"last_name": {
"type": "string",
"description": "Last name of employee"
},
"phone_number": {
"type": "string",
"description": "Phone number of employee"
},
"email_address": {
"type": "string",
"description": "Email address of employee"
},
"type": {
"type": "string",
"enum": [
"HOURLY",
"SALARY"
]
},
"pay_rate": {
"type": "integer",
"description": "Rate of pay, in cents, used in conjunction with type. The following should be defined as follows:\n If type = salary, then is the annual salary of the employee\n If type = hourly, then is the hourly rate the employee earns",
"format": "int32"
},
"business_name": {
"type": "string",
"example": "Branch"
},
"group_name": {
"type": "string",
"example": "GOLD"
},
"ein": {
"type": "string",
"description": "9 digit employer identification number",
"example": "XXXXXXXXX"
}
}
},
"ShiftUpdateRequest": {
"type": "object",
"properties": {
"punch_in": {
"type": "string",
"description": "Time the shift started",
"format": "date-time"
},
"punch_out": {
"type": "string",
"description": "Time the shift ended. This does not need to be provided if 'hours' is provided",
"format": "date-time"
},
"hours": {
"type": "number",
"description": "Number of hours worked in the shift. This does not need to be provided if 'punch_out' is provided",
"format": "double"
},
"rate": {
"type": "integer",
"description": "Amount of money, in cents, the employee made per hour/day depending on 'shift_type'",
"format": "int32"
},
"shift_type": {
"type": "string",
"description": "Shift type, 'HOURLY' or 'DAILY'",
"enum": [
"Daily",
"Hourly"
]
}
}
},
"ShiftDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The id of the timekeeping record."
},
"employee_id": {
"type": "string",
"description": "The worker's ID"
},
"punch_in_time": {
"type": "string",
"description": "ISO-8601 date-time with offset from UTC for shift start time.",
"format": "date-time"
},
"punch_out_time": {
"type": "string",
"description": "ISO-8601 date-time with offset from UTC for shift end time.",
"format": "date-time"
},
"rate": {
"type": "integer",
"description": "The rate, in cents, that the employee gets paid for this shift.",
"format": "int32"
},
"shift_type": {
"type": "string",
"description": "Shift type, hourly or daily.",
"enum": [
"Daily",
"Hourly"
]
},
"pay_period_end": {
"type": "string",
"description": "ISO-8601 date for the end of the pay period.",
"format": "date"
},
"time_modified": {
"type": "string",
"description": "ISO-8601 date-time with offset from UTC for when the timekeeping record was last updated",
"format": "date-time"
}
}
},
"EmployeePeriodEarningRequest": {
"type": "object",
"properties": {
"amount": {
"minimum": 1,
"type": "integer",
"description": "earnings in cents. must be greater than 0",
"format": "int32"
},
"date": {
"pattern": "yyyy-MM-dd",
"type": "string",
"format": "date",
"example": "2021-06-24"
}
}
},
"EmployeePeriodEarningSummaryDto": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"description": "Total current period earnings for an employee\n Unit: Cents\n",
"format": "int32"
}
}
},
"V2DisbursementCreateRequest": {
"required": [
"amount",
"description",
"external_id",
"type"
],
"type": "object",
"properties": {
"amount": {
"minimum": 0,
"type": "integer",
"description": "Amount, in cents, to be disbursed to the worker.",
"format": "int32",
"example": 500
},
"external_id": {
"maxLength": 64,
"minLength": 0,
"type": "string",
"description": "Allows the custom specification of a unique ID that correlates back to your own records.",
"example": "123456"
},
"type": {
"type": "string",
"description": "TIP: Disbursement for a tip earned by worker<br />\nTRIP: Disbursement for a trip made by worker<br />\nMILEAGE: Disbursement for miles driven by worker<br />\nPAYCHECK: Disbursement for income earned by worker<br />\nMISCELLANEOUS: Disbursement to worker for miscellaneous reasons<br />\nDEVICE: Disbursement for a worker’s device<br />\nDELIVERY: Disbursement for a delivery made by worker<br />\nDEPOSIT: Disbursement for a generic purposes<br />\nREWARD: Disbursement for a reward earned<br />\nBONUS: Disbursement representing a non-usual payment<br />\n",
"example": "MILEAGE",
"enum": [
"TIP",
"TRIP",
"MILEAGE",
"PAYCHECK",
"MISCELLANEOUS",
"DEVICE",
"DELIVERY",
"DEPOSIT",
"BONUS",
"REWARD",
"UNKNOWN"
]
},
"worker_group": {
"maxLength": 150,
"minLength": 0,
"type": "string",
"description": "A grouping for the worker. This could be anything that is used by your organization in order to group workers: store id, worker tier, region code, etc.",
"example": "Store #1"
},
"display_header_label": {
"maxLength": 32,
"minLength": 0,
"type": "string",
"description": "A description of the disbursement. This will be displayed to the worker",
"example": "Tip for delivery"
},
"display_sub_label": {
"maxLength": 32,
"minLength": 0,
"type": "string",
"description": "A description of the disbursement. This will be displayed to the worker in the application",
"example": "Tip for delivery"
},
"description": {
"maxLength": 256,
"minLength": 0,
"type": "string",
"example": "Disbursement for miles driven."
},
"retry": {
"type": "boolean",
"description": "Default false. If status goes into FAILED, allows disbursement to be reattempted."
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"time_scheduled": {
"type": "string",
"description": "Date and time at which the specified amount will be disbursed to the worker.",
"format": "date-time"
}
}
},
"ErrorResponse": {
"type": "object",
"properties": {
"status": {
"type": "integer",
"format": "int32"
},
"error": {
"type": "string"
},
"message": {
"type": "string"
},
"path": {
"type": "string"
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
},
"V2DisbursementDto": {
"type": "object",
"properties": {
"worker_id": {
"type": "string",
"description": "The worker's ID",
"example": "123"
},
"amount": {
"type": "integer",
"description": "Amount, in cents, to be disbursed to the worker",
"format": "int64",
"example": 500
},
"external_id": {
"type": "string",
"description": "Allows the custom specification of a unique ID that correlates back to your own records. Max 64 characters",
"example": "123456"
},
"type": {
"type": "string",
"description": "TIP: Disbursement for a tip earned by worker<br />\nTRIP: Disbursement for a trip made by worker<br />\nMILEAGE: Disbursement for miles driven by worker<br />\nPAYCHECK: Disbursement for income earned by worker<br />\nMISCELLANEOUS: Disbursement to worker for miscellaneous reasons<br />\nDEVICE: Disbursement for a worker’s device<br />\nDELIVERY: Disbursement for a delivery made by worker<br />\nDEPOSIT: Disbursement for a generic purposes<br />\nREWARD: Disbursement for a reward earned<br />\nBONUS: Disbursement representing a non-usual payment<br />\n",
"example": "TIP",
"enum": [
"TIP",
"TRIP",
"MILEAGE",
"PAYCHECK",
"MISCELLANEOUS",
"DEVICE",
"DELIVERY",
"DEPOSIT",
"BONUS",
"REWARD",
"UNKNOWN"
]
},
"worker_group": {
"type": "string",
"description": "A grouping for the worker. This could be anything that is used by your organization in order to group workers: store id, worker tier, region code, etc",
"example": "Store #1"
},
"description": {
"type": "string",
"example": "Disbursement for miles driven"
},
"display_header_label": {
"type": "string",
"description": "A description of the disbursement. This will be displayed to the worker in the application",
"example": "Tip for delivery"
},
"display_sub_label": {
"type": "string",
"description": "A description of the disbursement. This will be displayed to the worker in the application",
"example": "Tip for delivery"
},
"status": {
"type": "string",
"description": "PENDING: The disbursement was created, but processing is not yet completed<br />\nSCHEDULED: The disbursement was created and will be processed at the specified time<br />\nCOMPLETED: Branch successfully disbursed funds<br />\nFAILED: Funds were unable to be disbursed<br />\nCANCELED: Funds were not disbursed and no further action will be attempted for the disbursement<br />\nSKIPPED: The disbursement was not attempted. See reason_code for more information<br />\n",
"example": "COMPLETED",
"enum": [
"PENDING",
"SCHEDULED",
"COMPLETED",
"FAILED",
"CANCELED",
"SKIPPED",
"UNKNOWN"
]
},
"reason_code": {
"type": "string",
"description": "PAYOUT_PENDING: The disbursement is still in progress<br />\nAMOUNT_ZERO: The payout was recorded with an amount of $0.00<br />\nRETRY_PERIOD_ELAPSED: The disbursement already existed and is too old to be attempted again<br />\nLIKELY_MATCH_FOUND: The disbursement was not attempted because another disbursement was identified as a duplicate<br />\nWORKER_NOT_FOUND: The worker was not found on the active roster<br />\nPAYMENT_PROFILE_NOT_FOUND: No destination account could be found for the provided worker<br />\nPAYMENT_PROFILE_SUSPENDED: The destination account is not payable due to suspension<br />\nPAYMENT_PROFILE_NOT_ACTIVE: The destination account is not payable because it is closed or otherwise inactive<br />\nPAYMENT_PROFILE_FRAUDULENT: The destination account is not payable because it has been closed for fraud<br />\nTRANSFER_FAILED: An error occurred while issuing the funds to the worker<br />\nAMOUNT_EXCEEDS_ORG_SINGLE_DISBURSEMENT_LIMIT: The amount exceeds the organization's limit for a single disbursement<br />\nAMOUNT_EXCEEDS_ORG_DAILY_DISBURSEMENT_LIMIT: The amount would exceed the organization's daily limit for disbursements<br />\nAMOUNT_EXCEEDS_WORKER_DAILY_DISBURSEMENT_LIMIT: The amount would exceed the worker's daily limit for disbursements<br />\nAMOUNT_DOES_NOT_COVER_USER_FEES: The fee to be charged to the worker exceeds or is equal to the disbursement amount<br />\nUNEXPECTED_ERROR: Something unexpected occurred. Contact Branch support if this persists<br />\n",
"example": "WORKER_NOT_FOUND",
"enum": [
"PAYOUT_PENDING",
"AMOUNT_ZERO",
"RETRY_PERIOD_ELAPSED",
"LIKELY_MATCH_FOUND",
"WORKER_NOT_FOUND",
"PAYMENT_PROFILE_NOT_FOUND",
"PAYMENT_PROFILE_SUSPENDED",
"PAYMENT_PROFILE_NOT_ACTIVE",
"PAYMENT_PROFILE_FRAUDULENT",
"TRANSFER_FAILED",
"AMOUNT_EXCEEDS_ORG_SINGLE_DISBURSEMENT_LIMIT",
"AMOUNT_EXCEEDS_ORG_DAILY_DISBURSEMENT_LIMIT",
"AMOUNT_EXCEEDS_WORKER_DAILY_DISBURSEMENT_LIMIT",
"AMOUNT_DOES_NOT_COVER_USER_FEES",
"UNEXPECTED_ERROR",
"UNKNOWN"
]
},
"payout": {
"$ref": "#/components/schemas/V2DisbursementPayoutDto"
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"time_created": {
"type": "string",
"format": "date-time"
},
"time_modified": {
"type": "string",
"format": "date-time"
}
}
},
"V2DisbursementPayoutDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the payout. Depending on the payout type, the format may differ."
},
"payment_type": {
"type": "string",
"description": "Describes which payment profile type was the destination for the disbursement's funds",
"enum": [
"WALLET",
"CARD",
"NONE"
]
},
"amount": {
"type": "integer",
"description": "How much of the disbursement was sent to the worker after any fees.",
"format": "int64"
},
"fee": {
"type": "integer",
"description": "The fee charged by Branch for the disbursement.",
"format": "int64"
},
"time_completed": {
"type": "string",
"description": "When the money arrived in the worker's account. This is not necessarily when the disbursement was created.",
"format": "date-time"
}
},
"description": "Payout details. Will be null if the disbursement has not been paid out"
},
"Address": {
"required": [
"address_1",
"city",
"postal_code",
"state"
],
"type": "object",
"properties": {
"address_1": {
"type": "string"
},
"city": {
"type": "string"
},
"state": {
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"postal_code": {
"pattern": "^\\d{5}(-\\d{4})?$",
"type": "string"
}
}
},
"EmployeeDirectFormRequest": {
"required": [
"owner",
"token"
],
"type": "object",
"properties": {
"token": {
"type": "string"
},
"owner": {
"$ref": "#/components/schemas/Owner"
}
}
},
"Owner": {
"required": [
"address",
"first_name",
"last_name"
],
"type": "object",
"properties": {
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"address": {
"$ref": "#/components/schemas/Address"
}
}
},
"EmployeeTabapayExternalCardDto": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"network": {
"type": "string"
},
"last_four": {
"type": "string"
},
"time_created": {
"type": "string",
"format": "date-time"
}
}
},
"DeductionCreationRequest": {
"required": [
"employee_id"
],
"type": "object",
"properties": {
"employee_id": {
"type": "string"
},
"amount": {
"minimum": 0,
"type": "integer",
"description": "Amount, in cents, that was successfully deducted for the employee",
"format": "int32"
}
}
},
"PayrollCalendarCreationRequest": {
"type": "object",
"properties": {
"payroll_periods": {
"type": "array",
"description": "The list of payroll periods creation requests for the calendar.",
"items": {
"$ref": "#/components/schemas/PayrollPeriodCreationRequest"
}
}
}
},
"PayrollPeriodCreationRequest": {
"type": "object",
"properties": {
"payroll_deadline": {
"type": "string",
"description": "The date by which workers' pay must be determined.",
"format": "date",
"example": "2000-01-01"
},
"pay_date": {
"type": "string",
"description": "The date individuals will receive payment.",
"format": "date",
"example": "2000-01-01"
}
},
"description": "The list of payroll periods creation requests for the calendar."
},
"PayrollCalendarDto": {
"type": "object",
"properties": {
"payroll_periods": {
"type": "array",
"description": "The list of payroll periods in the calendar.",
"items": {
"$ref": "#/components/schemas/PayrollPeriodDto"
}
}
}
},
"EmployeeCreationRequest": {
"required": [
"first_name",
"last_name"
],
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "Numbers not allowed",
"example": "John"
},
"last_name": {
"type": "string",
"description": "Numbers not allowed",
"example": "Larson"
},
"phone_number": {
"type": "string",
"example": "+11235550123"
},
"email_address": {
"type": "string",
"example": "[email protected]"
},
"type": {
"type": "string",
"enum": [
"HOURLY",
"SALARY"
]
},
"pay_rate": {
"minimum": 0,
"type": "integer",
"description": "Rate of pay, in cents, used in conjunction with type. The following should be defined as follows:\n If type = salary, then should be the annual salary of the employee\n If type = hourly, then should be the hourly rate the employee earns",
"format": "int32"
},
"business_name": {
"type": "string",
"example": "Dunder Mifflin Paper Company"
},
"group_name": {
"type": "string",
"example": "GOLD"
},
"ein": {
"type": "string",
"example": "XXXXXXXXX"
},
"password": {
"type": "string"
}
}
},
"ApiError": {
"type": "object",
"properties": {
"status": {
"type": "integer",
"format": "int32",
"example": 123
},
"error": {
"type": "string",
"example": "Bad Request"
},
"message": {
"type": "string",
"example": "An error occurred while processing your request"
},
"path": {
"type": "string",
"example": "/v1/organizations/123/employees/456/wallets"
},
"timestamp": {
"type": "string",
"format": "date-time"
}
}
},
"OrganizationWalletCreatedSchema": {
"type": "object",
"properties": {
"employee_id": {
"type": "string"
},
"account_number": {
"type": "string",
"example": "000000000000"
},
"routing_number": {
"type": "string",
"example": "123456789"
},
"has_activated_card": {
"type": "boolean"
},
"status": {
"type": "string",
"description": "CREATED: A Wallet has been created<br />FAILED: A failure occurred during wallet creation<br />CLOSED: A Wallet has been closed<br />PENDING: We are attempting to create the wallet. It is not yet available for disbursing funds<br />UNCLAIMED: A wallet has been created and is able to receive funds through the API, but the employee has not signed up with Branch yet<br />ACTIVE: A wallet has been created for an employee and they are in control of it<br />",
"example": "ACTIVE",
"enum": [
"PENDING",
"REVIEW",
"CREATED",
"UNCLAIMED",
"ACTIVE",
"FAILED",
"SUSPENDED",
"CLOSED"
]
},
"reason_code": {
"type": "string",
"description": "ADDITIONAL_DOCS_REQ: Branch was not able to confirm identity with the information provided the user will have to provide additional documentation, like drivers license, in order get a wallet on Branch<br />FRAUD_CHECK_REQ: Branch is performing checks to ensure that the user is not linked in any way to fraudulent activity. Once finished, this user's wallet will be activated. Until then, the wallet that was created for the user will not be able to be funded in any way<br />CONFIRMED_FRAUD: Branch determined this user to behave in fraudulent activities and will not be allowed to have a wallet on the platform. The wallet created for them will remain closed.<br />DENIED: For one reason or another, the user has been denied access to the platform<br />ERROR: A system error occurred, please try again",
"example": "ADDITIONAL_DOCS_REQ",
"enum": [
"FRAUD_CHECK_REQ",
"ADDITIONAL_DOCS_REQ",
"CONFIRMED_FRAUD",
"DENIED",
"KYC_SSN_INVALID",
"KYC_PII_SSN_MISMATCH",
"KYC_DECEASED",
"KYC_PO_BOX_NOT_ALLOWED",
"KYC_ERROR",
"ACCOUNT_SUSPENDED",
"ACCOUNT_WITH_EMAIL_EXISTS",
"EMPLOYEE_NOT_FOUND",
"EMPLOYEE_UNDER_AGE",
"EMPLOYEE_ALREADY_LINKED",
"ERROR"
]
},
"reason": {
"type": "string",
"description": "A short message explaining the reason_code field. This may or may not provide additional context into the reason_code."
},
"onboarding_link": {
"type": "string",
"description": "If the wallet was initiated by the organization, will be populated with a link with which the employee can utilized to streamline onboarding."
},
"kyc_additional_documentation_link": {
"type": "string"
},
"ein": {
"type": "string",
"description": "9 digit Employer Identification Number. Format: XXXXXXXXX"
},
"business_name": {
"type": "string",
"description": "Business name for the user."
},
"time_last_initialization_attempted": {
"type": "string",
"format": "date-time"
},
"time_created": {
"type": "string",
"format": "date-time"
}
}
},
"OrganizationWalletCreationRequest": {
"required": [
"address",
"date_of_birth",
"email_address",
"first_name",
"last_name",
"phone_number",
"ssn"
],
"type": "object",
"properties": {
"first_name": {
"type": "string",
"description": "Numbers not allowed",
"example": "John"
},
"middle_name": {
"type": "string",
"description": "Numbers not allowed",
"example": "William"
},
"last_name": {
"type": "string",
"description": "Numbers not allowed",
"example": "Larson"
},
"address": {
"$ref": "#/components/schemas/Address"
},
"date_of_birth": {
"pattern": "[0-9]{4}-[0-9]{2}-[0-9]{2}",
"type": "string",
"description": "Birthdate provided must indicate greater than 14 years of age. Some organizations may not allow accounts if the age is not 18 or greater.",
"example": "2000-01-01"
},
"ssn": {
"pattern": "[0-9]{9}",
"type": "string",
"example": "123456789"
},
"phone_number": {
"type": "string",
"example": "+11235550123"
},
"email_address": {
"type": "string",
"example": "[email protected]"
},
"type": {
"type": "string",
"example": "HOURLY",
"enum": [
"HOURLY",
"SALARY"
]
},
"pay_rate": {
"minimum": 0,
"type": "integer",
"description": "Rate of pay, in cents, used in conjunction with type. The following should be defined as follows:\n If type = salary, then should be the annual salary of the employee\n If type = hourly, then should be the hourly rate the employee earns",
"format": "int32",
"example": 1500
},
"group_name": {
"type": "string",
"example": "GOLD"
},
"create_employee": {
"type": "boolean",
"description": "If true and the employee does not already exist, will create the employee with the given information.",
"default": false
},
"order_card": {
"type": "boolean",
"description": "If true, a physical card will be shipped to the user when the account is created.",
"default": false
},
"card_program": {
"type": "string",
"description": "Specifies which card should be ordered and delivered to the user. Available options for an organization can be found by querying the card-controller -> getCardPrograms endpoint.Default is organization's default card program - generally BRANCH_W2",
"example": "BRANCH_W2"
},
"ein": {
"type": "string",
"description": "9 digit employer identification number",
"example": "XXXXXXXXX"
},
"business_name": {
"type": "string",
"example": "Dunder Mifflin Paper Company"
}
}
},
"ShiftCreationRequest": {
"required": [
"shift_type"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "If blank, defaults to UUID"
},
"punch_in": {
"type": "string",
"description": "Time the shift started",
"format": "date-time"
},
"punch_out": {
"type": "string",
"description": "Time the shift ended. This does not need to be provided if 'hours' is provided",
"format": "date-time"
},
"hours": {
"minimum": 0,
"exclusiveMinimum": false,
"type": "number",
"description": "Number of hours worked in the shift. This value cannot be negative. This does not need to be provided if 'punch_out' is provided",
"format": "double"
},
"rate": {
"type": "integer",
"description": "Amount of money, in cents, the employee made per hour/day depending on 'shift_type'",
"format": "int32"
},
"shift_type": {
"type": "string",
"description": "Shift type, 'HOURLY' or 'DAILY'",
"enum": [
"Daily",
"Hourly"
]
}
}
},
"DisbursementCreationRequest": {
"required": [
"amount",
"description",
"external_id",
"type"
],
"type": "object",
"properties": {
"amount": {
"minimum": 0,
"type": "integer",
"description": "Amount, in cents, to be disbursed to the employee.",
"format": "int32",
"example": 500
},
"external_id": {
"maxLength": 64,
"minLength": 0,
"type": "string",
"description": "Allows the custom specification of a unique ID that correlates back to your own records.",
"example": "123456"
},
"type": {
"type": "string",
"description": "TIPS: Disbursement for tips earned by worker<br />\nTRIP: Disbursement for trip made by worker<br />\nMILEAGE: Disbursement for miles driven by worker<br />\nPAYCHECK: Disbursement for income earned by worker<br />\nMISCELLANEOUS: Disbursement to worker for miscellaneous reasons<br />\nDEVICE: Disbursement for a worker’s device<br />\nDELIVERY: Disbursement for delivery made by worker<br />\nDEPOSIT: Disbursement for generic purposes<br />\nREWARD: Disbursement for a reward earned<br />\nBONUS: Disbursement representing a non-usual payment<br />\n",
"example": "MILEAGE",
"enum": [
"TIPS",
"TRIP",
"MILEAGE",
"PAYCHECK",
"MISCELLANEOUS",
"DEVICE",
"DELIVERY",
"DEPOSIT",
"BONUS",
"REWARD",
"UNKNOWN"
]
},
"employee_group": {
"maxLength": 150,
"minLength": 0,
"type": "string",
"description": "A grouping for the employee. This could be anything that is used by your organization in order to group employees: store id, employee tier, region code, etc.",
"example": "Store #1"
},
"display_sub_label": {
"maxLength": 150,
"minLength": 0,
"type": "string",
"description": "A description of the disbursement. This will be displayed to the worker in the application",
"example": "Tip for delivery"
},
"description": {
"maxLength": 256,
"minLength": 0,
"type": "string",
"example": "Disbursement for miles driven."
},
"retry": {
"type": "boolean",
"description": "Default false. If status goes into FAILED, allows disbursement to be reattempted."
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"time_scheduled": {
"type": "string",
"description": "Date and time at which the specified amount will be disbursed to the employee.",
"format": "date-time"
}
}
},
"DisbursementDto": {
"type": "object",
"properties": {
"employee_id": {
"type": "string",
"description": "The Employee's ID",
"example": "123"
},
"amount": {
"type": "integer",
"description": "Amount, in cents, to be disbursed to the employee",
"format": "int64",
"example": 500
},
"external_id": {
"type": "string",
"description": "Allows the custom specification of a unique ID that correlates back to your own records. Max 64 characters",
"example": "123456"
},
"type": {
"type": "string",
"description": "TIPS: Disbursement for tips earned by worker<br />\nTRIP: Disbursement for trip made by worker<br />\nMILEAGE: Disbursement for miles driven by worker<br />\nPAYCHECK: Disbursement for income earned by worker<br />\nMISCELLANEOUS: Disbursement to worker for miscellaneous reasons<br />\nDEVICE: Disbursement for a worker’s device<br />\nDELIVERY: Disbursement for delivery made by worker<br />\nDEPOSIT: Disbursement for generic purposes<br />\nREWARD: Disbursement for a reward earned<br />\nBONUS: Disbursement representing a non-usual payment<br />\n",
"example": "MILEAGE",
"enum": [
"TIPS",
"TRIP",
"MILEAGE",
"PAYCHECK",
"MISCELLANEOUS",
"DEVICE",
"DELIVERY",
"DEPOSIT",
"BONUS",
"REWARD",
"UNKNOWN"
]
},
"employee_group": {
"type": "string",
"description": "A grouping for the employee. This could be anything that is used by your organization in order to group employees: store id, employee tier, region code, etc",
"example": "Store #1"
},
"description": {
"type": "string",
"example": "Disbursement for miles driven"
},
"display_sub_label": {
"type": "string",
"description": "A description of the disbursement. This will be displayed to the worker in the application",
"example": "Tip for delivery"
},
"status": {
"type": "string",
"description": "CREATED: The disbursement was created and Branch is attempting to disburse funds<br />ATTEMPTING_PAYBACK: Branch successfully disbursed funds and is attempting pay back for the disbursement<br />PAYBACK_FAILED: Branch successfully disbursed funds but was unable to complete pay back for the disbursement<br />COMPLETED: Branch successfully disbursed funds<br />FAILED: Funds were unable to be disbursed<br />CANCELLED: Funds were not disbursed and no further action will be attempted for the disbursement<br />",
"example": "CREATED",
"enum": [
"CREATED",
"ATTEMPTING_PAYBACK",
"PAYBACK_FAILED",
"COMPLETED",
"FAILED",
"SKIPPED",
"CANCELLED",
"SCHEDULED",
"UNKNOWN"
]
},
"status_reason": {
"type": "string"
},
"reason_code": {
"type": "string",
"description": "WORKER_NOT_MATCHED: The worker is not linked to a Branch account.<br />WORKER_NOT_FOUND: The worker is not found on the active roster.<br />AMOUNT_ZERO: The payout was recorded with an amount of $0.00.<br />WALLET_SUSPENDED: The worker's wallet is suspended.<br />WALLET_NOT_FOUND: The worker's wallet was not found.<br />WALLET_NOT_ACTIVE: The worker's wallet is inactive.<br />AMOUNT_TOO_LARGE: The requested amount exceeds the organization's limit.<br />INVOICING_FAILED: The payout succeeded, but something went wrong during invoicing. Safe to retry.<br />RETRY_PERIOD_ELAPSED: The disbursement is too old to be retried.<br />LIKELY_MATCH_FOUND: The disbursement was not attempted because another disbursement was identified as a duplicate.<br />TRANSFER_FAILED: An error occurred while issuing the funds to the worker.<br />UNEXPECTED_ERROR: There was an unexpected error. Contact Branch Support.<br />PENDING: Disbursement is Pending.<br />",
"example": "WORKER_NOT_FOUND",
"enum": [
"UNEXPECTED_ERROR",
"WORKER_NOT_MATCHED",
"WORKER_NOT_FOUND",
"TRANSFER_FAILED",
"WALLET_SUSPENDED",
"WALLET_NOT_FOUND",
"WALLET_NOT_ACTIVE",
"AMOUNT_ZERO",
"AMOUNT_TOO_LARGE",
"AMOUNT_DOES_NOT_COVER_FEES",
"DAILY_DISBURSEMENT_LIMIT_MET",
"WORKERS_DAILY_LIMIT_MET",
"INVOICING_FAILED",
"RETRY_PERIOD_ELAPSED",
"LIKELY_MATCH_FOUND",
"PENDING"
]
},
"metadata": {
"type": "object",
"additionalProperties": {
"type": "object"
}
},
"time_created": {
"type": "string",
"format": "date-time"
},
"time_modified": {
"type": "string",
"format": "date-time"
}
}
},
"RemittanceUpdateRequest": {
"required": [
"status"
],
"type": "object",
"properties": {
"status": {
"pattern": "COMPLETED",
"type": "string"
}
}
},
"ApiCursorPageV2DisbursementDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/V2DisbursementDto"
}
},
"prev_cursor": {
"type": "string"
},
"next_cursor": {
"type": "string"
},
"size": {
"type": "integer",
"format": "int64"
}
}
},
"V2WalletPayoutDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the payout."
},
"amount": {
"type": "integer",
"description": "How much of the disbursement was sent to the worker after any fees.",
"format": "int64"
},
"fee": {
"type": "integer",
"description": "The fee charged by Branch for the disbursement.",
"format": "int64"
},
"account_number": {
"type": "string",
"description": "The account number of the Branch Wallet."
},
"routing_number": {
"type": "string",
"description": "The routing number of the Branch Wallet."
},
"time_completed": {
"type": "string",
"description": "When the money arrived in the worker's account. This is not necessarily when the disbursement was created.",
"format": "date-time"
}
}
},
"V2CardPayoutDto": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the payout."
},
"amount": {
"type": "integer",
"description": "How much of the disbursement was sent to the worker after any fees.",
"format": "int64"
},
"fee": {
"type": "integer",
"description": "The fee charged by Branch for the disbursement.",
"format": "int64"
},
"last_four": {
"type": "string",
"description": "The last four digits of the card number."
},
"network": {
"type": "string",
"description": "The network of the card.",
"example": "MASTERCARD"
},
"time_completed": {
"type": "string",
"description": "When the money arrived in the worker's account. This is not necessarily when the disbursement was created.",
"format": "date-time"
}
}
},
"PageSlimEmployeeTabapayExternalCardDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EmployeeTabapayExternalCardDto"
}
},
"page_number": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
}
}
},
"PageRequest": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
},
"offset": {
"type": "integer",
"format": "int64"
}
}
},
"OrganizationDto": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"org_key": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"PageOrganizationDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OrganizationDto"
}
},
"page_number": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
},
"total_pages": {
"type": "integer",
"format": "int64"
},
"total_number_of_elements": {
"type": "integer",
"format": "int64"
},
"has_next_page": {
"type": "boolean"
},
"has_prev_page": {
"type": "boolean"
},
"next_page": {
"type": "string"
},
"prev_page": {
"type": "string"
}
}
},
"OrganizationWalletDto": {
"type": "object",
"properties": {
"employee_id": {
"type": "string"
},
"account_number": {
"type": "string",
"example": "000000000000"
},
"routing_number": {
"type": "string",
"example": "123456789"
},
"has_activated_card": {
"type": "boolean"
},
"status": {
"type": "string",
"description": "CREATED: A Wallet has been created<br />FAILED: A failure occurred during wallet creation<br />CLOSED: A Wallet has been closed<br />NOT_CREATED: A Wallet has not yet been created<br />PENDING: We are attempting to create the wallet. It is not yet available for disbursing funds<br />UNCLAIMED: A wallet has been created and is able to receive funds through the API, but the employee has not signed up with Branch yet<br />ACTIVE: A wallet has been created for an employee and they are in control of it<br />",
"example": "ACTIVE",
"enum": [
"NOT_CREATED",
"PENDING",
"REVIEW",
"CREATED",
"UNCLAIMED",
"ACTIVE",
"FAILED",
"SUSPENDED",
"CLOSED"
]
},
"reason_code": {
"type": "string",
"description": "ADDITIONAL_DOCS_REQ: Branch was not able to confirm identity with the information provided the user will have to provide additional documentation, like drivers license, in order get a wallet on Branch<br />FRAUD_CHECK_REQ: Branch is performing checks to ensure that the user is not linked in any way to fraudulent activity. Once finished, this user's wallet will be activated. Until then, the wallet that was created for the user will not be able to be funded in any way<br />CONFIRMED_FRAUD: Branch determined this user to behave in fraudulent activities and will not be allowed to have a wallet on the platform. The wallet created for them will remain closed.<br />DENIED: For one reason or another, the user has been denied access to the platform<br />ERROR: A system error occurred, please try again",
"example": "ADDITIONAL_DOCS_REQ",
"enum": [
"FRAUD_CHECK_REQ",
"ADDITIONAL_DOCS_REQ",
"CONFIRMED_FRAUD",
"DENIED",
"KYC_SSN_INVALID",
"KYC_PII_SSN_MISMATCH",
"KYC_DECEASED",
"KYC_PO_BOX_NOT_ALLOWED",
"KYC_ERROR",
"ACCOUNT_SUSPENDED",
"ACCOUNT_WITH_EMAIL_EXISTS",
"EMPLOYEE_NOT_FOUND",
"EMPLOYEE_UNDER_AGE",
"EMPLOYEE_ALREADY_LINKED",
"ERROR"
]
},
"reason": {
"type": "string",
"description": "A short message explaining the reason_code field. This may or may not provide additional context into the reason_code."
},
"onboarding_link": {
"type": "string",
"description": "If the wallet was initiated by the organization, will be populated with a link with which the employee can utilized to streamline onboarding."
},
"kyc_additional_documentation_link": {
"type": "string"
},
"ein": {
"type": "string",
"description": "9 digit Employer Identification Number. Format: XXXXXXXXX"
},
"business_name": {
"type": "string",
"description": "Business name for the user."
},
"time_last_initialization_attempted": {
"type": "string",
"format": "date-time"
},
"time_created": {
"type": "string",
"format": "date-time"
}
}
},
"PageOrganizationWalletDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OrganizationWalletDto"
}
},
"page_number": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
},
"total_pages": {
"type": "integer",
"format": "int64"
},
"total_number_of_elements": {
"type": "integer",
"format": "int64"
},
"has_next_page": {
"type": "boolean"
},
"has_prev_page": {
"type": "boolean"
},
"next_page": {
"type": "string"
},
"prev_page": {
"type": "string"
}
}
},
"OrganizationWalletStatusDto": {
"type": "object",
"properties": {
"employee_id": {
"type": "string"
},
"wallet_status": {
"type": "string",
"enum": [
"NOT_CREATED",
"PENDING",
"REVIEW",
"CREATED",
"UNCLAIMED",
"ACTIVE",
"FAILED",
"SUSPENDED",
"CLOSED"
]
}
}
},
"PageOrganizationWalletStatusDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/OrganizationWalletStatusDto"
}
},
"page_number": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
},
"total_pages": {
"type": "integer",
"format": "int64"
},
"total_number_of_elements": {
"type": "integer",
"format": "int64"
},
"has_next_page": {
"type": "boolean"
},
"has_prev_page": {
"type": "boolean"
},
"next_page": {
"type": "string"
},
"prev_page": {
"type": "string"
}
}
},
"PageRemittanceDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemittanceDto"
}
},
"page_number": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
},
"total_pages": {
"type": "integer",
"format": "int64"
},
"total_number_of_elements": {
"type": "integer",
"format": "int64"
},
"has_next_page": {
"type": "boolean"
},
"has_prev_page": {
"type": "boolean"
},
"next_page": {
"type": "string"
},
"prev_page": {
"type": "string"
}
}
},
"RemittanceDto": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"pay_date": {
"type": "string",
"description": "ISO-8601 date for the pay date, provided by the organization, for the remittance and associated requested deductions",
"format": "date"
},
"remittance_date": {
"type": "string",
"description": "ISO-8601 date-time with offset from UTC for when the remittance was created",
"format": "date-time"
},
"status": {
"type": "string",
"description": "STARTED: Remittance is active; remittance has been created and has unsettled requested deductions\n\nPROCESSING: Remittance is actively processing reported deductions made; no further actions are necessary\n\nCOMPLETED: Remittance requested deductions are all settled and payment has been made; no further actions are necessary\n\nCANCELED: Remittance was created but is now invalid; no further actions are necessary\n\nAWAITING_PAYMENT: Remittance requested deductions are all settled and remittance has yet to be paid",
"enum": [
"STARTED",
"PROCESSING",
"COMPLETED",
"CANCELED",
"AWAITING_PAYMENT",
"UNKNOWN"
]
},
"requested_amount": {
"type": "integer",
"description": "Total amount, in cents, that was requested for deductions for all employees",
"format": "int32"
}
}
},
"PageRemittanceRequestedDeductionDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RemittanceRequestedDeductionDto"
}
},
"page_number": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
},
"total_pages": {
"type": "integer",
"format": "int64"
},
"total_number_of_elements": {
"type": "integer",
"format": "int64"
},
"has_next_page": {
"type": "boolean"
},
"has_prev_page": {
"type": "boolean"
},
"next_page": {
"type": "string"
},
"prev_page": {
"type": "string"
}
}
},
"RemittanceRequestedDeductionDto": {
"type": "object",
"properties": {
"employee_id": {
"type": "string"
},
"amount": {
"type": "integer",
"description": "Amount, in cents, that should be deducted for the employee",
"format": "int32"
}
}
},
"PageDisbursementDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DisbursementDto"
}
},
"page_number": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
},
"total_pages": {
"type": "integer",
"format": "int64"
},
"total_number_of_elements": {
"type": "integer",
"format": "int64"
},
"has_next_page": {
"type": "boolean"
},
"has_prev_page": {
"type": "boolean"
},
"next_page": {
"type": "string"
},
"prev_page": {
"type": "string"
}
}
},
"PageEmployeeDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EmployeeDto"
}
},
"page_number": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
},
"total_pages": {
"type": "integer",
"format": "int64"
},
"total_number_of_elements": {
"type": "integer",
"format": "int64"
},
"has_next_page": {
"type": "boolean"
},
"has_prev_page": {
"type": "boolean"
},
"next_page": {
"type": "string"
},
"prev_page": {
"type": "string"
}
}
},
"CardProgram": {
"type": "object",
"properties": {
"token": {
"type": "string"
},
"description": {
"type": "string"
}
}
},
"EmployeeAdvanceDto": {
"type": "object",
"properties": {
"employee_id": {
"type": "string",
"description": "The worker's ID"
},
"amount": {
"type": "integer",
"description": "The amount, in cents, of the advance that was taken",
"format": "int32"
},
"date": {
"type": "string",
"description": "ISO-8601 date-time with offset from UTC for when the advance was taken",
"format": "date-time"
},
"due_date": {
"type": "string",
"description": "ISO-8601 date for when the advance is due to be paid back",
"format": "date"
},
"outstanding_amount": {
"type": "integer",
"description": "The amount, in cents, of the advance that has yet to be paid back",
"format": "int32"
},
"status": {
"type": "string",
"description": "OUTSTANDING: Advance has not been paid back and there are no unsettled requested deductions on an active remittance\n\nDEDUCTION_REQUESTED: Advance has an unsettled requested deduction on an active remittance",
"enum": [
"OUTSTANDING",
"DEDUCTION_REQUESTED"
]
},
"id": {
"type": "string",
"description": "The Advance ID"
}
}
},
"PageEmployeeAdvanceDto": {
"type": "object",
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EmployeeAdvanceDto"
}
},
"page_number": {
"type": "integer",
"format": "int64"
},
"size": {
"type": "integer",
"format": "int64"
},
"total_pages": {
"type": "integer",
"format": "int64"
},
"total_number_of_elements": {
"type": "integer",
"format": "int64"
},
"has_next_page": {
"type": "boolean"
},
"has_prev_page": {
"type": "boolean"
},
"next_page": {
"type": "string"
},
"prev_page": {
"type": "string"
}
}
}
}
},
"x-tagGroups": [
{
"name": "Branch Direct",
"tags": [
"Wallet",
"V2 Disbursements",
"Wallet Payout Details",
"Card Payout Details",
"External Cards",
"Payment Profile",
"Cards"
]
},
{
"name": "Wallets & Disbursements",
"tags": [
"Wallet",
"Disbursements",
"Cards"
]
},
{
"name": "Earnings & Advances",
"tags": [
"Employees",
"Payroll Periods",
"Payroll Calendar",
"Shifts",
"Employee Earnings",
"Remittance",
"Advances"
]
}
],
"x-readme": {
"explorer-enabled": true,
"proxy-enabled": true,
"samples-enabled": true
}
}
openapi: 3.0.1
info:
title: Branch API
description: Branch API
version: 2.0.5
servers:
- url: https://api.branchapp.com
description: Production URL
- url: https://sandbox.branchapp.com
description: Sandbox URL
paths:
/v2/organizations/{orgId}/employees/{employeeId}/payment-profile:
get:
tags:
- Payment Profile
summary: Get Payment Profile
description: >-
Get the payment profile for an employee, which shows the payment types
by which a worker can be paid according to their current configuration,
and the active payment type.
operationId: getEmployeePaymentProfile
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EmployeePaymentProfileDto'
'404':
description: Returned if the requested employeeId was not found
content:
application/json:
examples:
Not Found:
description: Not Found
value:
timestamp: '2024-02-06T18:02:04.351+00:00'
status: 404
error: Not Found
message: No message available
path: >-
/v2/organizations/100019/employees/2444666666/payment-profile
put:
tags:
- Payment Profile
summary: Update Payment Profile
description: Update a worker's payment profile to change the active payment type.
operationId: updatePaymentProfileActiveType
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmployeePaymentProfileItem'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EmployeePaymentProfileDto'
'400':
description: >-
Returned if the request does not adhere to the API specification. Or
if the worker does not have the requested profile type configured
content:
application/json:
examples:
Invalid Request:
description: Invalid Request
value:
timestamp: '2024-02-06T18:13:21.047+00:00'
status: 400
error: Bad Request
message: '[400] valid payment card not found for employee'
path: /v2/organizations/100019/employees/123456/payment-profile
'404':
description: Returned if the requested employeeId was not found
content:
application/json:
examples:
Not Found:
description: Not Found
value:
timestamp: '2024-02-06T18:02:04.351+00:00'
status: 404
error: Not Found
message: No message available
path: >-
/v2/organizations/100019/employees/2444666666/payment-profile
/v1/organizations/{orgId}/payroll-calendar/periods/{payrollPeriodId}:
get:
tags:
- Payroll Periods
summary: Get Payroll Period
description: Get an existing payroll period.
operationId: getPayrollPeriod
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: payrollPeriodId
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PayrollPeriodDto'
put:
tags:
- Payroll Periods
summary: Update Payroll Period
description: Update a payroll period pay date and deadline.
operationId: updatePayrollPeriod
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: payrollPeriodId
in: path
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PayrollPeriodUpdateRequest'
required: true
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PayrollPeriodDto'
/v1/organizations/{orgId}/employees/{employeeId}:
get:
tags:
- Employees
summary: Get Employee
description: Get an Employee by ID.
operationId: getEmployee
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/EmployeeDto'
put:
tags:
- Employees
summary: Update Employee
description: Update an employee by ID.
operationId: updateEmployee
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmployeeUpdateRequest'
required: true
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/EmployeeDto'
post:
tags:
- Employees
summary: Create Employee
description: Create a new employee.
operationId: createEmployee
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmployeeCreationRequest'
required: true
responses:
'201':
description: Created
content:
'*/*':
schema:
$ref: '#/components/schemas/EmployeeDto'
delete:
tags:
- Employees
summary: Delete Employee
description: Delete an employee by ID.
operationId: deleteEmployee
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
responses:
'204':
description: No Content
/v1/organizations/{orgId}/employees/{employeeId}/shifts/{shiftId}:
get:
tags:
- Shifts
summary: Get Shift
description: >-
Get a worker's completed shift. Requires shift_id to identify which
shift to retrieve. If an existing shift cannot be found with the
provided shift_id, call will return 404 - Not Found. Successful call
will return the completed shift.
operationId: getShift
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
- name: shiftId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ShiftDto'
put:
tags:
- Shifts
summary: Update Shift
description: >-
Update a worker's completed shift. Requires shift_id to identify which
shift to update. If an existing shift cannot be found with the provided
shift_id, call will return 404 - Not Found. Requests made with missing
required fields or invalid dates/times will return 400 - Bad Request.
Successful call will return newly updated shift.
operationId: updateShift
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
- name: shiftId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ShiftUpdateRequest'
required: true
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ShiftDto'
delete:
tags:
- Shifts
summary: Delete shift
description: >-
Delete an existing shift. Requires shift_id to identify which shift to
delete. If an existing shift cannot be found with the provided shift_id,
call will return 404 - Not Found. Successful call will return status 204
- No Content.
operationId: deleteShift
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
- name: shiftId
in: path
required: true
schema:
type: string
responses:
'204':
description: No Content
/v1/organizations/{orgId}/employees/{employeeId}/period-earnings:
put:
tags:
- Employee Earnings
summary: Update Employee Earning
description: Update an employee's earning for a period.
operationId: updateEmployeePeriodEarning
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmployeePeriodEarningRequest'
required: true
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/EmployeePeriodEarningSummaryDto'
/v2/organizations/{orgId}/workers/{workerId}/disbursements:
get:
tags:
- V2 Disbursements
summary: Search Disbursements
description: Searches all disbursements sent to worker.
operationId: getDisbursementsForWorker
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: workerId
in: path
required: true
schema:
type: string
- name: id
in: query
required: false
schema:
type: integer
format: int64
- name: status
in: query
required: false
schema:
type: string
enum:
- PENDING
- SCHEDULED
- COMPLETED
- FAILED
- CANCELED
- SKIPPED
- UNKNOWN
- name: type
in: query
required: false
schema:
type: string
enum:
- TIP
- TRIP
- MILEAGE
- PAYCHECK
- MISCELLANEOUS
- DEVICE
- DELIVERY
- DEPOSIT
- BONUS
- REWARD
- UNKNOWN
- name: external_id
in: query
required: false
schema:
type: string
- name: invoice_id
in: query
required: false
schema:
type: integer
format: int64
- name: worker_id
in: query
required: false
schema:
type: string
- name: time_last_attempted_start
in: query
required: false
schema:
type: string
format: date-time
- name: time_last_attempted_end
in: query
required: false
schema:
type: string
format: date-time
- name: after
in: query
required: false
schema:
type: string
- name: before
in: query
required: false
schema:
type: string
- name: size
in: query
required: false
schema:
type: integer
format: int64
- name: sort
in: query
description: 'Format: field_name,direction'
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiCursorPageV2DisbursementDto'
post:
tags:
- V2 Disbursements
summary: Create Disbursement
description: >-
Creates a disbursement for an worker. A disbursement is an initiation of
payment to a worker.
operationId: createDisbursement
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: workerId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/V2DisbursementCreateRequest'
required: true
responses:
'200':
description: >-
Returned if the disbursement already exists and an additional
attempt to disburse funds was not made. This can occur if the
disbursement was already complete or if the resulting status is in [
CANCELED | SKIPPED ]
content:
application/json:
schema:
$ref: '#/components/schemas/V2DisbursementDto'
'201':
description: >-
Returned if an attempt to disburse funds was successful. This can
occur if the disbursement is new or if it already exists and is
retried successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/V2DisbursementDto'
'202':
description: >-
Returned if an attempt to disburse funds was unsuccessful. This can
occur if the resulting status is in [ FAILED | PENDING ]. Additional
information can be found via reason_code.
content:
application/json:
schema:
$ref: '#/components/schemas/V2DisbursementDto'
'400':
description: >-
Returned if the request does not adhere to the API specification.
Can also be returned if the disbursement cannot be created due to
improper invoicing setup.
content:
application/json:
examples:
Invalid Request:
description: Invalid Request
value:
timestamp: '2023-01-01T00:00:00.000+00:00'
status: 400
error: Bad Request
message: amount is required
path: /v2/organizations/123/employees/123/disbursements
Missing Invoice Configuration:
description: Missing Invoice Configuration
value:
timestamp: '2023-01-01T00:00:00.000+00:00'
status: 400
error: Bad Request
message: Could not match disbursement to invoice configuration
path: /v2/organizations/123/employees/123/disbursements
'429':
description: >-
Returned if the request is throttled. Throttling can occur based on
requests/min or if you have reached your organization's daily
disbursement limit.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
description: If persistent, contact your Branch representative.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v2/organizations/{orgId}/employees/{employeeId}/external-cards:
get:
tags:
- External Cards
summary: Get External Cards for Employee
description: Get a list of external cards for an employee.
operationId: getExternalCardsForOrganizationEmployee
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
- name: network
in: query
required: false
schema:
type: string
example: visa
- name: last4
in: query
required: false
schema:
type: string
example: 1234
- name: time_created_start
in: query
required: false
schema:
type: string
format: date-time
example: '2023-01-01T00:00:00.000Z'
- name: time_created_end
in: query
required: false
schema:
type: string
format: date-time
example: '2023-01-31T23:59:59.999Z'
- name: sort
in: query
required: false
schema:
type: string
- name: direction
in: query
required: false
schema:
type: string
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageSlimEmployeeTabapayExternalCardDto'
post:
tags:
- External Cards
summary: Add External Card for Employee
description: Add an external card for an employee.
operationId: addExternalCardForOrganizationEmployee
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmployeeDirectFormRequest'
required: true
responses:
'201':
description: >-
Returned if an attempt to add an external payment card was
successful.
content:
application/json:
schema:
$ref: '#/components/schemas/EmployeeTabapayExternalCardDto'
'400':
description: >-
Returned if the request does not adhere to the API specification.
This will also return if the payment card details are invalid or not
supported
content:
application/json:
examples:
Invalid Request:
description: Invalid Request
value:
timestamp: '2023-01-01T00:00:00.000+00:00'
status: 400
error: Bad Request
message: token is required
path: /v2/organizations/123/employees/123/disbursements
'409':
description: >
Returned if the worker has an existing external payment card.
Direct worker,
to delete their current card and try again.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/v1/organizations/{orgId}/remittances/{remittanceId}/deductions:
post:
tags:
- Remittance
summary: Report Remittance Deduction
description: Post an amount that was deducted from a worker on the remittance.
operationId: reportOrganizationRemittanceDeduction
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: remittanceId
in: path
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeductionCreationRequest'
required: true
responses:
'201':
description: Created
/v1/organizations/{orgId}/payroll-calendar:
get:
tags:
- Payroll Calendar
summary: Get Payroll Calendar
description: Get the payroll calendar for an organization
operationId: getPayrollCalendar
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PayrollCalendarDto'
post:
tags:
- Payroll Calendar
summary: Create Payroll Calendar
description: Create a new payroll calendar, which defines payroll periods.
operationId: createPayrollCalendar
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PayrollCalendarCreationRequest'
required: true
responses:
'201':
description: Created
content:
'*/*':
schema:
$ref: '#/components/schemas/PayrollCalendarDto'
/v1/organizations/{orgId}/employees/{employeeId}/wallets:
post:
tags:
- Wallet
summary: Create Wallet
description: >-
Creates a digital wallet for an employee. Optionally allows a Branch
card to be automatically ordered for the employee.
operationId: createWalletForEmployee
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: X-Test-Mode
in: header
required: false
schema:
type: boolean
- name: orgId
in: path
description: The Organization ID
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
description: The Employee ID
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationWalletCreationRequest'
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationWalletCreatedSchema'
'400':
description: >-
Bad Request. If a field provided is invalid, an error response will
be returned with a message describing why.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
example:
timestamp: '2023-01-01T11:00:00.000+00:00'
status: 400
error: Bad Request
message: Field 'example' was invalid
path: /v1/organizations/123/employees/456/wallets
'404':
description: >-
Not Found. Can occur for example if the create_employee field is set
to false, and the employee ID provided does not match an existing
worker.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
example:
timestamp: '2023-01-01T11:00:00.000+00:00'
status: 404
error: Not Found
message: Employee does not exist for org
path: /v1/organizations/123/employees/456/wallets
'409':
description: >-
Conflict. Can occur for example if the email address provided
matches an account that already exists.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
example:
timestamp: '2023-01-01T11:00:00.000+00:00'
status: 409
error: Conflict
message: >-
Could not create wallet account for user: An account with the
email '[email protected]' already exists
path: /v1/organizations/123/employees/456/wallets
'429':
description: Rate limited. Max 2 wallet creation requests per second.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
example:
timestamp: '2023-01-01T11:00:00.000+00:00'
status: 429
error: Too Many Requests
message: You have exhausted your API Request Quota
path: /v1/organizations/123/employees/456/wallets
/v1/organizations/{orgId}/employees/{employeeId}/shifts:
post:
tags:
- Shifts
summary: Submit Shift
description: >-
Submit a person's completed shift. Shifts are used to track hours worked
by an individual employee and calculate EWA. Shifts may be created with
a shift_id unique within the organization. Failure to provide a shift_id
will cause a UUID to be generated instead.If a duplicate shift_id is
provided, call will return 409 - Conflict. Successful call will return
the created shift and status 201.
operationId: submitShift
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ShiftCreationRequest'
required: true
responses:
'201':
description: Created
content:
'*/*':
schema:
$ref: '#/components/schemas/ShiftDto'
/v1/organizations/{orgId}/employees/{employeeId}/disbursements:
get:
tags:
- Disbursements
summary: Get Employee Disbursements
description: Get a list of disbursements for an employee.
operationId: getDisbursementsForEmployee
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
- name: id
in: query
required: false
schema:
type: integer
format: int32
- name: status
in: query
required: false
schema:
type: string
enum:
- CREATED
- ATTEMPTING_PAYBACK
- PAYBACK_FAILED
- COMPLETED
- FAILED
- SKIPPED
- CANCELLED
- SCHEDULED
- UNKNOWN
- name: type
in: query
required: false
schema:
type: string
enum:
- TIPS
- TRIP
- MILEAGE
- PAYCHECK
- MISCELLANEOUS
- DEVICE
- DELIVERY
- DEPOSIT
- BONUS
- REWARD
- UNKNOWN
- name: external_id
in: query
required: false
schema:
type: string
- name: invoice_id
in: query
required: false
schema:
type: integer
format: int32
- name: amount
in: query
required: false
schema:
type: integer
format: int32
- name: employee_id
in: query
required: false
schema:
type: string
- name: employee_group
in: query
required: false
schema:
type: string
- name: time_created_start
in: query
required: false
schema:
type: string
format: date-time
- name: time_created_end
in: query
required: false
schema:
type: string
format: date-time
- name: page_direction
in: query
required: false
schema:
type: string
enum:
- PREV
- NEXT
- name: last_time_created
in: query
required: false
schema:
type: string
format: date-time
- name: last_id
in: query
required: false
schema:
type: integer
format: int32
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
- name: sort
in: query
description: 'Format: field_name,direction'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageDisbursementDto'
post:
tags:
- Disbursements
summary: Create Disbursement
description: >-
Creates a disbursement for an employee. This initiates a payment to the
employee.
operationId: createDisbursement_1
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DisbursementCreationRequest'
required: true
responses:
'201':
description: Created
content:
'*/*':
schema:
$ref: '#/components/schemas/DisbursementDto'
/v1/organizations/{orgId}/remittances/{remittanceId}:
patch:
tags:
- Remittance
summary: Complete Remittance Deduction
description: Update an existing remittance to mark it as completed.
operationId: updateOrganizationRemittance
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: remittanceId
in: path
required: true
schema:
type: integer
format: int32
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RemittanceUpdateRequest'
required: true
responses:
'200':
description: OK
/v2/organizations/{orgId}/payouts/wallet/{transferId}:
get:
tags:
- Wallet Payout Details
summary: Get Wallet Payout
description: Returns Wallet payout details for a disbursement
operationId: getWalletPayoutDetails
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: transferId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/V2WalletPayoutDto'
/v2/organizations/{orgId}/payouts/card/{transferId}:
get:
tags:
- Card Payout Details
summary: Get External Card Payout
description: Returns external card payout details for a disbursement
operationId: getExternalCardPayoutDetails
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: transferId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/V2CardPayoutDto'
/v2/organizations/{orgId}/employees/{employeeId}/external-cards/{entityId}:
get:
tags:
- External Cards
summary: Get External Cards for Entity
description: Get a list of external cards for an entity.
operationId: getExternalCardByEntityId
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
- name: entityId
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/EmployeeTabapayExternalCardDto'
delete:
tags:
- External Cards
summary: Delete External Card for Entity
description: Delete an external card for an entity.
operationId: deleteExternalCardByEntityId
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
- name: entityId
in: path
required: true
schema:
type: integer
format: int64
responses:
'204':
description: No Content
/v2/organizations/{orgId}/disbursements:
get:
tags:
- V2 Disbursements
summary: Search Disbursements
description: Searches all disbursements.
operationId: searchDisbursements
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: id
in: query
required: false
schema:
type: integer
format: int64
- name: status
in: query
required: false
schema:
type: string
enum:
- PENDING
- SCHEDULED
- COMPLETED
- FAILED
- CANCELED
- SKIPPED
- UNKNOWN
- name: type
in: query
required: false
schema:
type: string
enum:
- TIP
- TRIP
- MILEAGE
- PAYCHECK
- MISCELLANEOUS
- DEVICE
- DELIVERY
- DEPOSIT
- BONUS
- REWARD
- UNKNOWN
- name: external_id
in: query
required: false
schema:
type: string
- name: invoice_id
in: query
required: false
schema:
type: integer
format: int64
- name: worker_id
in: query
required: false
schema:
type: string
- name: time_last_attempted_start
in: query
required: false
schema:
type: string
format: date-time
- name: time_last_attempted_end
in: query
required: false
schema:
type: string
format: date-time
- name: after
in: query
required: false
schema:
type: string
- name: before
in: query
required: false
schema:
type: string
- name: size
in: query
required: false
schema:
type: integer
format: int64
- name: sort
in: query
description: 'Format: field_name,direction'
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/ApiCursorPageV2DisbursementDto'
/v1/organizations:
get:
tags:
- Organizations
operationId: getAllOrganizations
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: pageRequest
in: query
required: true
schema:
$ref: '#/components/schemas/PageRequest'
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageOrganizationDto'
/v1/organizations/{orgId}:
get:
tags:
- Organizations
operationId: getOrganization
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/OrganizationDto'
/v1/organizations/{orgId}/wallets:
get:
tags:
- Wallet
summary: Get Wallets
description: Get a list of wallets for an organization.
operationId: getWallets
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageOrganizationWalletDto'
/v1/organizations/{orgId}/wallet-statuses:
get:
tags:
- Wallet
summary: Get Wallet Status
description: Get the status of wallets for an organization.
operationId: getWalletStatuses
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageOrganizationWalletStatusDto'
/v1/organizations/{orgId}/remittances:
get:
tags:
- Remittance
summary: Get Remittances
description: Return a list of remittances by an organization.
operationId: getOrganizationRemittances
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageRemittanceDto'
/v1/organizations/{orgId}/remittances/{remittanceId}/requested-deductions:
get:
tags:
- Remittance
summary: Get Remittance Requested Deductions
description: Return a list of requested deductions from an organization's remittance.
operationId: getOrganizationRemittanceRequestedDeductions
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: remittanceId
in: path
required: true
schema:
type: integer
format: int32
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageRemittanceRequestedDeductionDto'
/v1/organizations/{orgId}/invoices/{invoiceId}/disbursements:
get:
tags:
- Disbursements
summary: Get Invoice Disbursements
description: Get a list of disbursements for an invoice.
operationId: getDisbursementsForInvoice
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: invoiceId
in: path
required: true
schema:
type: integer
format: int32
- name: id
in: query
required: false
schema:
type: integer
format: int32
- name: status
in: query
required: false
schema:
type: string
enum:
- CREATED
- ATTEMPTING_PAYBACK
- PAYBACK_FAILED
- COMPLETED
- FAILED
- SKIPPED
- CANCELLED
- SCHEDULED
- UNKNOWN
- name: type
in: query
required: false
schema:
type: string
enum:
- TIPS
- TRIP
- MILEAGE
- PAYCHECK
- MISCELLANEOUS
- DEVICE
- DELIVERY
- DEPOSIT
- BONUS
- REWARD
- UNKNOWN
- name: external_id
in: query
required: false
schema:
type: string
- name: invoice_id
in: query
required: false
schema:
type: integer
format: int32
- name: amount
in: query
required: false
schema:
type: integer
format: int32
- name: employee_id
in: query
required: false
schema:
type: string
- name: employee_group
in: query
required: false
schema:
type: string
- name: time_created_start
in: query
required: false
schema:
type: string
format: date-time
- name: time_created_end
in: query
required: false
schema:
type: string
format: date-time
- name: page_direction
in: query
required: false
schema:
type: string
enum:
- PREV
- NEXT
- name: last_time_created
in: query
required: false
schema:
type: string
format: date-time
- name: last_id
in: query
required: false
schema:
type: integer
format: int32
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
- name: sort
in: query
description: 'Format: field_name,direction'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageDisbursementDto'
/v1/organizations/{orgId}/employees:
get:
tags:
- Employees
summary: Search Employees
description: Search for employees by providing search criteria.
operationId: searchEmployees
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: first_name
in: query
required: false
schema:
type: string
- name: last_name
in: query
required: false
schema:
type: string
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageEmployeeDto'
/v1/organizations/{orgId}/employees/{employeeId}/wallet:
get:
tags:
- Wallet
summary: Get Employee Wallet
description: Get wallet for an employee.
operationId: getWallet
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/OrganizationWalletDto'
/v1/organizations/{orgId}/employees/{employeeId}/card:
get:
tags:
- Cards
summary: Get Active User Card
description: >-
Card returned will be either active or temporarily suspended.
Permanently terminated cards are not returned.
If the provided user does not have an active or suspended card, call
will return 404 - Not Found.
operationId: getCard
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
responses:
'200':
description: |-
Success - Returns a user's active card.
`state` can be `ACTIVE` or `SUSPENDED`.
`card_type` can be `PHYSICAL` or `VIRTUAL`.
content:
application/json:
example:
state: ACTIVE
card_type: PHYSICAL
time_created: '2020-02-18T19:42:48Z'
'404':
description: Not Found. No active or suspended card
content:
application/json:
schema:
$ref: '#/components/schemas/ApiError'
example:
timestamp: '2023-10-04T23:08:23.954+00:00'
status: 404
error: Not Found
message: Employee does not have an active card.
path: /v1/organizations/123/employees/456/card
/v1/organizations/{orgId}/employees/{employeeId}/address:
get:
tags:
- Employees
summary: Get Employee Address
description: Get the address of an employee.
operationId: getEmployeeAddress
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employeeId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/Address'
/v1/organizations/{orgId}/disbursements:
get:
tags:
- Disbursements
summary: Search Disbursements
description: >-
Searches disbursements while returning HATEOAS links (e.g. prev_page,
next_page) for retrieving additional data.
operationId: searchDisbursements_1
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: id
in: query
required: false
schema:
type: integer
format: int32
- name: status
in: query
required: false
schema:
type: string
enum:
- CREATED
- ATTEMPTING_PAYBACK
- PAYBACK_FAILED
- COMPLETED
- FAILED
- SKIPPED
- CANCELLED
- SCHEDULED
- UNKNOWN
- name: type
in: query
required: false
schema:
type: string
enum:
- TIPS
- TRIP
- MILEAGE
- PAYCHECK
- MISCELLANEOUS
- DEVICE
- DELIVERY
- DEPOSIT
- BONUS
- REWARD
- UNKNOWN
- name: external_id
in: query
required: false
schema:
type: string
- name: invoice_id
in: query
required: false
schema:
type: integer
format: int32
- name: amount
in: query
required: false
schema:
type: integer
format: int32
- name: employee_id
in: query
required: false
schema:
type: string
- name: employee_group
in: query
required: false
schema:
type: string
- name: time_created_start
in: query
required: false
schema:
type: string
format: date-time
- name: time_created_end
in: query
required: false
schema:
type: string
format: date-time
- name: page_direction
in: query
required: false
schema:
type: string
enum:
- PREV
- NEXT
- name: last_time_created
in: query
required: false
schema:
type: string
format: date-time
- name: last_id
in: query
required: false
schema:
type: integer
format: int32
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
- name: sort
in: query
description: 'Format: field_name,direction'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageDisbursementDto'
/v1/organizations/{orgId}/card-programs:
get:
tags:
- card-program-controller
operationId: getCardPrograms
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
responses:
'200':
description: OK
content:
'*/*':
schema:
type: array
items:
$ref: '#/components/schemas/CardProgram'
/v1/organizations/{orgId}/advances:
get:
tags:
- Advances
summary: Search Advances
description: 'Search for advances by an organization by entering search criteria. '
operationId: searchOrganizationAdvances
parameters:
- name: apikey
in: header
required: true
schema:
type: string
- name: orgId
in: path
required: true
schema:
type: integer
format: int32
- name: employee_id
in: query
required: false
schema:
type: string
- name: page
in: query
required: false
schema:
type: integer
format: int64
- name: size
in: query
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/PageEmployeeAdvanceDto'
components:
schemas:
EmployeePaymentProfileItem:
type: object
properties:
type:
type: string
enum:
- WALLET
- CARD
- NONE
ref:
type: string
EmployeePaymentProfileDto:
type: object
properties:
additional_payment_methods:
type: array
items:
$ref: '#/components/schemas/EmployeePaymentProfileItem'
payment_method:
$ref: '#/components/schemas/EmployeePaymentProfileItem'
PayrollPeriodUpdateRequest:
type: object
properties:
payroll_deadline:
type: string
description: The date by which workers' pay must be determined.
format: date
example: '2000-01-01'
pay_date:
type: string
description: The date individuals will receive payment.
format: date
example: '2000-01-01'
PayrollPeriodDto:
type: object
properties:
id:
type: integer
description: The existing payroll period id.
format: int32
payroll_deadline:
type: string
description: The date by which workers' pay must be determined.
format: date
example: '2000-01-01'
pay_date:
type: string
description: The date individuals will receive payment.
format: date
example: '2000-01-01'
EmployeeUpdateRequest:
required:
- first_name
- last_name
type: object
properties:
first_name:
type: string
description: Numbers not allowed
example: John
last_name:
type: string
description: Numbers not allowed
example: Larson
phone_number:
type: string
example: '+11235550123'
email_address:
type: string
example: [email protected]
type:
type: string
enum:
- HOURLY
- SALARY
pay_rate:
minimum: 0
type: integer
description: >-
Rate of pay, in cents, used in conjunction with type. The following
should be defined as follows:
If type = salary, then should be the annual salary of the employee
If type = hourly, then should be the hourly rate the employee earns
format: int32
business_name:
type: string
example: Dunder Mifflin Paper Company
group_name:
type: string
example: GOLD
ein:
type: string
example: XXXXXXXXX
password:
type: string
EmployeeDto:
type: object
properties:
id:
type: string
first_name:
type: string
description: First name of employee
last_name:
type: string
description: Last name of employee
phone_number:
type: string
description: Phone number of employee
email_address:
type: string
description: Email address of employee
type:
type: string
enum:
- HOURLY
- SALARY
pay_rate:
type: integer
description: >-
Rate of pay, in cents, used in conjunction with type. The following
should be defined as follows:
If type = salary, then is the annual salary of the employee
If type = hourly, then is the hourly rate the employee earns
format: int32
business_name:
type: string
example: Branch
group_name:
type: string
example: GOLD
ein:
type: string
description: 9 digit employer identification number
example: XXXXXXXXX
ShiftUpdateRequest:
type: object
properties:
punch_in:
type: string
description: Time the shift started
format: date-time
punch_out:
type: string
description: >-
Time the shift ended. This does not need to be provided if 'hours'
is provided
format: date-time
hours:
type: number
description: >-
Number of hours worked in the shift. This does not need to be
provided if 'punch_out' is provided
format: double
rate:
type: integer
description: >-
Amount of money, in cents, the employee made per hour/day depending
on 'shift_type'
format: int32
shift_type:
type: string
description: Shift type, 'HOURLY' or 'DAILY'
enum:
- Daily
- Hourly
ShiftDto:
type: object
properties:
id:
type: string
description: The id of the timekeeping record.
employee_id:
type: string
description: The worker's ID
punch_in_time:
type: string
description: ISO-8601 date-time with offset from UTC for shift start time.
format: date-time
punch_out_time:
type: string
description: ISO-8601 date-time with offset from UTC for shift end time.
format: date-time
rate:
type: integer
description: The rate, in cents, that the employee gets paid for this shift.
format: int32
shift_type:
type: string
description: Shift type, hourly or daily.
enum:
- Daily
- Hourly
pay_period_end:
type: string
description: ISO-8601 date for the end of the pay period.
format: date
time_modified:
type: string
description: >-
ISO-8601 date-time with offset from UTC for when the timekeeping
record was last updated
format: date-time
EmployeePeriodEarningRequest:
type: object
properties:
amount:
minimum: 1
type: integer
description: earnings in cents. must be greater than 0
format: int32
date:
pattern: yyyy-MM-dd
type: string
format: date
example: '2021-06-24'
EmployeePeriodEarningSummaryDto:
type: object
properties:
total:
type: integer
description: |
Total current period earnings for an employee
Unit: Cents
format: int32
V2DisbursementCreateRequest:
required:
- amount
- description
- external_id
- type
type: object
properties:
amount:
minimum: 0
type: integer
description: Amount, in cents, to be disbursed to the worker.
format: int32
example: 500
external_id:
maxLength: 64
minLength: 0
type: string
description: >-
Allows the custom specification of a unique ID that correlates back
to your own records.
example: '123456'
type:
type: string
description: >
TIP: Disbursement for a tip earned by worker<br />
TRIP: Disbursement for a trip made by worker<br />
MILEAGE: Disbursement for miles driven by worker<br />
PAYCHECK: Disbursement for income earned by worker<br />
MISCELLANEOUS: Disbursement to worker for miscellaneous reasons<br
/>
DEVICE: Disbursement for a worker’s device<br />
DELIVERY: Disbursement for a delivery made by worker<br />
DEPOSIT: Disbursement for a generic purposes<br />
REWARD: Disbursement for a reward earned<br />
BONUS: Disbursement representing a non-usual payment<br />
example: MILEAGE
enum:
- TIP
- TRIP
- MILEAGE
- PAYCHECK
- MISCELLANEOUS
- DEVICE
- DELIVERY
- DEPOSIT
- BONUS
- REWARD
- UNKNOWN
worker_group:
maxLength: 150
minLength: 0
type: string
description: >-
A grouping for the worker. This could be anything that is used by
your organization in order to group workers: store id, worker tier,
region code, etc.
example: 'Store #1'
display_header_label:
maxLength: 32
minLength: 0
type: string
description: >-
A description of the disbursement. This will be displayed to the
worker
example: Tip for delivery
display_sub_label:
maxLength: 32
minLength: 0
type: string
description: >-
A description of the disbursement. This will be displayed to the
worker in the application
example: Tip for delivery
description:
maxLength: 256
minLength: 0
type: string
example: Disbursement for miles driven.
retry:
type: boolean
description: >-
Default false. If status goes into FAILED, allows disbursement to be
reattempted.
metadata:
type: object
additionalProperties:
type: object
time_scheduled:
type: string
description: >-
Date and time at which the specified amount will be disbursed to the
worker.
format: date-time
ErrorResponse:
type: object
properties:
status:
type: integer
format: int32
error:
type: string
message:
type: string
path:
type: string
timestamp:
type: string
format: date-time
V2DisbursementDto:
type: object
properties:
worker_id:
type: string
description: The worker's ID
example: '123'
amount:
type: integer
description: Amount, in cents, to be disbursed to the worker
format: int64
example: 500
external_id:
type: string
description: >-
Allows the custom specification of a unique ID that correlates back
to your own records. Max 64 characters
example: '123456'
type:
type: string
description: >
TIP: Disbursement for a tip earned by worker<br />
TRIP: Disbursement for a trip made by worker<br />
MILEAGE: Disbursement for miles driven by worker<br />
PAYCHECK: Disbursement for income earned by worker<br />
MISCELLANEOUS: Disbursement to worker for miscellaneous reasons<br
/>
DEVICE: Disbursement for a worker’s device<br />
DELIVERY: Disbursement for a delivery made by worker<br />
DEPOSIT: Disbursement for a generic purposes<br />
REWARD: Disbursement for a reward earned<br />
BONUS: Disbursement representing a non-usual payment<br />
example: TIP
enum:
- TIP
- TRIP
- MILEAGE
- PAYCHECK
- MISCELLANEOUS
- DEVICE
- DELIVERY
- DEPOSIT
- BONUS
- REWARD
- UNKNOWN
worker_group:
type: string
description: >-
A grouping for the worker. This could be anything that is used by
your organization in order to group workers: store id, worker tier,
region code, etc
example: 'Store #1'
description:
type: string
example: Disbursement for miles driven
display_header_label:
type: string
description: >-
A description of the disbursement. This will be displayed to the
worker in the application
example: Tip for delivery
display_sub_label:
type: string
description: >-
A description of the disbursement. This will be displayed to the
worker in the application
example: Tip for delivery
status:
type: string
description: >
PENDING: The disbursement was created, but processing is not yet
completed<br />
SCHEDULED: The disbursement was created and will be processed at the
specified time<br />
COMPLETED: Branch successfully disbursed funds<br />
FAILED: Funds were unable to be disbursed<br />
CANCELED: Funds were not disbursed and no further action will be
attempted for the disbursement<br />
SKIPPED: The disbursement was not attempted. See reason_code for
more information<br />
example: COMPLETED
enum:
- PENDING
- SCHEDULED
- COMPLETED
- FAILED
- CANCELED
- SKIPPED
- UNKNOWN
reason_code:
type: string
description: >
PAYOUT_PENDING: The disbursement is still in progress<br />
AMOUNT_ZERO: The payout was recorded with an amount of $0.00<br />
RETRY_PERIOD_ELAPSED: The disbursement already existed and is too
old to be attempted again<br />
LIKELY_MATCH_FOUND: The disbursement was not attempted because
another disbursement was identified as a duplicate<br />
WORKER_NOT_FOUND: The worker was not found on the active roster<br
/>
PAYMENT_PROFILE_NOT_FOUND: No destination account could be found for
the provided worker<br />
PAYMENT_PROFILE_SUSPENDED: The destination account is not payable
due to suspension<br />
PAYMENT_PROFILE_NOT_ACTIVE: The destination account is not payable
because it is closed or otherwise inactive<br />
PAYMENT_PROFILE_FRAUDULENT: The destination account is not payable
because it has been closed for fraud<br />
TRANSFER_FAILED: An error occurred while issuing the funds to the
worker<br />
AMOUNT_EXCEEDS_ORG_SINGLE_DISBURSEMENT_LIMIT: The amount exceeds the
organization's limit for a single disbursement<br />
AMOUNT_EXCEEDS_ORG_DAILY_DISBURSEMENT_LIMIT: The amount would exceed
the organization's daily limit for disbursements<br />
AMOUNT_EXCEEDS_WORKER_DAILY_DISBURSEMENT_LIMIT: The amount would
exceed the worker's daily limit for disbursements<br />
AMOUNT_DOES_NOT_COVER_USER_FEES: The fee to be charged to the worker
exceeds or is equal to the disbursement amount<br />
UNEXPECTED_ERROR: Something unexpected occurred. Contact Branch
support if this persists<br />
example: WORKER_NOT_FOUND
enum:
- PAYOUT_PENDING
- AMOUNT_ZERO
- RETRY_PERIOD_ELAPSED
- LIKELY_MATCH_FOUND
- WORKER_NOT_FOUND
- PAYMENT_PROFILE_NOT_FOUND
- PAYMENT_PROFILE_SUSPENDED
- PAYMENT_PROFILE_NOT_ACTIVE
- PAYMENT_PROFILE_FRAUDULENT
- TRANSFER_FAILED
- AMOUNT_EXCEEDS_ORG_SINGLE_DISBURSEMENT_LIMIT
- AMOUNT_EXCEEDS_ORG_DAILY_DISBURSEMENT_LIMIT
- AMOUNT_EXCEEDS_WORKER_DAILY_DISBURSEMENT_LIMIT
- AMOUNT_DOES_NOT_COVER_USER_FEES
- UNEXPECTED_ERROR
- UNKNOWN
payout:
$ref: '#/components/schemas/V2DisbursementPayoutDto'
metadata:
type: object
additionalProperties:
type: object
time_created:
type: string
format: date-time
time_modified:
type: string
format: date-time
V2DisbursementPayoutDto:
type: object
properties:
id:
type: string
description: >-
The ID of the payout. Depending on the payout type, the format may
differ.
payment_type:
type: string
description: >-
Describes which payment profile type was the destination for the
disbursement's funds
enum:
- WALLET
- CARD
- NONE
amount:
type: integer
description: How much of the disbursement was sent to the worker after any fees.
format: int64
fee:
type: integer
description: The fee charged by Branch for the disbursement.
format: int64
time_completed:
type: string
description: >-
When the money arrived in the worker's account. This is not
necessarily when the disbursement was created.
format: date-time
description: Payout details. Will be null if the disbursement has not been paid out
Address:
required:
- address_1
- city
- postal_code
- state
type: object
properties:
address_1:
type: string
city:
type: string
state:
maxLength: 2
minLength: 2
type: string
postal_code:
pattern: ^\d{5}(-\d{4})?$
type: string
EmployeeDirectFormRequest:
required:
- owner
- token
type: object
properties:
token:
type: string
owner:
$ref: '#/components/schemas/Owner'
Owner:
required:
- address
- first_name
- last_name
type: object
properties:
first_name:
type: string
last_name:
type: string
address:
$ref: '#/components/schemas/Address'
EmployeeTabapayExternalCardDto:
type: object
properties:
id:
type: integer
format: int64
network:
type: string
last_four:
type: string
time_created:
type: string
format: date-time
DeductionCreationRequest:
required:
- employee_id
type: object
properties:
employee_id:
type: string
amount:
minimum: 0
type: integer
description: Amount, in cents, that was successfully deducted for the employee
format: int32
PayrollCalendarCreationRequest:
type: object
properties:
payroll_periods:
type: array
description: The list of payroll periods creation requests for the calendar.
items:
$ref: '#/components/schemas/PayrollPeriodCreationRequest'
PayrollPeriodCreationRequest:
type: object
properties:
payroll_deadline:
type: string
description: The date by which workers' pay must be determined.
format: date
example: '2000-01-01'
pay_date:
type: string
description: The date individuals will receive payment.
format: date
example: '2000-01-01'
description: The list of payroll periods creation requests for the calendar.
PayrollCalendarDto:
type: object
properties:
payroll_periods:
type: array
description: The list of payroll periods in the calendar.
items:
$ref: '#/components/schemas/PayrollPeriodDto'
EmployeeCreationRequest:
required:
- first_name
- last_name
type: object
properties:
first_name:
type: string
description: Numbers not allowed
example: John
last_name:
type: string
description: Numbers not allowed
example: Larson
phone_number:
type: string
example: '+11235550123'
email_address:
type: string
example: [email protected]
type:
type: string
enum:
- HOURLY
- SALARY
pay_rate:
minimum: 0
type: integer
description: >-
Rate of pay, in cents, used in conjunction with type. The following
should be defined as follows:
If type = salary, then should be the annual salary of the employee
If type = hourly, then should be the hourly rate the employee earns
format: int32
business_name:
type: string
example: Dunder Mifflin Paper Company
group_name:
type: string
example: GOLD
ein:
type: string
example: XXXXXXXXX
password:
type: string
ApiError:
type: object
properties:
status:
type: integer
format: int32
example: 123
error:
type: string
example: Bad Request
message:
type: string
example: An error occurred while processing your request
path:
type: string
example: /v1/organizations/123/employees/456/wallets
timestamp:
type: string
format: date-time
OrganizationWalletCreatedSchema:
type: object
properties:
employee_id:
type: string
account_number:
type: string
example: '000000000000'
routing_number:
type: string
example: '123456789'
has_activated_card:
type: boolean
status:
type: string
description: >-
CREATED: A Wallet has been created<br />FAILED: A failure occurred
during wallet creation<br />CLOSED: A Wallet has been closed<br
/>PENDING: We are attempting to create the wallet. It is not yet
available for disbursing funds<br />UNCLAIMED: A wallet has been
created and is able to receive funds through the API, but the
employee has not signed up with Branch yet<br />ACTIVE: A wallet has
been created for an employee and they are in control of it<br />
example: ACTIVE
enum:
- PENDING
- REVIEW
- CREATED
- UNCLAIMED
- ACTIVE
- FAILED
- SUSPENDED
- CLOSED
reason_code:
type: string
description: >-
ADDITIONAL_DOCS_REQ: Branch was not able to confirm identity with
the information provided the user will have to provide additional
documentation, like drivers license, in order get a wallet on
Branch<br />FRAUD_CHECK_REQ: Branch is performing checks to ensure
that the user is not linked in any way to fraudulent activity. Once
finished, this user's wallet will be activated. Until then, the
wallet that was created for the user will not be able to be funded
in any way<br />CONFIRMED_FRAUD: Branch determined this user to
behave in fraudulent activities and will not be allowed to have a
wallet on the platform. The wallet created for them will remain
closed.<br />DENIED: For one reason or another, the user has been
denied access to the platform<br />ERROR: A system error occurred,
please try again
example: ADDITIONAL_DOCS_REQ
enum:
- FRAUD_CHECK_REQ
- ADDITIONAL_DOCS_REQ
- CONFIRMED_FRAUD
- DENIED
- KYC_SSN_INVALID
- KYC_PII_SSN_MISMATCH
- KYC_DECEASED
- KYC_PO_BOX_NOT_ALLOWED
- KYC_ERROR
- ACCOUNT_SUSPENDED
- ACCOUNT_WITH_EMAIL_EXISTS
- EMPLOYEE_NOT_FOUND
- EMPLOYEE_UNDER_AGE
- EMPLOYEE_ALREADY_LINKED
- ERROR
reason:
type: string
description: >-
A short message explaining the reason_code field. This may or may
not provide additional context into the reason_code.
onboarding_link:
type: string
description: >-
If the wallet was initiated by the organization, will be populated
with a link with which the employee can utilized to streamline
onboarding.
kyc_additional_documentation_link:
type: string
ein:
type: string
description: '9 digit Employer Identification Number. Format: XXXXXXXXX'
business_name:
type: string
description: Business name for the user.
time_last_initialization_attempted:
type: string
format: date-time
time_created:
type: string
format: date-time
OrganizationWalletCreationRequest:
required:
- address
- date_of_birth
- email_address
- first_name
- last_name
- phone_number
- ssn
type: object
properties:
first_name:
type: string
description: Numbers not allowed
example: John
middle_name:
type: string
description: Numbers not allowed
example: William
last_name:
type: string
description: Numbers not allowed
example: Larson
address:
$ref: '#/components/schemas/Address'
date_of_birth:
pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}'
type: string
description: >-
Birthdate provided must indicate greater than 14 years of age. Some
organizations may not allow accounts if the age is not 18 or
greater.
example: '2000-01-01'
ssn:
pattern: '[0-9]{9}'
type: string
example: '123456789'
phone_number:
type: string
example: '+11235550123'
email_address:
type: string
example: [email protected]
type:
type: string
example: HOURLY
enum:
- HOURLY
- SALARY
pay_rate:
minimum: 0
type: integer
description: >-
Rate of pay, in cents, used in conjunction with type. The following
should be defined as follows:
If type = salary, then should be the annual salary of the employee
If type = hourly, then should be the hourly rate the employee earns
format: int32
example: 1500
group_name:
type: string
example: GOLD
create_employee:
type: boolean
description: >-
If true and the employee does not already exist, will create the
employee with the given information.
default: false
order_card:
type: boolean
description: >-
If true, a physical card will be shipped to the user when the
account is created.
default: false
card_program:
type: string
description: >-
Specifies which card should be ordered and delivered to the user.
Available options for an organization can be found by querying the
card-controller -> getCardPrograms endpoint.Default is
organization's default card program - generally BRANCH_W2
example: BRANCH_W2
ein:
type: string
description: 9 digit employer identification number
example: XXXXXXXXX
business_name:
type: string
example: Dunder Mifflin Paper Company
ShiftCreationRequest:
required:
- shift_type
type: object
properties:
id:
type: string
description: If blank, defaults to UUID
punch_in:
type: string
description: Time the shift started
format: date-time
punch_out:
type: string
description: >-
Time the shift ended. This does not need to be provided if 'hours'
is provided
format: date-time
hours:
minimum: 0
exclusiveMinimum: false
type: number
description: >-
Number of hours worked in the shift. This value cannot be negative.
This does not need to be provided if 'punch_out' is provided
format: double
rate:
type: integer
description: >-
Amount of money, in cents, the employee made per hour/day depending
on 'shift_type'
format: int32
shift_type:
type: string
description: Shift type, 'HOURLY' or 'DAILY'
enum:
- Daily
- Hourly
DisbursementCreationRequest:
required:
- amount
- description
- external_id
- type
type: object
properties:
amount:
minimum: 0
type: integer
description: Amount, in cents, to be disbursed to the employee.
format: int32
example: 500
external_id:
maxLength: 64
minLength: 0
type: string
description: >-
Allows the custom specification of a unique ID that correlates back
to your own records.
example: '123456'
type:
type: string
description: >
TIPS: Disbursement for tips earned by worker<br />
TRIP: Disbursement for trip made by worker<br />
MILEAGE: Disbursement for miles driven by worker<br />
PAYCHECK: Disbursement for income earned by worker<br />
MISCELLANEOUS: Disbursement to worker for miscellaneous reasons<br
/>
DEVICE: Disbursement for a worker’s device<br />
DELIVERY: Disbursement for delivery made by worker<br />
DEPOSIT: Disbursement for generic purposes<br />
REWARD: Disbursement for a reward earned<br />
BONUS: Disbursement representing a non-usual payment<br />
example: MILEAGE
enum:
- TIPS
- TRIP
- MILEAGE
- PAYCHECK
- MISCELLANEOUS
- DEVICE
- DELIVERY
- DEPOSIT
- BONUS
- REWARD
- UNKNOWN
employee_group:
maxLength: 150
minLength: 0
type: string
description: >-
A grouping for the employee. This could be anything that is used by
your organization in order to group employees: store id, employee
tier, region code, etc.
example: 'Store #1'
display_sub_label:
maxLength: 150
minLength: 0
type: string
description: >-
A description of the disbursement. This will be displayed to the
worker in the application
example: Tip for delivery
description:
maxLength: 256
minLength: 0
type: string
example: Disbursement for miles driven.
retry:
type: boolean
description: >-
Default false. If status goes into FAILED, allows disbursement to be
reattempted.
metadata:
type: object
additionalProperties:
type: object
time_scheduled:
type: string
description: >-
Date and time at which the specified amount will be disbursed to the
employee.
format: date-time
DisbursementDto:
type: object
properties:
employee_id:
type: string
description: The Employee's ID
example: '123'
amount:
type: integer
description: Amount, in cents, to be disbursed to the employee
format: int64
example: 500
external_id:
type: string
description: >-
Allows the custom specification of a unique ID that correlates back
to your own records. Max 64 characters
example: '123456'
type:
type: string
description: >
TIPS: Disbursement for tips earned by worker<br />
TRIP: Disbursement for trip made by worker<br />
MILEAGE: Disbursement for miles driven by worker<br />
PAYCHECK: Disbursement for income earned by worker<br />
MISCELLANEOUS: Disbursement to worker for miscellaneous reasons<br
/>
DEVICE: Disbursement for a worker’s device<br />
DELIVERY: Disbursement for delivery made by worker<br />
DEPOSIT: Disbursement for generic purposes<br />
REWARD: Disbursement for a reward earned<br />
BONUS: Disbursement representing a non-usual payment<br />
example: MILEAGE
enum:
- TIPS
- TRIP
- MILEAGE
- PAYCHECK
- MISCELLANEOUS
- DEVICE
- DELIVERY
- DEPOSIT
- BONUS
- REWARD
- UNKNOWN
employee_group:
type: string
description: >-
A grouping for the employee. This could be anything that is used by
your organization in order to group employees: store id, employee
tier, region code, etc
example: 'Store #1'
description:
type: string
example: Disbursement for miles driven
display_sub_label:
type: string
description: >-
A description of the disbursement. This will be displayed to the
worker in the application
example: Tip for delivery
status:
type: string
description: >-
CREATED: The disbursement was created and Branch is attempting to
disburse funds<br />ATTEMPTING_PAYBACK: Branch successfully
disbursed funds and is attempting pay back for the disbursement<br
/>PAYBACK_FAILED: Branch successfully disbursed funds but was unable
to complete pay back for the disbursement<br />COMPLETED: Branch
successfully disbursed funds<br />FAILED: Funds were unable to be
disbursed<br />CANCELLED: Funds were not disbursed and no further
action will be attempted for the disbursement<br />
example: CREATED
enum:
- CREATED
- ATTEMPTING_PAYBACK
- PAYBACK_FAILED
- COMPLETED
- FAILED
- SKIPPED
- CANCELLED
- SCHEDULED
- UNKNOWN
status_reason:
type: string
reason_code:
type: string
description: >-
WORKER_NOT_MATCHED: The worker is not linked to a Branch account.<br
/>WORKER_NOT_FOUND: The worker is not found on the active roster.<br
/>AMOUNT_ZERO: The payout was recorded with an amount of $0.00.<br
/>WALLET_SUSPENDED: The worker's wallet is suspended.<br
/>WALLET_NOT_FOUND: The worker's wallet was not found.<br
/>WALLET_NOT_ACTIVE: The worker's wallet is inactive.<br
/>AMOUNT_TOO_LARGE: The requested amount exceeds the organization's
limit.<br />INVOICING_FAILED: The payout succeeded, but something
went wrong during invoicing. Safe to retry.<br
/>RETRY_PERIOD_ELAPSED: The disbursement is too old to be
retried.<br />LIKELY_MATCH_FOUND: The disbursement was not attempted
because another disbursement was identified as a duplicate.<br
/>TRANSFER_FAILED: An error occurred while issuing the funds to the
worker.<br />UNEXPECTED_ERROR: There was an unexpected error.
Contact Branch Support.<br />PENDING: Disbursement is Pending.<br />
example: WORKER_NOT_FOUND
enum:
- UNEXPECTED_ERROR
- WORKER_NOT_MATCHED
- WORKER_NOT_FOUND
- TRANSFER_FAILED
- WALLET_SUSPENDED
- WALLET_NOT_FOUND
- WALLET_NOT_ACTIVE
- AMOUNT_ZERO
- AMOUNT_TOO_LARGE
- AMOUNT_DOES_NOT_COVER_FEES
- DAILY_DISBURSEMENT_LIMIT_MET
- WORKERS_DAILY_LIMIT_MET
- INVOICING_FAILED
- RETRY_PERIOD_ELAPSED
- LIKELY_MATCH_FOUND
- PENDING
metadata:
type: object
additionalProperties:
type: object
time_created:
type: string
format: date-time
time_modified:
type: string
format: date-time
RemittanceUpdateRequest:
required:
- status
type: object
properties:
status:
pattern: COMPLETED
type: string
ApiCursorPageV2DisbursementDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/V2DisbursementDto'
prev_cursor:
type: string
next_cursor:
type: string
size:
type: integer
format: int64
V2WalletPayoutDto:
type: object
properties:
id:
type: string
description: The ID of the payout.
amount:
type: integer
description: How much of the disbursement was sent to the worker after any fees.
format: int64
fee:
type: integer
description: The fee charged by Branch for the disbursement.
format: int64
account_number:
type: string
description: The account number of the Branch Wallet.
routing_number:
type: string
description: The routing number of the Branch Wallet.
time_completed:
type: string
description: >-
When the money arrived in the worker's account. This is not
necessarily when the disbursement was created.
format: date-time
V2CardPayoutDto:
type: object
properties:
id:
type: string
description: The ID of the payout.
amount:
type: integer
description: How much of the disbursement was sent to the worker after any fees.
format: int64
fee:
type: integer
description: The fee charged by Branch for the disbursement.
format: int64
last_four:
type: string
description: The last four digits of the card number.
network:
type: string
description: The network of the card.
example: MASTERCARD
time_completed:
type: string
description: >-
When the money arrived in the worker's account. This is not
necessarily when the disbursement was created.
format: date-time
PageSlimEmployeeTabapayExternalCardDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/EmployeeTabapayExternalCardDto'
page_number:
type: integer
format: int64
size:
type: integer
format: int64
PageRequest:
type: object
properties:
page:
type: integer
format: int64
size:
type: integer
format: int64
offset:
type: integer
format: int64
OrganizationDto:
type: object
properties:
id:
type: integer
format: int32
org_key:
type: string
name:
type: string
PageOrganizationDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/OrganizationDto'
page_number:
type: integer
format: int64
size:
type: integer
format: int64
total_pages:
type: integer
format: int64
total_number_of_elements:
type: integer
format: int64
has_next_page:
type: boolean
has_prev_page:
type: boolean
next_page:
type: string
prev_page:
type: string
OrganizationWalletDto:
type: object
properties:
employee_id:
type: string
account_number:
type: string
example: '000000000000'
routing_number:
type: string
example: '123456789'
has_activated_card:
type: boolean
status:
type: string
description: >-
CREATED: A Wallet has been created<br />FAILED: A failure occurred
during wallet creation<br />CLOSED: A Wallet has been closed<br
/>NOT_CREATED: A Wallet has not yet been created<br />PENDING: We
are attempting to create the wallet. It is not yet available for
disbursing funds<br />UNCLAIMED: A wallet has been created and is
able to receive funds through the API, but the employee has not
signed up with Branch yet<br />ACTIVE: A wallet has been created for
an employee and they are in control of it<br />
example: ACTIVE
enum:
- NOT_CREATED
- PENDING
- REVIEW
- CREATED
- UNCLAIMED
- ACTIVE
- FAILED
- SUSPENDED
- CLOSED
reason_code:
type: string
description: >-
ADDITIONAL_DOCS_REQ: Branch was not able to confirm identity with
the information provided the user will have to provide additional
documentation, like drivers license, in order get a wallet on
Branch<br />FRAUD_CHECK_REQ: Branch is performing checks to ensure
that the user is not linked in any way to fraudulent activity. Once
finished, this user's wallet will be activated. Until then, the
wallet that was created for the user will not be able to be funded
in any way<br />CONFIRMED_FRAUD: Branch determined this user to
behave in fraudulent activities and will not be allowed to have a
wallet on the platform. The wallet created for them will remain
closed.<br />DENIED: For one reason or another, the user has been
denied access to the platform<br />ERROR: A system error occurred,
please try again
example: ADDITIONAL_DOCS_REQ
enum:
- FRAUD_CHECK_REQ
- ADDITIONAL_DOCS_REQ
- CONFIRMED_FRAUD
- DENIED
- KYC_SSN_INVALID
- KYC_PII_SSN_MISMATCH
- KYC_DECEASED
- KYC_PO_BOX_NOT_ALLOWED
- KYC_ERROR
- ACCOUNT_SUSPENDED
- ACCOUNT_WITH_EMAIL_EXISTS
- EMPLOYEE_NOT_FOUND
- EMPLOYEE_UNDER_AGE
- EMPLOYEE_ALREADY_LINKED
- ERROR
reason:
type: string
description: >-
A short message explaining the reason_code field. This may or may
not provide additional context into the reason_code.
onboarding_link:
type: string
description: >-
If the wallet was initiated by the organization, will be populated
with a link with which the employee can utilized to streamline
onboarding.
kyc_additional_documentation_link:
type: string
ein:
type: string
description: '9 digit Employer Identification Number. Format: XXXXXXXXX'
business_name:
type: string
description: Business name for the user.
time_last_initialization_attempted:
type: string
format: date-time
time_created:
type: string
format: date-time
PageOrganizationWalletDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/OrganizationWalletDto'
page_number:
type: integer
format: int64
size:
type: integer
format: int64
total_pages:
type: integer
format: int64
total_number_of_elements:
type: integer
format: int64
has_next_page:
type: boolean
has_prev_page:
type: boolean
next_page:
type: string
prev_page:
type: string
OrganizationWalletStatusDto:
type: object
properties:
employee_id:
type: string
wallet_status:
type: string
enum:
- NOT_CREATED
- PENDING
- REVIEW
- CREATED
- UNCLAIMED
- ACTIVE
- FAILED
- SUSPENDED
- CLOSED
PageOrganizationWalletStatusDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/OrganizationWalletStatusDto'
page_number:
type: integer
format: int64
size:
type: integer
format: int64
total_pages:
type: integer
format: int64
total_number_of_elements:
type: integer
format: int64
has_next_page:
type: boolean
has_prev_page:
type: boolean
next_page:
type: string
prev_page:
type: string
PageRemittanceDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/RemittanceDto'
page_number:
type: integer
format: int64
size:
type: integer
format: int64
total_pages:
type: integer
format: int64
total_number_of_elements:
type: integer
format: int64
has_next_page:
type: boolean
has_prev_page:
type: boolean
next_page:
type: string
prev_page:
type: string
RemittanceDto:
type: object
properties:
id:
type: integer
format: int32
pay_date:
type: string
description: >-
ISO-8601 date for the pay date, provided by the organization, for
the remittance and associated requested deductions
format: date
remittance_date:
type: string
description: >-
ISO-8601 date-time with offset from UTC for when the remittance was
created
format: date-time
status:
type: string
description: >-
STARTED: Remittance is active; remittance has been created and has
unsettled requested deductions
PROCESSING: Remittance is actively processing reported deductions
made; no further actions are necessary
COMPLETED: Remittance requested deductions are all settled and
payment has been made; no further actions are necessary
CANCELED: Remittance was created but is now invalid; no further
actions are necessary
AWAITING_PAYMENT: Remittance requested deductions are all settled
and remittance has yet to be paid
enum:
- STARTED
- PROCESSING
- COMPLETED
- CANCELED
- AWAITING_PAYMENT
- UNKNOWN
requested_amount:
type: integer
description: >-
Total amount, in cents, that was requested for deductions for all
employees
format: int32
PageRemittanceRequestedDeductionDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/RemittanceRequestedDeductionDto'
page_number:
type: integer
format: int64
size:
type: integer
format: int64
total_pages:
type: integer
format: int64
total_number_of_elements:
type: integer
format: int64
has_next_page:
type: boolean
has_prev_page:
type: boolean
next_page:
type: string
prev_page:
type: string
RemittanceRequestedDeductionDto:
type: object
properties:
employee_id:
type: string
amount:
type: integer
description: Amount, in cents, that should be deducted for the employee
format: int32
PageDisbursementDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/DisbursementDto'
page_number:
type: integer
format: int64
size:
type: integer
format: int64
total_pages:
type: integer
format: int64
total_number_of_elements:
type: integer
format: int64
has_next_page:
type: boolean
has_prev_page:
type: boolean
next_page:
type: string
prev_page:
type: string
PageEmployeeDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/EmployeeDto'
page_number:
type: integer
format: int64
size:
type: integer
format: int64
total_pages:
type: integer
format: int64
total_number_of_elements:
type: integer
format: int64
has_next_page:
type: boolean
has_prev_page:
type: boolean
next_page:
type: string
prev_page:
type: string
CardProgram:
type: object
properties:
token:
type: string
description:
type: string
EmployeeAdvanceDto:
type: object
properties:
employee_id:
type: string
description: The worker's ID
amount:
type: integer
description: The amount, in cents, of the advance that was taken
format: int32
date:
type: string
description: >-
ISO-8601 date-time with offset from UTC for when the advance was
taken
format: date-time
due_date:
type: string
description: ISO-8601 date for when the advance is due to be paid back
format: date
outstanding_amount:
type: integer
description: The amount, in cents, of the advance that has yet to be paid back
format: int32
status:
type: string
description: >-
OUTSTANDING: Advance has not been paid back and there are no
unsettled requested deductions on an active remittance
DEDUCTION_REQUESTED: Advance has an unsettled requested deduction on
an active remittance
enum:
- OUTSTANDING
- DEDUCTION_REQUESTED
id:
type: string
description: The Advance ID
PageEmployeeAdvanceDto:
type: object
properties:
content:
type: array
items:
$ref: '#/components/schemas/EmployeeAdvanceDto'
page_number:
type: integer
format: int64
size:
type: integer
format: int64
total_pages:
type: integer
format: int64
total_number_of_elements:
type: integer
format: int64
has_next_page:
type: boolean
has_prev_page:
type: boolean
next_page:
type: string
prev_page:
type: string
x-tagGroups:
- name: Branch Direct
tags:
- Wallet
- V2 Disbursements
- Wallet Payout Details
- Card Payout Details
- External Cards
- Payment Profile
- Cards
- name: Wallets & Disbursements
tags:
- Wallet
- Disbursements
- Cards
- name: Earnings & Advances
tags:
- Employees
- Payroll Periods
- Payroll Calendar
- Shifts
- Employee Earnings
- Remittance
- Advances