Skip to content

BNDRY API (v1alpha)

API for the BNDRY platform

Download OpenAPI description
Overview
License

MIT License

Languages
Servers
Mock server

https://docs.bndry.net/_mock/apis/openapi/

BNDRY API

https://api.bndry.app/

Operations
Operations

Entity Risk Rating

Service for managing risk rating jobs for individual entities.

Operations

Onboard Individual (Verify Identity)

Service for managing individual entity onboarding jobs.

Operations

Entity PEP Sanctions Check

Service for managing PEP and sanctions screening jobs for individual entities.

Operations

Retrieve a PEP and sanctions screening job

Request

Retrieves details about a specific PEP and sanctions screening job.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

pepSanctionIndividualEntityJobstringrequired

The pepSanctionIndividualEntityJob id.

curl -i -X GET \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/pepSanctionIndividualEntityJobs/{pepSanctionIndividualEntityJob}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
namestring(name)

(IDENTIFIER) Output only. The resource name of the job. Format: entities/-/pepSanctionIndividualEntityJobs/{pep_sanction_individual_entity_job} correct_name_format // name must follow format 'entities/-/pepSanctionIndividualEntityJobs/*' string.example = ["entities/-/pepSanctionIndividualEntityJobs/pep-sanction-screen-2024-0127-743891"]

createTimestring(date-time)(google.protobuf.Timestamp)read-only

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

struct timeval tv; gettimeofday(&tv, NULL);

Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

Instant now = Instant.now();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

timestamp = Timestamp() timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

updateTimestring(date-time)(google.protobuf.Timestamp)read-only

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

struct timeval tv; gettimeofday(&tv, NULL);

Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

Instant now = Instant.now();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

timestamp = Timestamp() timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

Response
application/json
{ "name": "entities/-/pepSanctionIndividualEntityJobs/pep-sanction-screen-2024-0127-743891", "createTime": "2023-01-15T01:30:15.01Z", "updateTime": "2023-01-15T01:30:15.01Z" }

List PEP and sanctions screening jobs

Request

Lists PEP and sanctions screening jobs for a specific entity.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

Query
pageSizeinteger(int32)(page_size)

Optional. The maximum number of jobs to return. The service may return fewer than this value. If unspecified, at most 10 jobs will be returned. The maximum value is 100; values above 100 will be coerced to 100.

pageTokenstring(page_token)

Optional. A page token, received from a previous ListPepSanctionIndividualEntityJobs call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListPepSanctionIndividualEntityJobs must match the call that provided the page token.

skipinteger(int32)(skip)>= 0

Optional. The number of jobs to skip before starting to collect the result set.

curl -i -X GET \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/pepSanctionIndividualEntityJobs?pageSize=25&pageToken=ChAIAhABGAEiAggC&skip=0' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
pepSanctionIndividualEntityJobsArray of objects(pep_sanction_individual_entity_jobs)

The list of PEP and sanctions screening jobs.

nextPageTokenstring(next_page_token)

A token to retrieve the next page of results, or empty if there are no more results in the list. string.example = ["cn8DAQEsQ3Vyc29yUGFnZVRva2VuW2dpdGh1Yi5jb20vZ29vZ2xlL3V1aWQuVVVJRF0B_4AAAQQBBkN1cnNvcgH_ggABBFNraXABBAABC1Nob3dEZWxldGVkAQIAAQ9SZXF1ZXN0Q2hlY2tzdW0BBgAAAAr_gQYBAv-EAAAAG_-AARABmJ6h3ll2WY12-UroKTKHA_x1wJ5cAA=="]

totalSizeinteger(int32)(total_size)

The total number of jobs matching the request. int32.example = [47]

Response
application/json
{ "pepSanctionIndividualEntityJobs": [ {} ], "nextPageToken": "cn8DAQEsQ3Vyc29yUGFnZVRva2VuW2dpdGh1Yi5jb20vZ29vZ2xlL3V1aWQuVVVJRF0B_4AAAQQBBkN1cnNvcgH_ggABBFNraXABBAABC1Nob3dEZWxldGVkAQIAAQ9SZXF1ZXN0Q2hlY2tzdW0BBgAAAAr_gQYBAv-EAAAAG_-AARABmJ6h3ll2WY12-UroKTKHA_x1wJ5cAA==", "totalSize": 47 }

Create a PEP and sanctions screening job

Request

Creates a new PEP and sanctions screening job.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

Query
pepSanctionIndividualEntityJobIdstring(pep_sanction_individual_entity_job_id)[ 4 .. 63 ] charactersrequired

REQUIRED. The ID to use for the job, which will become the final component of the job's resource name. This value should be 4-63 characters, and valid characters are /[a-z][0-9]-/.

