curl --request POST \
--url https://api.synctera.com/v2/migration_mappings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"old_resource_id": "<string>",
"old_tenant": "abcdef_ghijkl",
"resource_id": "<string>",
"allow_ssn_copy": false
}
'import requests
url = "https://api.synctera.com/v2/migration_mappings"
payload = {
"old_resource_id": "<string>",
"old_tenant": "abcdef_ghijkl",
"resource_id": "<string>",
"allow_ssn_copy": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
old_resource_id: '<string>',
old_tenant: 'abcdef_ghijkl',
resource_id: '<string>',
allow_ssn_copy: false
})
};
fetch('https://api.synctera.com/v2/migration_mappings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.synctera.com/v2/migration_mappings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'old_resource_id' => '<string>',
'old_tenant' => 'abcdef_ghijkl',
'resource_id' => '<string>',
'allow_ssn_copy' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.synctera.com/v2/migration_mappings"
payload := strings.NewReader("{\n \"old_resource_id\": \"<string>\",\n \"old_tenant\": \"abcdef_ghijkl\",\n \"resource_id\": \"<string>\",\n \"allow_ssn_copy\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.synctera.com/v2/migration_mappings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"old_resource_id\": \"<string>\",\n \"old_tenant\": \"abcdef_ghijkl\",\n \"resource_id\": \"<string>\",\n \"allow_ssn_copy\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.synctera.com/v2/migration_mappings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"old_resource_id\": \"<string>\",\n \"old_tenant\": \"abcdef_ghijkl\",\n \"resource_id\": \"<string>\",\n \"allow_ssn_copy\": false\n}"
response = http.request(request)
puts response.read_body{
"creation_time": "2010-05-06T12:23:34.321Z",
"id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
"last_updated_time": "2010-05-06T12:23:34.321Z",
"old_resource_id": "abc123",
"old_tenant": "abcdef_ghijkl",
"resource_id": "def456",
"resource_type": "ACCOUNT",
"tenant": "abcdef_ghijkl",
"allow_ssn_copy": false,
"deletion_time": "2010-05-06T12:23:34.321Z"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}Create a migration mapping
Create a migration mapping that associates a resource’s old tenant identity with its new tenant identity.
curl --request POST \
--url https://api.synctera.com/v2/migration_mappings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"old_resource_id": "<string>",
"old_tenant": "abcdef_ghijkl",
"resource_id": "<string>",
"allow_ssn_copy": false
}
'import requests
url = "https://api.synctera.com/v2/migration_mappings"
payload = {
"old_resource_id": "<string>",
"old_tenant": "abcdef_ghijkl",
"resource_id": "<string>",
"allow_ssn_copy": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
old_resource_id: '<string>',
old_tenant: 'abcdef_ghijkl',
resource_id: '<string>',
allow_ssn_copy: false
})
};
fetch('https://api.synctera.com/v2/migration_mappings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.synctera.com/v2/migration_mappings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'old_resource_id' => '<string>',
'old_tenant' => 'abcdef_ghijkl',
'resource_id' => '<string>',
'allow_ssn_copy' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.synctera.com/v2/migration_mappings"
payload := strings.NewReader("{\n \"old_resource_id\": \"<string>\",\n \"old_tenant\": \"abcdef_ghijkl\",\n \"resource_id\": \"<string>\",\n \"allow_ssn_copy\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.synctera.com/v2/migration_mappings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"old_resource_id\": \"<string>\",\n \"old_tenant\": \"abcdef_ghijkl\",\n \"resource_id\": \"<string>\",\n \"allow_ssn_copy\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.synctera.com/v2/migration_mappings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"old_resource_id\": \"<string>\",\n \"old_tenant\": \"abcdef_ghijkl\",\n \"resource_id\": \"<string>\",\n \"allow_ssn_copy\": false\n}"
response = http.request(request)
puts response.read_body{
"creation_time": "2010-05-06T12:23:34.321Z",
"id": "7d943c51-e4ff-4e57-9558-08cab6b963c7",
"last_updated_time": "2010-05-06T12:23:34.321Z",
"old_resource_id": "abc123",
"old_tenant": "abcdef_ghijkl",
"resource_id": "def456",
"resource_type": "ACCOUNT",
"tenant": "abcdef_ghijkl",
"allow_ssn_copy": false,
"deletion_time": "2010-05-06T12:23:34.321Z"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}{
"code": "BAD_REQUEST_BODY",
"detail": "missing required fields: first_name, dob",
"status": 400,
"title": "Bad Request Body",
"type": "https://dev.synctera.com/errors/bad-request-body"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
An idempotency key is an arbitrary unique value generated by client to detect subsequent retries of the same request. It is recommended that a UUID or a similar random identifier be used as an idempotency key. A different key must be used for each request, unless it is a retry.
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
Body
Migration mapping to create
Fields required to create a migration mapping.
The previous resource ID under the old tenant.
The id of the tenant containing the resource. This is relevant for Fintechs that have multiple workspaces.
"abcdef_ghijkl"
The new/current resource ID.
The type of resource being mapped.
ACCOUNT, BUSINESS, PERSON When true, the vaulted SSN is copied from old_resource_id to resource_id. Only valid for resource_type PERSON: both persons must exist, their first and last names must match, the old person must have an SSN, and the new person must not already have one. The copy happens asynchronously after creation.
Response
Migration mapping created
Maps a resource identity from an old tenant to a new tenant.
The date and time the resource was created.
"2010-05-06T12:23:34.321Z"
The unique identifier for the migration mapping.
"7d943c51-e4ff-4e57-9558-08cab6b963c7"
The date and time the resource was last updated.
"2010-05-06T12:23:34.321Z"
The previous resource ID under the old tenant.
"abc123"
The id of the tenant containing the resource. This is relevant for Fintechs that have multiple workspaces.
"abcdef_ghijkl"
The new/current resource ID.
"def456"
The type of resource being mapped.
ACCOUNT, BUSINESS, PERSON The id of the tenant containing the resource. This is relevant for Fintechs that have multiple workspaces.
"abcdef_ghijkl"
When true, the vaulted SSN is copied from old_resource_id to resource_id. Only valid for resource_type PERSON. The copy happens asynchronously after creation; completion is observed by the new person having an SSN.
The date and time the resource was deleted.
"2010-05-06T12:23:34.321Z"
Was this page helpful?

