Skip to main content

TravelPerk Destination

Nexla's bi-directional connectors allow data to flow both to and from any location, making it simple to create a FlexFlow data flow that sends data to a TravelPerk location.
travelperk_api.png

TravelPerk

Create a TravelPerk Destination

  1. Click the + icon on the Nexset that will be sent to the TravelPerk destination, and select the Send to Destination option from the menu.

  2. Select the TravelPerk connector from the list of available destination connectors. Then, select the credential that will be used to connect to the TravelPerk organization, and click Next; or, create a new TravelPerk credential for use in this flow.

  3. In Nexla, TravelPerk destinations can be created using pre-built endpoint templates, which expedite destination setup for common TravelPerk endpoints. Each template is designed specifically for the corresponding TravelPerk endpoint, making destination configuration easy and efficient.
    • To configure this destination using a template, follow the instructions in Configure Using a Template.

    TravelPerk destinations can also be configured manually, allowing you to send data to TravelPerk endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this destination manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common TravelPerk endpoints. Each template is designed specifically for the corresponding TravelPerk endpoint, making destination setup easy and efficient.

  • To configure this destination using a template, select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

    Create User

    Provisions a new traveler profile in TravelPerk. Use this endpoint to automate HR-driven onboarding workflows where new employees are automatically added to TravelPerk when they join your organization. This endpoint sends a POST request to the TravelPerk Users API and requires the users:write scope.

    • No additional URL parameters are required for this endpoint. The user data is sent in the request body as JSON. Ensure your Nexset contains the required TravelPerk user fields: at minimum, the user's email address, first name, and last name. Refer to the TravelPerk Create User API reference for the full list of supported fields and required attributes.

    The Create User endpoint requires the users:write OAuth scope. If you are using API key authentication, ensure the key was generated by an administrator with the appropriate permissions. TravelPerk API reference: developers.travelperk.com/reference/createuser.

    Update User

    Updates an existing traveler profile in TravelPerk using a PATCH request. Use this endpoint for HR-driven profile updates, such as name changes, department reassignments, or manager updates. To deactivate a user as part of an offboarding flow, set is_active to false in the request body — this is the preferred approach over deletion as it preserves the user's travel history. Requires the users:write scope.

    • In the User ID field, enter the UUID of the user to update. User UUIDs can be obtained from the List Users endpoint in a TravelPerk data source. This field is required.
    • The updated user attributes are sent in the JSON request body. Only include the fields you want to update — PATCH requests apply partial updates without overwriting fields that are not included.

    To deactivate a user for offboarding, set is_active: false in the request body rather than using the Delete User endpoint. This preserves the user's audit trail and travel history. TravelPerk API reference: developers.travelperk.com/reference/updateuser.

    Add Group Member

    Adds a user to a TravelPerk group for travel policy inheritance and access control. Use this endpoint to automate HR-driven group provisioning workflows, such as automatically assigning new employees to the appropriate department group in TravelPerk when they are onboarded.

    • In the Group ID field, enter the UUID of the group to add a member to. Group UUIDs can be obtained from the List Groups endpoint in a TravelPerk data source. This field is required.
    • The user to add is specified in the JSON request body. Include the user's UUID in the body payload. Refer to the TravelPerk Add Group Member API reference for the required body structure.

    TravelPerk groups control which travel policy applies to a user. Assigning a user to the correct group ensures they are subject to the appropriate booking class rules, approval thresholds, and hotel limits. TravelPerk API reference: developers.travelperk.com/reference/addgroupmember.

    Create Webhook

    Registers a new webhook subscription in TravelPerk to receive real-time event notifications for trips, invoices, and bookings. Use this endpoint to programmatically configure event-driven integrations that respond to TravelPerk activity — for example, triggering downstream reconciliation workflows when a new invoice is issued. Requires the webhooks:write scope.

    • No additional URL parameters are required. The webhook configuration — including the target URL, secret, and subscribed event types — is sent in the JSON request body. Use the List Webhook Event Types endpoint in a TravelPerk data source to discover the available event types before creating a subscription.

    TravelPerk will send a verification request to your webhook URL when it is first registered. Ensure the target endpoint is reachable and returns the expected response before creating the subscription. TravelPerk API reference: developers.travelperk.com/reference/createwebhook.

    Update Webhook

    Updates an existing webhook subscription using a PATCH request. Use this endpoint to change the target URL, rotate the webhook secret, or modify the list of subscribed event types without deleting and recreating the subscription.

    • In the Webhook ID field, enter the unique identifier of the webhook to update. Webhook IDs can be obtained from the List Webhooks endpoint in a TravelPerk data source. This field is required.
    • Include only the fields to update in the JSON request body — PATCH requests apply partial updates.

    Delete Webhook

    Deletes a webhook subscription by ID, permanently stopping all event notifications for the specified webhook. Use this endpoint to clean up unused webhook subscriptions or as part of integration decommissioning workflows.

    • In the Webhook ID field, enter the unique identifier of the webhook to delete. Webhook IDs can be obtained from the List Webhooks endpoint in a TravelPerk data source. This field is required.

    :::warning Important Deleting a webhook is irreversible. All event notifications associated with the subscription will immediately stop. Verify the webhook ID before proceeding. :::

    Test Webhook

    Sends a test event to a webhook subscription to verify that the target endpoint is reachable and responding correctly. Use this endpoint as part of webhook integration testing to confirm end-to-end connectivity before relying on the webhook for production event delivery.

    • In the Webhook ID field, enter the unique identifier of the webhook to send a test event to. Webhook IDs can be obtained from the List Webhooks endpoint in a TravelPerk data source. This field is required.

    Create Cost Center

    Creates a new cost center in TravelPerk for GL coding and departmental spend allocation. Use this endpoint to automate cost center provisioning when new departments or business units are created in your ERP or HR system, keeping TravelPerk's cost structure synchronized with your chart of accounts.

    • No additional URL parameters are required. The cost center details (including the cost center name) are sent in the JSON request body. Refer to the TravelPerk Create Cost Center API reference for the required body structure.

    Update Cost Center

    Updates the name of an existing cost center by ID using a PATCH request. Use this endpoint when a department or business unit is renamed in your ERP or HR system and you need to keep TravelPerk's cost center names synchronized.

    • In the Cost Center ID field, enter the unique identifier of the cost center to update. Cost center IDs can be obtained from the List Cost Centers endpoint in a TravelPerk data source. This field is required.
    • The updated cost center name is sent in the JSON request body.

    Update Cost Centers (Bulk)

    Updates multiple cost centers in a single PATCH request. Use this endpoint for batch rename operations or large-scale cost center reorganizations where updating each cost center individually would be impractical.

    • No additional URL parameters are required. The bulk update payload containing an array of cost center updates is sent in the JSON request body. Each cost center in the array should include its ID and the updated name. Refer to the TravelPerk Bulk Update Cost Centers API reference for the required body structure.

    Set Cost Center Users

    Assigns users to a cost center using a PUT request, replacing the existing user assignments entirely. Use this endpoint for HR-driven cost center provisioning workflows where an authoritative HR system owns the user-to-cost-center mapping and needs to push the complete assignment list to TravelPerk.

    • In the Cost Center ID field, enter the unique identifier of the cost center to assign users to. Cost center IDs can be obtained from the List Cost Centers endpoint in a TravelPerk data source. This field is required.
    • The complete list of user UUIDs to assign to this cost center is sent in the JSON request body. Because this is a PUT request, it replaces all existing assignments — include all users that should be assigned to the cost center, not just new additions.

    :::warning Important This endpoint uses PUT (full replacement), not PATCH (partial update). Sending this request will overwrite all existing cost center user assignments with the provided list. Ensure your payload contains the complete intended user list before proceeding. :::

    Delete User

    Permanently deletes a user via the SCIM 2.0 endpoint. This action is irreversible and removes the user and their associated data from TravelPerk. For offboarding workflows where preserving travel history and the audit trail is important, use the Activate / Deactivate User endpoint with active: false instead.

    • In the User ID field, enter the UUID of the user to permanently delete. User UUIDs can be obtained from the List Users or List Users (SCIM Paginated) endpoints. This field is required.

    :::danger Warning Deleting a user is permanent and cannot be undone. All travel history, bookings, and profile data associated with the user will be removed. For most offboarding scenarios, deactivating the user (setting active: false via Activate / Deactivate User) is the preferred approach as it preserves the audit trail. :::

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/deleteuser.

    Replace User (Full)

    Replaces all SCIM attributes of an existing user via a PUT request. Use this endpoint for full user record synchronization from an IdP where the authoritative source of truth holds the complete user profile and pushes it wholesale to TravelPerk.

    • In the User ID field, enter the UUID of the user to fully replace. User UUIDs can be obtained from the List Users or List Users (SCIM Paginated) endpoints. This field is required.
    • The complete user SCIM record is sent in the JSON request body. All existing attributes will be overwritten with the values in the request payload.

    :::warning Important This endpoint uses PUT (full replacement). All existing user attributes will be overwritten. Ensure your payload contains the complete user record before proceeding. For partial updates, use the Update User endpoint instead. :::

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/replaceuser.

    Activate / Deactivate User

    Activates or deactivates a user account via a SCIM PATCH request. This is the recommended approach for offboarding employees in TravelPerk: deactivating a user (setting active: false) prevents them from booking travel while preserving their complete travel history and audit trail — which is essential for expense reconciliation and compliance reporting.

    • In the User ID field, enter the UUID of the user to activate or deactivate. User UUIDs can be obtained from the List Users or List Users (SCIM Paginated) endpoints. This field is required.
    • In the JSON request body, set the active field to control the user's status:

      • active: true — Activates the user, restoring their access to TravelPerk.
      • active: false — Deactivates the user, preventing new bookings while preserving their data.

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/activatedeactivateuser.

    Add User Approvers

    Adds trip approval managers to a user account via SCIM PATCH. Use this endpoint in multi-approver workflows where managers need to be added to a user's approval chain — for example, when an employee moves to a new team or when an additional approver needs to be added during a restructure.

    • In the User ID field, enter the UUID of the user to add approvers to. User UUIDs can be obtained from the List Users endpoint. This field is required.
    • The approver UUIDs to add are specified in the SCIM PATCH request body. Refer to the TravelPerk Add User Approvers API reference for the required SCIM PATCH operation structure.

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/adduserapprovers.

    Replace User Approvers

    Replaces all trip approval managers for a user via SCIM PATCH, overwriting the existing approver list. Use this endpoint when the complete set of approvers for a user changes — for example, after a reporting line change where all previous approvers are no longer relevant.

    • In the User ID field, enter the UUID of the user whose approver list to fully replace. This field is required.
    • The complete replacement list of approver UUIDs is specified in the SCIM PATCH request body. All existing approvers will be replaced with this list.

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/replaceuserapprovers.

    Update User Travel Policy

    Assigns or updates the travel policy for a user via SCIM PATCH. Use this endpoint when an employee's role or seniority changes and they need to be moved to a different travel policy tier — for example, moving a newly promoted executive to a policy that allows business class bookings.

    • In the User ID field, enter the UUID of the user whose travel policy to update. This field is required.
    • The travel policy UUID to assign is specified in the SCIM PATCH request body. Travel policy IDs can be obtained from the List Travel Policies endpoint in a TravelPerk data source.

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/updateusertravelpolicy.

    Update User Cost Center

    Assigns or updates the cost center for a user via SCIM PATCH. Use this endpoint for HR-driven GL allocation automation — for example, automatically updating a user's cost center in TravelPerk when they transfer to a new department in your HR system.

    • In the User ID field, enter the UUID of the user whose cost center to update. This field is required.
    • The cost center UUID to assign is specified in the SCIM PATCH request body. Cost center IDs can be obtained from the List Cost Centers endpoint in a TravelPerk data source.

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/updateusercostcenter.

    Add User Travel Documents

    Adds passport or travel document details to a user profile via SCIM PATCH. Use this endpoint to populate travel documents from an HR or identity management system, enabling TravelPerk to validate passport validity during booking and ensure travelers meet international travel requirements.

    • In the User ID field, enter the UUID of the user to add travel documents to. This field is required.
    • The travel document details (including document type, number, expiry date, and issuing country) are specified in the SCIM PATCH request body. Refer to the TravelPerk Add User Travel Documents API reference for the required structure.

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/addusertraveldocuments.

    Replace User Travel Documents

    Replaces all travel documents for a user via SCIM PATCH, overwriting existing passport and document records. Use this endpoint when a user's travel documents have been renewed and you need to replace the old records entirely with current document information.

    • In the User ID field, enter the UUID of the user whose travel documents to fully replace. This field is required.
    • The complete replacement set of travel documents is specified in the SCIM PATCH request body. All existing travel documents will be replaced.

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/replaceusertraveldocuments.

    Update User Emergency Contact

    Updates emergency contact information for a user via SCIM PATCH. Maintaining current emergency contact details is a key component of duty-of-care compliance — many organizations require that all travelers have up-to-date emergency contacts in their travel management system before traveling internationally.

    • In the User ID field, enter the UUID of the user whose emergency contact to update. This field is required.
    • The updated emergency contact details (name, relationship, and phone number) are specified in the SCIM PATCH request body. Refer to the TravelPerk Update User Emergency Contact API reference for the required structure.

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/updateuseremergencycontact.

    Update User Country of Residence

    Updates the country of residence for a user via SCIM PATCH. A user's country of residence affects which travel policies apply to them and which VAT reclaim rules are relevant — keeping this field accurate is important for correct tax treatment and policy enforcement.

    • In the User ID field, enter the UUID of the user whose country of residence to update. This field is required.
    • The ISO 3166-1 alpha-2 country code (for example, GB, DE, US) is specified in the SCIM PATCH request body.

    SCIM access requires the TravelPerk Premium plan. TravelPerk API reference: developers.travelperk.com/reference/updateusercountryofresidence.