Bodyapplication/json

Required. The PEP and sanctions screening job to create.

namestring(name)

(IDENTIFIER) Output only. The resource name of the job. Format: entities/-/pepSanctionIndividualEntityJobs/{pep_sanction_individual_entity_job} correct_name_format // name must follow format 'entities/-/pepSanctionIndividualEntityJobs/*' string.example = ["entities/-/pepSanctionIndividualEntityJobs/pep-sanction-screen-2024-0127-743891"]

curl -i -X POST \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/pepSanctionIndividualEntityJobs?pepSanctionIndividualEntityJobId=pep-sanction-screen-001' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "entities/-/pepSanctionIndividualEntityJobs/pep-sanction-screen-2024-0127-743891",
    "createTime": "2023-01-15T01:30:15.01Z",
    "updateTime": "2023-01-15T01:30:15.01Z"
  }'

Responses

Success

Bodyapplication/json
namestring(name)

(IDENTIFIER) Output only. The resource name of the job. Format: entities/-/pepSanctionIndividualEntityJobs/{pep_sanction_individual_entity_job} correct_name_format // name must follow format 'entities/-/pepSanctionIndividualEntityJobs/*' string.example = ["entities/-/pepSanctionIndividualEntityJobs/pep-sanction-screen-2024-0127-743891"]

createTimestring(date-time)(google.protobuf.Timestamp)read-only

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

struct timeval tv; gettimeofday(&tv, NULL);

Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

Instant now = Instant.now();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

timestamp = Timestamp() timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

updateTimestring(date-time)(google.protobuf.Timestamp)read-only

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

Timestamp timestamp; timestamp.set_seconds(time(NULL)); timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

struct timeval tv; gettimeofday(&tv, NULL);

Timestamp timestamp; timestamp.set_seconds(tv.tv_sec); timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

FILETIME ft; GetSystemTimeAsFileTime(&ft); UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. Timestamp timestamp; timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

Instant now = Instant.now();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(now.getEpochSecond()) .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

timestamp = Timestamp() timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

Response
application/json
{ "name": "entities/-/pepSanctionIndividualEntityJobs/pep-sanction-screen-2024-0127-743891", "createTime": "2023-01-15T01:30:15.01Z", "updateTime": "2023-01-15T01:30:15.01Z" }

Run a PEP and sanctions screening job

Request

Runs a PEP and sanctions screening job.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

pepSanctionIndividualEntityJobstringrequired

The pepSanctionIndividualEntityJob id.

curl -i -X POST \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/pepSanctionIndividualEntityJobs/{pepSanctionIndividualEntityJob}:run' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
One of:

This resource represents a long-running operation that is the result of a network API call.

namestring(name)

The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.

metadataobject(google.protobuf.Any)

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

doneboolean(done)

If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.

errorobject(google.rpc.Status)required

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details.

You can find out more about this error model and how to work with it in the API Design Guide.

error.​codeinteger(int32)(code)

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

error.​messagestring(message)

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

error.​detailsArray of objects(details)

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Response
application/json
{ "name": "string", "metadata": { "type": "string", "value": "string" }, "done": true, "error": { "code": 0, "message": "string", "details": [] } }

Request

Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.

Security
oauth2_client_credentials or oauth2_authorization_code
Path
entitystringrequired

The entity id.

pepSanctionIndividualEntityJobstringrequired

The pepSanctionIndividualEntityJob id.

operationstringrequired

The operation id.

curl -i -X GET \
  'https://docs.bndry.net/_mock/apis/openapi/v1alpha/entities/{entity}/pepSanctionIndividualEntityJobs/{pepSanctionIndividualEntityJob}/operations/{operation}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Success

Bodyapplication/json
One of:

This resource represents a long-running operation that is the result of a network API call.

namestring(name)

The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the name should be a resource name ending with operations/{unique_id}.

metadataobject(google.protobuf.Any)

Contains an arbitrary serialized message along with a @type that describes the type of the serialized message.

doneboolean(done)

If the value is false, it means the operation is still in progress. If true, the operation is completed, and either error or response is available.

errorobject(google.rpc.Status)required

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status message contains three pieces of data: error code, error message, and error details.

You can find out more about this error model and how to work with it in the API Design Guide.

error.​codeinteger(int32)(code)

The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

error.​messagestring(message)

A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

error.​detailsArray of objects(details)

A list of messages that carry the error details. There is a common set of message types for APIs to use.

Response
application/json
{ "name": "string", "metadata": { "type": "string", "value": "string" }, "done": true, "error": { "code": 0, "message": "string", "details": [] } }