---
title: "Link VASP counterparty user info to a transaction"
method: POST
path: "/counterparty/vasp/counterparty-user-info/link"
tags: ["Counterparty"]
---

# Link VASP counterparty user info to a transaction

`POST /counterparty/vasp/counterparty-user-info/link`

## Request

- Base URL: `https://sandbox.striga.com/api/v1/travel-rule`
- URL: `https://sandbox.striga.com/api/v1/travel-rule/counterparty/vasp/counterparty-user-info/link`
- Auth: API key in header `api-key` and API key in header `Authorization`

## Request body

- LinkVaspCounterpartyUserInfoRequest: Link beneficiary info to a held transaction. Exactly one of txHash/paymentHash/invoice.
  - `userId` string, uuid: Owner user id. Provide exactly one of userId / businessId.
  - `businessId` string, uuid: Owner business id. Provide exactly one of userId / businessId.
  - `vaspCounterpartyUserInfoId` string, uuid, required
  - `txHash` string
  - `paymentHash` string
  - `invoice` string

## Response `201`

Linked. Returns the locator echoed back with the resolved user-info and counterparty IDs.

- object
  - `vaspCounterpartyUserInfoId` string, uuid, required
  - `counterpartyId` string, uuid, required
  - `txHash` string: Present when linked by on-chain tx hash.
  - `paymentHash` string: Present when linked by Lightning payment hash.

## Other responses

- `400`: Validation failed
- `401`: Invalid authentication header
- `404`: VASP counterparty user-info record or transaction not found.
- `409`: User-info already linked to a different transaction, a different user-info already linked to this transaction, or the deposit was already processed by an incoming TFR message (`42047`). Other `errorCode` values: `42045` (already linked), `42042` (conflict).
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/striga/apis/travel-rule.md) - [All operations](https://skmtc.dev/striga/apis/travel-rule/llms.txt) - [OpenAPI document](https://skmtc.dev/striga/apis/travel-rule/revisions/c82fbc1ad95b?raw)
