/
BI
bilflo
/
Bilflo.Api
Search skmtc…
⌘K
Docs
Sign in
Sign in
APIs
Generators
Stacks
Projects
Docs
History
Schema
Sources
Subscribe
v1
latest
OpenAPI 3.0.1
2026-08-06
208
355
659.3 KB
Clients
get
/everee/v1/clients/reconciliation
Query parameters
companyIntegrationId
string
uuid
companyId
integer
search
string
filter
string
Headers
company-id
string
required
Response
Success
All 208 operations
get
/everee/v1/clients/reconciliation
post
/everee/v1/clients/match
post
/everee/v1/clients/unmap
get
/crelate/v1/clients/reconciliation
post
/crelate/v1/clients/match
post
/crelate/v1/clients/unmap
post
/crelate/v1/clients/push
post
/crelate/v1/clients/pull
get
Get all clients
put
Update an existing client
post
Creates a new client
get
/v{version}/Clients/{clientId}
get
Get contacts for a client
get
Get by Contact by ClientId and ContactId
put
Update an existing client contact
post
Creates a new client contact
get
Get Addresses for a client
put
Update an existing address for a client
post
Creates a new address for a client
get
Gets all agreements for a client
post
Creates a new agreement for a client
get
Get Contract POs for a client
post
Creates a new contract PO for a client
get
Gets all contract invoice groups for a client
post
Assign contract job to invoice group
get
Gets companies associated with a specific user
get
Gets all workers comp codes for a company
get
Gets all payments terms for a company
get
Gets all remittances for a company
get
Gets burden settings for a company
get
Gets all benefit rules for a company
get
Gets all States for a company
get
Gets all paybill items for a company
get
Gets work status for a contractor
post
Creates a new work status for a contractor
post
Creates (uploads) new contractor documents
post
/v{version}/CompanySignUp/SendVerificationCode
post
/v{version}/CompanySignUp/CreateProspectAuthUser
post
/v{version}/CompanySignUp/FinishCompanySignup
post
/everee/v1/connect
post
/crelate/v1/connect
post
/cj/v{version}/ContractJobs
get
/cj/v{version}/ContractJobs/{jobId}
get
/cj/v{version}/ContractJobs/{jobUuid}
get
/cj/v{version}/ContractJobs/GetCompanyByJobUuid/{jobUuid}
get
Gets a contract job
post
Creates a new contract job
post
Terminates a contract job
post
Allows contract job documents to be uploaded
post
/everee/v1/contractors/push
post
/everee/v1/contractors/link
post
/everee/v1/contractors/pull
post
/everee/v1/contractors/match
get
/everee/v1/contractors/jobs
get
/everee/v1/contractors/reconciliation
post
/crelate/v1/contractors/push
post
/crelate/v1/contractors/pull
post
/crelate/v1/contractors/link
post
/crelate/v1/contractors/match
get
/crelate/v1/contractors/reconciliation
get
Gets custom fields
post
Create custom fields
get
Gets custom field items
post
Creates custom field item
get
/v{version}/Customizations/{CompanyId}/{SettingId}
get
Gets all dashboards with optional active filter.
post
Creates a new dashboard with rows and widgets.
get
Gets a dashboard by ID with its complete layout.
put
Updates an existing dashboard.
delete
Deletes a dashboard.
get
Gets a dashboard by ID with its complete layout nodes.
post
Adds a new layout node to a dashboard.
get
Gets a specific layout node by ID.
put
Updates an existing layout node.
delete
Deletes a layout node.
put
Reorders layout nodes for a dashboard.
get
Gets all dashboards created by a specific user.
get
/gusto/v1/diagnostics/exports
post
Manual retry. Terminal failures are never retried automatically - they wait for a user to fix the mapping or the payroll and press this.
get
/crelate/v1/diagnostics/sync-issues
post
Approves a direct hire job
post
Creates a new direct hire job
post
Creates a new direct hire job
get
Gets a direct hire job
get
/gusto/v1/employees/reconciliation
post
/gusto/v1/employees/match
get
/entities/v{version}/DbTableFields
get
/entities/v{version}/DbTableFields/{fieldId}
get
/entities/v{version}/DbTables
post
/entities/v{version}/DbTables
get
/entities/v{version}/DbTables/{tableId}
put
/entities/v{version}/DbTables/{tableId}
post
/int/v1/erp2/company-events
get
/int/v1/erp2/lookups/pay-bill-items
get
ERP-5865 — workers' comp codes for the caller's staffing company. The route already existed at GET /v1/CompanySettings/workersCompCodes, but that one is [Authorize] (user JWT), so the HMAC integration principal could never call it and the WORKERS_COMP_CODE feed had never populated a single row. Re-exposing it here puts it on the same signed footing as every other ERP2 lookup instead of widening the JWT endpoint's auth. Same MediatR query the JWT controller uses, so there is one implementation, not two.
get
ERP-5865 — overtime rules, including StateCode. This is the one lookup that WAS populating in ERP2, and only because GET /v1/OvertimeRules answers 200 with no credential at all. Serving it here means closing that hole does not also take the feed down. Same MediatR query, so one implementation. StateCode is carried through deliberately: ERP2's mirror discards it today, leaving state recoverable only by parsing the display label ("3 12s (CA)"), which is not always present ("9/80"). See ERP-5864.
get
ERP-5865 — timecard methods. No HTTP surface existed for these at all: they were reachable only internally via ILookupQueryable.GetTimecardMethods (dbo.DbLookupRepo_GetAllTimeCardMethods), which is why the TIMECARD_METHOD feed was empty and a live sync landed ContractJob 58859 with a null time collection method. These are GLOBAL rows, not per-company — the SP takes no company parameter. The endpoint is still authenticated per integration so it is not an open list.
get
ERP-5865 — contractor types (W2 / 1099). There is no table and no endpoint for these on the legacy side: the values ARE the Contracts.Contracts.Enums.ContractorType enum, stored as ContractJob.ContractorTypeId. Served from the enum so the ids can never drift from what the receiver actually writes — a lookup table would be a second source of truth for a two-value list.
get
ERP-5894 — per-diem calculations. Like timecard methods these had no HTTP surface at all: reachable only through ILookupQueryable (dbo.DbLookupRepo_GetAllPerDiemCalculations), so ERP2 could never offer a recruiter the real list and ContractJob.PerDiemCalculationId had to be typed in as a raw integer or left null. Global rows, not per-company — the SP takes no company parameter — but still authenticated per integration so this is not an open list.
get
ERP-5894 — per-diem collection methods (dbo.DbPerDiemCollectionMethodRepo_GetAll). `approverTypeId` is carried through because it drives who may approve the per diem, which the JobApprover build already depends on.
get
ERP-5894 — expenses collection methods (dbo.DbExpensesCollectionMethodRepo_GetAll).
get
ERP-5987 — invoice groups, so ERP2's AUTO_ADD_TO_SPECIFIC billing-profile mode has something to point at. Unlike every other feed here, these are per-CLIENT, not per-company: company 25 alone has 895 groups across 348 clients. `clientId` is therefore carried on every row so a selector can filter — a flat list of 895 is not a dropdown anyone can use. Company-scoped rather than taking a client parameter because the ERP2 mirror caches per tenant, not per client, and a per-client feed would mean one request per client on every refresh. Filtering client-side off one cached list is the cheaper shape.
post
/int/v1/erp2/placement-events
post
/everee/v1/webhook
get
/crelate/v1/field-mappings/catalog
get
/crelate/v1/field-mappings
put
/crelate/v1/field-mappings
post
/crelate/v1/field-mappings/refresh-custom-fields
post
/jobadder/v1/Webhooks
get
/v{version}/Layouts/{entityName}
get
/v{version}/Layouts
post
/v{version}/Layouts
post
/api/Notifications/AddPlacementNote
get
/gusto/v1/oauth/start
get
/gusto/v1/oauth/callback
post
/gusto/v1/oauth/disconnect
post
/gusto/v1/oauth/strategy
get
Gets overtime rules for a company
get
/cj/v{version}/PayBillItem/{pbiName}/{companyId}
get
/cj/v{version}/PayBillItem/{pbiName}/{companyUuid}
get
/cj/v{version}/PayBillItemDetail/{jobId}
get
/cj/v{version}/PayBillItemDetail/{jobUuid}
get
Gusto's earning types, wrapped in the envelope the shared BilfloApp pay-code mapping page already consumes: { ClientCodes: { PayCode: [...] } }.
get
/gusto/v1/PayCodes/{companyIntegrationId}/mappings
post
/gusto/v1/PayCodes/{companyIntegrationId}/map
post
/gusto/v1/PayCodes/{companyIntegrationId}/unmap
post
/gusto/v1/PayCodes/{companyIntegrationId}/seed-defaults
get
/phr/v{version}/Webhook
post
/phr/v{version}/Webhook
post
/phr/v{version}/Webhook/Register/{companyIntegrationId}/{clientId}
post
/phr/v{version}/Webhook/BackfillEvents/{companyIntegrationId}
post
/phr/v{version}/Webhook/SyncEmployees/{companyIntegrationId}
post
/phr/v{version}/Webhook/SyncEmployees/{companyIntegrationId}/{employeeList}
post
/phr/v{version}/Webhook/SyncChecks/{companyIntegrationId}/{year}/{month}
post
/phr/v{version}/Webhook/SyncChecks/{companyIntegrationId}/{employeeId}/{year}/{month}
post
/tran/v{version}/Processors/ProcessEvent
post
Generates dynamic SQL based on the provided query request.
post
Executes the generated SQL and returns the data.
get
/qe/v{version}/Queries/get-tokens
post
Execute custom report
get
/everee/v1/subscriptions/GetEvents/{companyIntegrationId}
post
/everee/v1/subscriptions/ProcessEvent/{companyIntegrationId}/{id}
post
/tran/v{version}/Transactions/Create
put
/tran/v{version}/Transactions/Update
delete
/tran/v{version}/Transactions/Delete/{transactionId}
get
/tran/v{version}/Transactions/GetById/{transactionId}
get
/tran/v{version}/Transactions/GetByTimecardId/{timecardId}
post
/tran/v{version}/Transactions/CreateByEvent
get
/tran/v{version}/Transactions/Hello
get
/v{version}/Users/GetUserProfileDataByEmailAddress/{emailAddress}
get
Gets a contractor
put
Updates an existing contractor
post
Creates a new contractor
put
Updates sicks benefits for a contractor
put
Updates vacation benefits for a contractor
put
Updates health benefits for a contractor
get
Gets a team member
put
Updates an existing team member
post
Creates a new team member
post
Creates a new work status for a team member
put
Updates sick benefits for a team member
put
Updates vacation benefits for a team member
put
Updates health benefits for a team member
put
Updates compensation data for a team member
post
Uploads document(s) for a team member
post
Gusto requires a 2xx within 10 seconds or it retries up to 16 times over 3 days, so this only persists and returns. Draining happens in Hangfire.
post
/api/Webhook/Placement
get
/wf/v{version}/WorkflowTriggers
post
/wf/v{version}/WorkflowTriggers
get
/wf/v{version}/WorkflowTriggers/by-entity/{workflowEntityId}
get
/wf/v{version}/WorkflowTriggers/{id}
put
/wf/v{version}/WorkflowTriggers/{id}
delete
/wf/v{version}/WorkflowTriggers/{id}
get
/wf/v{version}/WorkflowEnrollmentTypes
post
/wf/v{version}/WorkflowEnrollmentTypes
get
/wf/v{version}/WorkflowEnrollmentTypes/{id}
put
/wf/v{version}/WorkflowEnrollmentTypes/{id}
delete
/wf/v{version}/WorkflowEnrollmentTypes/{id}
get
/wf/v{version}/WorkflowEntities
post
/wf/v{version}/WorkflowEntities
get
/wf/v{version}/WorkflowEntities/{id}
put
/wf/v{version}/WorkflowEntities/{id}
delete
/wf/v{version}/WorkflowEntities/{id}
get
/wf/v{version}/Workflows
post
/wf/v{version}/Workflows
get
/wf/v{version}/Workflows/{id}
put
/wf/v{version}/Workflows/{id}
delete
/wf/v{version}/Workflows/{id}
patch
/wf/v{version}/Workflows/{id}
post
/wf/v{version}/Workflows/status-changed
get
/wf/v{version}/EventTriggerCriterias
post
/wf/v{version}/EventTriggerCriterias
get
/wf/v{version}/EventTriggerCriterias/{id}
put
/wf/v{version}/EventTriggerCriterias/{id}
delete
/wf/v{version}/EventTriggerCriterias/{id}
get
/wf/v{version}/LookUps/TeamMembers
get
/wf/v{version}/LookUps/WorkflowActionTypes
get
/wf/v{version}/WorkflowActionConfigurations/{id}
put
/wf/v{version}/WorkflowActionConfigurations/{id}
get
/wf/v{version}/WorkflowActionConfigurations/by-action/{actionId}
post
/wf/v{version}/WorkflowActionConfigurations
post
/wf/v{version}/WorkflowActions
delete
/wf/v{version}/WorkflowActions/{id}
get
/wf/v{version}/WorkflowTriggerGroups
post
/wf/v{version}/WorkflowTriggerGroups
get
/wf/v{version}/WorkflowTriggerGroups/{id}
put
/wf/v{version}/WorkflowTriggerGroups/{id}
delete
/wf/v{version}/WorkflowTriggerGroups/{id}