Configure Manually

TravelPerk destinations can be manually configured to send data to any valid TravelPerk API endpoint.

Using manual configuration, you can also configure Nexla to automatically send the response received from the TravelPerk API after each call to a new Nexla webhook data source.

API Method

  1. To manually configure this destination, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the TravelPerk API from the Method pulldown menu. Common methods for TravelPerk write operations include:

    • POST: For creating new resources (users, cost centers, webhooks)
    • PATCH: For partial updates to existing resources (recommended for most update operations)
    • PUT: For full replacement of existing resources (cost center users, SCIM user records)
    • DELETE: For removing resources (webhooks, users via SCIM)

Data Format

  1. Select the format in which the Nexset data will be sent to the TravelPerk API from the Content Format pulldown menu. TravelPerk accepts JSON (application/json) for all write endpoints. Nexla will automatically convert the data to JSON format for each API call.

API Endpoint URL

  1. Enter the URL of the TravelPerk API endpoint to which you want to send the Nexset data in the URL field. For update and patch operations, include the resource ID at the end of the URL. TravelPerk uses two base URLs:
    • Production REST API v2: https://app.travelperk.com/api/v2/ followed by the resource path
    • Production SCIM API v2: https://app.travelperk.com/api/scim/v2/ for SCIM-based user management

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this destination, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (for example, header1:value1,header2:value2).

    You do not need to include the Authorization or Content-Type headers — these are automatically added by Nexla based on your TravelPerk credential configuration and the selected data format.

