API ReferenceMigrationsCreate Migration

Create Migration

POST /api/v1/payroll-migrations/

Create a new payroll migration to track the transition from one payroll provider to another.

Authentication

Requires an API key with migrations:write scope. Pass via the X-API-Key header.

Request

Content type: application/json

Body Parameters

FieldTypeRequiredDescription
namestringYesA descriptive name for this migration.
source_providerstringYesIdentifier of the source (current) payroll provider.
target_providerstringYesIdentifier of the target (new) payroll provider.

Response

Status: 201 Created

{
  "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "name": "Q1 2026 ADP to Gusto Migration",
  "source_provider": "adp",
  "target_provider": "gusto",
  "status": "pending",
  "organization": "org_abc123",
  "created_at": "2026-03-16T12:00:00Z",
  "updated_at": "2026-03-16T12:00:00Z"
}

Response Fields

FieldTypeDescription
idstring (UUID)Unique identifier for the migration.
namestringDescriptive name of the migration.
source_providerstringIdentifier of the source payroll provider.
target_providerstringIdentifier of the target payroll provider.
statusstringCurrent status of the migration.
organizationstringOrganization the migration belongs to.
created_atstring (ISO 8601)Timestamp when the migration was created.
updated_atstring (ISO 8601)Timestamp when the migration was last updated.

Errors

StatusDescription
400Missing or invalid request body fields.
401Missing or invalid API key.
403API key does not have migrations:write scope.

Code Examples

curl -X POST https://api.parsifyhq.com/api/v1/payroll-migrations/ \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Q1 2026 ADP to Gusto Migration",
    "source_provider": "adp",
    "target_provider": "gusto"
  }'