---
title: "Create customer integration"
method: POST
path: "/screening/trlink/customers/integration"
tags: ["TRLink"]
---

# Create customer integration

`POST /screening/trlink/customers/integration`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/screening/trlink/customers/integration`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/screening/trlink/customers/integration/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new TRSupport integration for a customer. This establishes a connection placeholder between a customer and a Travel Rule partner. Use the connect endpoint to provide credentials after creation. You may optionally supply `customerIntegrationId` in the request body when your tenant is enabled for client-provided integration ids.

## Headers

- `Idempotency-Key` string

## Request body

- TRLinkCreateIntegrationRequest
  - `customerId` string, uuid, required: Customer unique identifier
  - `partnerIdent` string, required: Partner identification code (e.g., "sumsub", "notabene")
  - `customerIntegrationId` string, uuid: Optional. When supplied and permitted for the tenant (feature flag / CSM arrangement), this value is used as the TRLink integration identifier instead of a server-generated UUID. If omitted, the API generates a UUID. If supplied when the tenant is not permitted to set a custom id, the request fails with 400. Contact your CSM if you need a custom integration id.

## Response `201`

Customer integration created successfully

- TRLinkCustomerIntegrationResponse
  - `customerIntegrationId` string, uuid, required: Customer integration unique identifier
  - `apiKey` string, nullable: API key for partner integration (censored for security)
  - `secret` string, nullable: Secret for partner integration (censored for security)
  - `createDate` string, date-time, required: Timestamp when the integration was created (ISO 8601 format)
  - `lastUpdate` string, date-time, required: Timestamp when the integration was last updated (ISO 8601 format)
  - `partner` TRLinkPartnerResponse, required
    - `id` string, uuid, required: Partner unique identifier
    - `ident` string, required: Partner identification code
    - `name` string, required: Partner display name
    - `description` string, nullable: Partner description
    - `baseUrl` string, required: Partner API base URL
    - `active` boolean, required: Whether the partner is active
    - `isTest` boolean, required: Whether this is a test/sandbox partner
  - `customer` TRLinkCustomerResponse, required
    - `id` string, uuid, required: Customer unique identifier
    - `discoverable` 'anonymous' | 'hidden' | 'discoverable', nullable, required: Customer discoverability status in the Travel Rule network
    - `shortName` string, required: Short display name
    - `fullLegalName` string, required: Full legal entity name
    - `geographicAddress` TRLinkGeographicAddressRequest, nullable: Geographic address following IVMS101 standard
      - `addressLine` string[], nullable: Address lines (max 3, each up to 70 characters)
      - `streetName` string, nullable: Street name (required if buildingNumber is provided)
      - `buildingNumber` string, nullable: Building number
      - `floor` string, nullable: Floor number
      - `postBox` string, nullable: Post box number
      - `postCode` string, nullable: Postal code (required if townName is provided)
      - `townName` string, nullable: City or town name (required if postCode is provided)
      - `districtName` string, nullable: District name
      - `countrySubDivision` string, nullable: State or province (validated against country)
      - `country` string, nullable: ISO 3166-1 alpha-2 country code (required if town, district, or sub-division provided)
    - `countryOfRegistration` string, required: ISO 3166-1 alpha-2 country code where the entity is registered
    - `nationalIdentification` string, nullable: National identification, returned exactly as stored: a compact, whitespace-free JSON-encoded string with these optional keys (in this order): `nationalIdentifier`, `nationalIdentifierType` (e.g. `LEIX` for an LEI), `countryOfIssue` (ISO 3166-1 alpha-2), `registrationAuthority`. Maximum length is 240 characters.
    - `dateOfIncorporation` string, date, nullable: Date of entity incorporation (ISO 8601 format)
    - `vaults` integer[], nullable: Associated Fireblocks vault account IDs
    - `trPrimaryPurpose` string, required: Primary Travel Rule role for this customer; determines how the customer's Travel Rule messages are routed. Valid values: `notabene`, `trlink`.
    - `createDate` string, date-time, required: Timestamp when the customer was created (ISO 8601 format)
    - `lastUpdate` string, date-time, required: Timestamp when the customer was last updated (ISO 8601 format)

## Other responses

- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
