# Salv aml API

**Canonical:** https://apis.io/apis/salv/salv-aml-api/  
**Provider:** Salv — https://apis.io/providers/salv/  
**Base URL:** https://app.salv.com/api  
**Documentation:** https://docs.salv.com/

Salv aml API is one of 15 APIs that [Salv](https://apis.io/providers/salv/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. Tagged areas include AML. The published artifact set on APIs.io includes an OpenAPI specification.

This section contains all operations managing the state of persons and transactions. There are three endpoints for creating or modifying a person, make sure to choose the right one for your task: * [Create new person](#tag/aml/operation/addPersonV2) will create a new person if a person with the same ID does not already exist in our system. * [Patch person](#tag/aml/operation/patchPersonV2) partially updates an existing person if this person exists in the system. A request to this endpoint will only update or add attributes which are provided in the request. Use this endpoint to update selected attributes of a person or to add new attributes without changing attributes not present in the request payload. This endpoint may also be used to update person type. * [Update person](#tag/aml/operation/updatePersonV2) updates an existing person if this person exists in the system. A request to this endpoint must contain both person type and attributes. A request to this endpoint overwrites both person type and attributes with the values given in the request. ID of a person or a transaction is a case-sensitive text field in our system. Salv does not transform the ID in any way. Only the following characters are allowed: Alphanumerics `a-zA-Z0-9`, hyphens `-`, underscores `_`, colons `:`, dots `.`. All requests must use ISO-8601 formatted timestamps. That includes defined fields (e.g. timestamp property in "Create new transaction" request) and custom key-value pairs (e.g. under attributes property in "Create new person" request). For any data passed in person or transaction objects, the keys must adhere to the following rules: - It must not contain a "**.**" - It must not consist of whitespaces ## Example: Uploading person and transaction This example shows how to upload data to use it later for monitoring or screening. ### 1. Add a person if not already added Add a new person, according to the documentation at [addPerson(POST)](#operation/addPersonV2). If the person has already been added to Salv, then skip this step. #### With cURL ``` curl --request POST \ --url https://app.salv.com/api/v2/persons \ --header 'Authorization: Bearer {yourBearerToken}' \ --header 'Content-Type: application/json' \ --data '{ "id": "bbt12345", "type": "INDIVIDUAL", "attributes": { "first_name": "Sheldon", "last_name": "Cooper", "dob": "1983-05-12", "city": "Pasadena", "street_address": "2311 North Los Robles Avenue", "country": "US", "onboarding_date": "2019-04-16", "email": "sheldon.cooper@gmail.com", "phone_number": "+1582693582", "id_document": "passport", "id_country": "US", "gender": "F" } }' ``` #### With Python Requests ``` import requests url = "https://app.salv.com/api/v2/persons" payload = { "id": "bbt12345", "type": "INDIVIDUAL", "attributes": { "first_name": "Sheldon", "last_name": "Cooper", "dob": "1983-05-12", "city": "Pasadena", "street_address": "2311 North Los Robles Avenue", "country": "US", "onboarding_date": "2019-04-16", "email": "sheldon.cooper@gmail.com", "phone_number": "+1582693582", "id_document": "passport", "id_country": "US", "gender": "F" } } headers = { "Content-Type": "application/json", "Authorization": "{yourBearerToken}" } response = requests.request("POST", url, json=payload, headers=headers) print(response.text) ``` ### 2. Add a transaction Add a new transaction, according to the documentation at [addTransaction(POST)](#operation/addTransaction). #### With cURL ``` curl --request POST \ --url https://app.salv.com/api/v1/persons/bbt12345/transactions \ --header 'Authorization: Bearer {yourBearerToken}' \ --header 'Content-Type: application/json' \ --data '{ "id": "aeio-1234567", "attributes": { "sender_name": "Sheldon Cooper", "sender_account": "GB123456789", "receiver_name": "Leonard Hofstadter", "receiver_account": "DE987654321", "amount": "15678.34", "type": "wire_transfer", "direction": "I", "timestamp": "2022-01-20T08:48:39.000Z" } }' ``` #### With Python Requests ``` import requests url = "https://app.salv.com/api/v1/persons/bbt12345/transactions" payload = { "id": "aeio-1234567", "attributes": { "sender_name": "Sheldon Cooper", "sender_account": "GB123456789", "receiver_name": "Leonard Hofstadter", "receiver_account": "DE987654321", "amount": "15678.34", "type": "wire_transfer", "direction": "I", "timestamp": "2022-01-20T08:48:39.000Z" } } headers = { "Content-Type": "application/json", "Authorization": "{yourBearerToken}" } response = requests.request("POST", url, json=payload, headers=headers) print(response.text) ```

## Operations (13)

| Method | Path | Summary |
|---|---|---|
| POST | `/v2/persons` | Create new person |
| POST | `/v2/persons/search` | Fetch all persons |
| PATCH | `/v2/persons/{personId}` | Patch person |
| PUT | `/v2/persons/{personId}` | Update person |
| GET | `/v1/persons` | Fetch all persons |
| POST | `/v1/persons` | Create new person (v1) |
| GET | `/v1/persons/{personId}` | Fetch person by id |
| PATCH | `/v1/persons/{personId}` | Patch person (v1) |
| GET | `/v1/persons/{personId}/transactions` | Fetch all person transactions |
| POST | `/v1/persons/{personId}/transactions` | Create new transaction |
| GET | `/v1/persons/{personId}/transactions/{transactionId}` | Fetch transaction by id |
| PATCH | `/v1/persons/{personId}/transactions/{transactionId}` | Update transaction |
| GET | `/v1/persons/{personId}/statuses` | Fetch history of status changes for the person |

## Machine-readable artifacts (1)

- **OpenAPI** — https://raw.githubusercontent.com/api-evangelist/salv/refs/heads/main/openapi/salv-aml-api-openapi.yml

## Other Salv APIs (12)

- [Salv alert API](https://apis.io/apis/salv/salv-alert-api/)
- [Salv alerts API](https://apis.io/apis/salv/salv-alerts-api/)
- [Salv custom-list-record API](https://apis.io/apis/salv/salv-custom-list-record-api/)
- [Salv custom-list-usable-field-public API](https://apis.io/apis/salv/salv-custom-list-usable-field-public-api/)
- [Salv data-upload API](https://apis.io/apis/salv/salv-data-upload-api/)
- [Salv manual-alerts API](https://apis.io/apis/salv/salv-manual-alerts-api/)
- [Salv monitoring-checks API](https://apis.io/apis/salv/salv-monitoring-checks-api/)
- [Salv note API](https://apis.io/apis/salv/salv-note-api/)
- [Salv risk API](https://apis.io/apis/salv/salv-risk-api/)
- [Salv screening-alerts API](https://apis.io/apis/salv/salv-screening-alerts-api/)
- [Salv screening-checks API](https://apis.io/apis/salv/salv-screening-checks-api/)
- [Salv screening-list-groups API](https://apis.io/apis/salv/salv-screening-list-groups-api/)

## Tags

AML

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/salv/salv-aml-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/salv/.
