Upload Document
curl --request POST \
--url https://sandbox.api.fin.com/v1/customers/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form customer_id=55bd6b4e-c20a-4cc8-9535-91d5557a67d9 \
--form passport='@example-file' \
--form poa='@example-file' \
--form poi='@example-file'import fs from 'fs';
const formData = new FormData();
formData.append('customer_id', '55bd6b4e-c20a-4cc8-9535-91d5557a67d9');
formData.append('passport', await new Response(fs.createReadStream('example-file')).blob());
formData.append('poa', await new Response(fs.createReadStream('example-file')).blob());
formData.append('poi', await new Response(fs.createReadStream('example-file')).blob());
const url = 'https://sandbox.api.fin.com/v1/customers/upload';
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}, body: formData};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://sandbox.api.fin.com/v1/customers/upload")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "multipart/form-data")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"customer_id\"\r\n\r\n55bd6b4e-c20a-4cc8-9535-91d5557a67d9\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"passport\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"poa\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"poi\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();import requests
url = "https://sandbox.api.fin.com/v1/customers/upload"
files = {
"passport": ("example-file", open("example-file", "rb")),
"poa": ("example-file", open("example-file", "rb")),
"poi": ("example-file", open("example-file", "rb"))
}
payload = { "customer_id": "55bd6b4e-c20a-4cc8-9535-91d5557a67d9" }
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.api.fin.com/v1/customers/upload"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"customer_id\"\r\n\r\n55bd6b4e-c20a-4cc8-9535-91d5557a67d9\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"passport\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"poa\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"poi\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": {
"files": [
{
"passport": "/CwW9PHhP_Germany-passport.jpg"
},
{
"poa": "/KVdLfqjR_germany-poa-green.jpg"
}
]
}
}{
"message": "Authentication failed"
}{
"message": "<string>",
"errors": [
{}
]
}Customers
Upload Document
Upload customer documents using multipart/form-data. Files can be uploaded with arbitrary field names (e.g., poa, poi, passport, file1, etc.)
POST
/
v1
/
customers
/
upload
Upload Document
curl --request POST \
--url https://sandbox.api.fin.com/v1/customers/upload \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form customer_id=55bd6b4e-c20a-4cc8-9535-91d5557a67d9 \
--form passport='@example-file' \
--form poa='@example-file' \
--form poi='@example-file'import fs from 'fs';
const formData = new FormData();
formData.append('customer_id', '55bd6b4e-c20a-4cc8-9535-91d5557a67d9');
formData.append('passport', await new Response(fs.createReadStream('example-file')).blob());
formData.append('poa', await new Response(fs.createReadStream('example-file')).blob());
formData.append('poi', await new Response(fs.createReadStream('example-file')).blob());
const url = 'https://sandbox.api.fin.com/v1/customers/upload';
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}, body: formData};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));HttpResponse<String> response = Unirest.post("https://sandbox.api.fin.com/v1/customers/upload")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "multipart/form-data")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"customer_id\"\r\n\r\n55bd6b4e-c20a-4cc8-9535-91d5557a67d9\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"passport\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"poa\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"poi\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
.asString();import requests
url = "https://sandbox.api.fin.com/v1/customers/upload"
files = {
"passport": ("example-file", open("example-file", "rb")),
"poa": ("example-file", open("example-file", "rb")),
"poi": ("example-file", open("example-file", "rb"))
}
payload = { "customer_id": "55bd6b4e-c20a-4cc8-9535-91d5557a67d9" }
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, data=payload, files=files, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.api.fin.com/v1/customers/upload"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"customer_id\"\r\n\r\n55bd6b4e-c20a-4cc8-9535-91d5557a67d9\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"passport\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"poa\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"poi\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n<string>\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"data": {
"files": [
{
"passport": "/CwW9PHhP_Germany-passport.jpg"
},
{
"poa": "/KVdLfqjR_germany-poa-green.jpg"
}
]
}
}{
"message": "Authentication failed"
}{
"message": "<string>",
"errors": [
{}
]
}Allowed File Types
PDFJPG/JPEGPNG
Files should be uploaded as separate form fields with arbitrary names.
You can use any field name for files (e.g.,
passport, poa, poi, file1, document1, etc.).
The field name you use will be returned as the key in the response.Authorizations
Bearer token authentication. Obtain token from Issue a Token endpoint
Body
multipart/form-data
Response
Documents uploaded successfully
Show child attributes
Show child attributes
⌘I
