# Initiate pension transfer **POST /employers/{employerId}/employees/{employeeId}/transfers** Initiate a pension transfer into Penfold for an employee. This requests the transfer of an existing pension pot from another provider into the employee's Penfold workplace pension. The transfer will be submitted to the previous provider (via Origo where supported) and progress through standard transfer statuses. ## Servers - Production: https://partner-api.getpenfold.com/v1 (Production) - Staging: https://partner-api.getpenfold.dev/v1 (Staging) ## Authentication methods - Bearer auth ## Parameters ### Path parameters - **employerId** (string(uuid)) Penfold employer UUID - **employeeId** (string) Unique identifier for the employee ### Body: application/json (object) - **providerName** (string) Name of the pension provider the pot is being transferred from. - **policyNumber** (string) Policy or plan number at the previous provider. - **estimatedAmountPence** (integer) Estimated value of the pension pot in pence. ## Responses ### 201 Transfer initiated successfully. #### Body: application/json (object) - **id** (string) Unique identifier for the transfer. - **reference** (string) Penfold transfer reference (e.g. PEN76432-1). - **providerName** (string) Name of the previous pension provider. - **policyNumber** (string) Policy or plan number at the previous provider. - **estimatedAmountPence** (integer) Estimated value of the pension pot in pence. - **finalAmountPence** (integer | null) Actual amount received in pence. Null until funds arrive. - **status** (string) Simplified status of the transfer. Internally Penfold tracks ~25 granular statuses; these are collapsed here assuming most transfers follow the happy path. Rejected transfers will typically need to be resolved on the Penfold platform directly. - `Requested`: Transfer has been submitted - `InProgress`: Transfer is being processed with the previous provider - `FundsReceived`: Funds have arrived at Penfold - `Complete`: Funds invested in the employee's pension pot - `Rejected`: Previous provider rejected the transfer — resolve via Penfold platform - `Cancelled`: Transfer was cancelled - **rejectionReason** (string | null) Reason the transfer was rejected (if applicable). - **createdAt** (string(date-time)) When the transfer was initiated (ISO 8601). ### 400 Request body failed validation #### Body: application/json (object) - **error** (string) A descriptive error message. - **validationErrors** (array[object]) ### 401 Missing or invalid authentication token #### Body: application/json (object) - **error** (string) ### 404 Resource not found #### Body: application/json (object) - **error** (string) ### 500 Internal server error #### Body: application/json (object) - **error** (string) [Powered by Bump.sh](https://bump.sh)