Exclude Attributes from the Call

Optional
  • If any record attributes in the Nexset should be omitted when sending data to this TravelPerk destination, select the attributes from the Exclude Attributes pulldown menu.

  • Any number of attributes can be selected for exclusion, and all excluded attributes will be shown in the field. To remove an attribute from the list, click the X icon next to the attribute name.

Record Batching

Optional
  1. If records should be sent to this destination in batched API calls, check the box next to Would you like to batch your records together? to enable record batching.

  2. Enter the maximum number of records that should be batched together in a single API call in the Batch Size field. By default, this value is set to 100.

  3. Select the algorithm that will be used to group records into batches from the Grouping Algorithm pulldown menu. The sample request shown in the panel on the right will be updated to reflect the current batching settings.

TravelPerk's individual write endpoints (Create User, Update User, etc.) accept one record per request. Batching is most relevant when using the Update Cost Centers (Bulk) endpoint, which accepts an array of cost center updates in a single call. For single-record endpoints, leave batching disabled to ensure each record is sent as an individual API call.

Response Webhook

Optional

Nexla can automatically send the response received from the TravelPerk API after each call to a new Nexla webhook data source. This option allows you to keep track of the status of each API call and any additional information returned after each call.

  • To enable this option, check the box next to Would you like to process the API response as a Nexla Webhook source?.

Sample Request Payload

Sample request payloads containing a portion of the Nexset data that will be sent to the TravelPerk API endpoint based on the current settings are shown in the Sample Payload panel on the right. These samples can be referenced to ensure that the destination and request settings are correctly configured.

  • Click on a sample request payload to expand it and view the complete payload content.
  • Sample payloads are automatically updated with each setting change, making it easy to verify that changes achieve the desired effect.

Endpoint Testing (Manual Configuration)

After all endpoint settings have been configured, Nexla can send a test payload to the TravelPerk API to ensure that the destination is configured correctly.

  1. To send a test payload, select the Test button at the top of the Sample Payload panel, and click on a listed sample payload to expand it.

  2. If any modifications to the sample payload are needed, make the necessary changes directly within the sample window.

  3. Click the Send Test Data button at the top of a sample payload to send the test payload to the TravelPerk API using the current settings.

Save & Activate the Destination

  • Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured TravelPerk endpoint, open the destination resource menu, and select Activate.

    The Nexset data will not be sent to TravelPerk until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.