Trustap API (0.1.0)

The Trustap API is a REST-based API for managing user data and transactions for Trustap users.

Note that, like Stripe, all API price and charge fields expect amounts to be provided in a currency's smallest unit. See the Stripe documentation for more details.

API Keys


Some endpoints such as /charge endpoints can be accessed directly using an API key. API keys are provided as the "username" portion of a basic auth authentication. For example, the Trustap fee for a new online transaction can be determined using the following cURL request with an API key:

curl -u '<api_key>': 'https://dev.stage.trustap.com/api/v1/charge?currency=eur&price=1234'

Deprecation


Deprecated endpoints are tagged with the word DEPRECATED at the start of their description. The deprecation message will describe what endpoints/approach should be used instead.

Note that deprecated endpoints will not be removed from the current version of the API, but their use is discouraged. Furthermore, migrating to later major versions of the API will be made easier by avoiding deprecated endpoints.

Production


This documentation references the staging environment of the Trustap API, which is available at https://dev.stage.trustap.com and uses the trustap-stage realm during authentication. This environment can be used for implementing and testing features using test credit cards, bank accounts, etc.

When all features using Trustap have been implemented and tested sufficiently, the production environment of the Trustap API can be used to process actual currency. This environment is available at https://dev.trustap.com and uses the trustap realm during authentication.

Note that only your client ID will be the same in the staging and production Trustap API environments; your client secret and API key will be different in the two environments.

Download OpenAPI description
Overview
Languages
Servers
https://dev.stage.trustap.com/api/v1/

Online Transactions

Online transactions are used when the goods are delivered using registered mail.

Operations

Clients

Clients represent partner applications.

Operations

Users

Users represent users of the platform.

Operations

Personal

Personal endpoints are used for managing personal details for users, for "Know Your Customer" requirements.

Operations

Get verification status for the back side of the secondary identity document

Request

curl -i -X GET \
  https://dev.stage.trustap.com/api/v1/me/personal/additional_identity_document_back/verification_status \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
previously_submittedbooleanrequired
Example: true
statusstringrequired

Verification status of the document could be one of the following: due, not_due, verifying, verified

Example: "verifying"
Response
application/json
{ "previously_submitted": true, "status": "verifying" }

Get personal details for the local user

Request

curl -i -X GET \
  https://dev.stage.trustap.com/api/v1/me/personal/details \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

OK

Bodyapplication/json
address_cityobject(personal.VerifiableString)required
address_city.​invalid_reasonobject(personal.InvalidReason)
address_city.​required_nowbooleanrequired
address_city.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_city.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_city.​validationobject(personal.Validation)required
address_city.​validation.​cannot_unsetboolean
address_city.​validation.​cannot_updateboolean
address_city.​validation.​max_lengthinteger
address_city.​validation.​min_lengthinteger
address_city.​valuestringrequired
address_countryobject(personal.VerifiableString)required
address_country.​invalid_reasonobject(personal.InvalidReason)
address_country.​required_nowbooleanrequired
address_country.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_country.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_country.​validationobject(personal.Validation)required
address_country.​validation.​cannot_unsetboolean
address_country.​validation.​cannot_updateboolean
address_country.​validation.​max_lengthinteger
address_country.​validation.​min_lengthinteger
address_country.​valuestringrequired
address_line1object(personal.VerifiableString)required
address_line1.​invalid_reasonobject(personal.InvalidReason)
address_line1.​required_nowbooleanrequired
address_line1.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_line1.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_line1.​validationobject(personal.Validation)required
address_line1.​validation.​cannot_unsetboolean
address_line1.​validation.​cannot_updateboolean
address_line1.​validation.​max_lengthinteger
address_line1.​validation.​min_lengthinteger
address_line1.​valuestringrequired
address_line2object(personal.VerifiableString)required
address_line2.​invalid_reasonobject(personal.InvalidReason)
address_line2.​required_nowbooleanrequired
address_line2.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_line2.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_line2.​validationobject(personal.Validation)required
address_line2.​validation.​cannot_unsetboolean
address_line2.​validation.​cannot_updateboolean
address_line2.​validation.​max_lengthinteger
address_line2.​validation.​min_lengthinteger
address_line2.​valuestringrequired
address_postal_codeobject(personal.VerifiableString)required
address_postal_code.​invalid_reasonobject(personal.InvalidReason)
address_postal_code.​required_nowbooleanrequired
address_postal_code.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_postal_code.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_postal_code.​validationobject(personal.Validation)required
address_postal_code.​validation.​cannot_unsetboolean
address_postal_code.​validation.​cannot_updateboolean
address_postal_code.​validation.​max_lengthinteger
address_postal_code.​validation.​min_lengthinteger
address_postal_code.​valuestringrequired
address_stateobject(personal.VerifiableString)required
address_state.​invalid_reasonobject(personal.InvalidReason)
address_state.​required_nowbooleanrequired
address_state.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_state.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_state.​validationobject(personal.Validation)required
address_state.​validation.​cannot_unsetboolean
address_state.​validation.​cannot_updateboolean
address_state.​validation.​max_lengthinteger
address_state.​validation.​min_lengthinteger
address_state.​valuestringrequired
dobobject(personal.VerifiableDate)required
dob.​invalid_reasonobject(personal.InvalidReason)
dob.​required_nowbooleanrequired
dob.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
dob.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
dob.​validationobject(personal.DateValidation)required
dob.​validation.​max_dateinteger
dob.​validation.​max_dayinteger
dob.​validation.​max_monthinteger
dob.​validation.​max_yearinteger
dob.​validation.​min_dayinteger
dob.​validation.​min_monthinteger
dob.​validation.​min_yearinteger
dob.​valueobjectrequired
dob.​value.​dayintegerrequired
dob.​value.​monthintegerrequired
dob.​value.​yearintegerrequired
id_numberobject(personal.VerifiableIdNumber)required
id_number.​invalid_reasonobject(personal.InvalidReason)
id_number.​required_nowbooleanrequired
id_number.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
id_number.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
id_number.​validationobjectrequired
id_number.​validation.​max_lengthinteger
id_number.​validation.​min_lengthinteger
id_number.​valueobjectrequired
id_number.​value.​providedbooleanrequired
name_firstobject(personal.VerifiableString)required
name_first.​invalid_reasonobject(personal.InvalidReason)
name_first.​required_nowbooleanrequired
name_first.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
name_first.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
name_first.​validationobject(personal.Validation)required
name_first.​validation.​cannot_unsetboolean
name_first.​validation.​cannot_updateboolean
name_first.​validation.​max_lengthinteger
name_first.​validation.​min_lengthinteger
name_first.​valuestringrequired
name_lastobject(personal.VerifiableString)required
name_last.​invalid_reasonobject(personal.InvalidReason)
name_last.​required_nowbooleanrequired
name_last.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
name_last.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
name_last.​validationobject(personal.Validation)required
name_last.​validation.​cannot_unsetboolean
name_last.​validation.​cannot_updateboolean
name_last.​validation.​max_lengthinteger
name_last.​validation.​min_lengthinteger
name_last.​valuestringrequired
phoneobject(personal.VerifiablePhone)required
phone.​invalid_reasonobject(personal.InvalidReason)
phone.​required_nowbooleanrequired
phone.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
phone.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
phone.​validationobjectrequired
phone.​validation.​number_min_lengthinteger
phone.​valueobjectrequired
phone.​value.​dial_codestringrequired
phone.​value.​dial_code_countrystringrequired

This field is mostly non-functional, but is instead used to render the phone number for the user. This field is necessary because different countries may use the same dial code (for example, the US and Canada).

phone.​value.​numberstringrequired
Response
application/json
{ "address_city": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_country": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_line1": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_line2": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_postal_code": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_state": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "dob": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": {} }, "id_number": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": {} }, "name_first": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "name_last": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "phone": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": {} } }

Set personal details for the local user

Request

Bodyapplication/jsonrequired
address_citystring
address_line1string
address_line2string
address_postal_codestring
address_statestring
dobobject
id_numberstring or null

The full ID number for this user.

name_firststring
name_laststring
phoneobject or null
curl -i -X PATCH \
  https://dev.stage.trustap.com/api/v1/me/personal/details \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "address_city": "string",
    "address_line1": "string",
    "address_line2": "string",
    "address_postal_code": "string",
    "address_state": "string",
    "dob": {
      "day": 0,
      "month": 0,
      "year": 0
    },
    "id_number": "string",
    "name_first": "string",
    "name_last": "string",
    "phone": {
      "dial_code": "string",
      "dial_code_country": "string",
      "number": "string"
    }
  }'

Responses

OK

Bodyapplication/json
address_cityobject(personal.VerifiableString)required
address_city.​invalid_reasonobject(personal.InvalidReason)
address_city.​required_nowbooleanrequired
address_city.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_city.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_city.​validationobject(personal.Validation)required
address_city.​validation.​cannot_unsetboolean
address_city.​validation.​cannot_updateboolean
address_city.​validation.​max_lengthinteger
address_city.​validation.​min_lengthinteger
address_city.​valuestringrequired
address_countryobject(personal.VerifiableString)required
address_country.​invalid_reasonobject(personal.InvalidReason)
address_country.​required_nowbooleanrequired
address_country.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_country.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_country.​validationobject(personal.Validation)required
address_country.​validation.​cannot_unsetboolean
address_country.​validation.​cannot_updateboolean
address_country.​validation.​max_lengthinteger
address_country.​validation.​min_lengthinteger
address_country.​valuestringrequired
address_line1object(personal.VerifiableString)required
address_line1.​invalid_reasonobject(personal.InvalidReason)
address_line1.​required_nowbooleanrequired
address_line1.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_line1.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_line1.​validationobject(personal.Validation)required
address_line1.​validation.​cannot_unsetboolean
address_line1.​validation.​cannot_updateboolean
address_line1.​validation.​max_lengthinteger
address_line1.​validation.​min_lengthinteger
address_line1.​valuestringrequired
address_line2object(personal.VerifiableString)required
address_line2.​invalid_reasonobject(personal.InvalidReason)
address_line2.​required_nowbooleanrequired
address_line2.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_line2.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_line2.​validationobject(personal.Validation)required
address_line2.​validation.​cannot_unsetboolean
address_line2.​validation.​cannot_updateboolean
address_line2.​validation.​max_lengthinteger
address_line2.​validation.​min_lengthinteger
address_line2.​valuestringrequired
address_postal_codeobject(personal.VerifiableString)required
address_postal_code.​invalid_reasonobject(personal.InvalidReason)
address_postal_code.​required_nowbooleanrequired
address_postal_code.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_postal_code.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_postal_code.​validationobject(personal.Validation)required
address_postal_code.​validation.​cannot_unsetboolean
address_postal_code.​validation.​cannot_updateboolean
address_postal_code.​validation.​max_lengthinteger
address_postal_code.​validation.​min_lengthinteger
address_postal_code.​valuestringrequired
address_stateobject(personal.VerifiableString)required
address_state.​invalid_reasonobject(personal.InvalidReason)
address_state.​required_nowbooleanrequired
address_state.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
address_state.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
address_state.​validationobject(personal.Validation)required
address_state.​validation.​cannot_unsetboolean
address_state.​validation.​cannot_updateboolean
address_state.​validation.​max_lengthinteger
address_state.​validation.​min_lengthinteger
address_state.​valuestringrequired
dobobject(personal.VerifiableDate)required
dob.​invalid_reasonobject(personal.InvalidReason)
dob.​required_nowbooleanrequired
dob.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
dob.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
dob.​validationobject(personal.DateValidation)required
dob.​validation.​max_dateinteger
dob.​validation.​max_dayinteger
dob.​validation.​max_monthinteger
dob.​validation.​max_yearinteger
dob.​validation.​min_dayinteger
dob.​validation.​min_monthinteger
dob.​validation.​min_yearinteger
dob.​valueobjectrequired
dob.​value.​dayintegerrequired
dob.​value.​monthintegerrequired
dob.​value.​yearintegerrequired
id_numberobject(personal.VerifiableIdNumber)required
id_number.​invalid_reasonobject(personal.InvalidReason)
id_number.​required_nowbooleanrequired
id_number.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
id_number.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
id_number.​validationobjectrequired
id_number.​validation.​max_lengthinteger
id_number.​validation.​min_lengthinteger
id_number.​valueobjectrequired
id_number.​value.​providedbooleanrequired
name_firstobject(personal.VerifiableString)required
name_first.​invalid_reasonobject(personal.InvalidReason)
name_first.​required_nowbooleanrequired
name_first.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
name_first.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
name_first.​validationobject(personal.Validation)required
name_first.​validation.​cannot_unsetboolean
name_first.​validation.​cannot_updateboolean
name_first.​validation.​max_lengthinteger
name_first.​validation.​min_lengthinteger
name_first.​valuestringrequired
name_lastobject(personal.VerifiableString)required
name_last.​invalid_reasonobject(personal.InvalidReason)
name_last.​required_nowbooleanrequired
name_last.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
name_last.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
name_last.​validationobject(personal.Validation)required
name_last.​validation.​cannot_unsetboolean
name_last.​validation.​cannot_updateboolean
name_last.​validation.​max_lengthinteger
name_last.​validation.​min_lengthinteger
name_last.​valuestringrequired
phoneobject(personal.VerifiablePhone)required
phone.​invalid_reasonobject(personal.InvalidReason)
phone.​required_nowbooleanrequired
phone.​statusstring(personal.VerificationStatus)required
Enum"unset""invalid""verifying""verified_and_verifying""verified""set"
phone.​typestring(personal.FieldType)required
Enum"date""id_number""phone""string"
phone.​validationobjectrequired
phone.​validation.​number_min_lengthinteger
phone.​valueobjectrequired
phone.​value.​dial_codestringrequired
phone.​value.​dial_code_countrystringrequired

This field is mostly non-functional, but is instead used to render the phone number for the user. This field is necessary because different countries may use the same dial code (for example, the US and Canada).

phone.​value.​numberstringrequired
Response
application/json
{ "address_city": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_country": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_line1": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_line2": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_postal_code": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "address_state": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "dob": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": {} }, "id_number": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": {} }, "name_first": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "name_last": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": "string" }, "phone": { "invalid_reason": {}, "required_now": true, "status": "unset", "type": "date", "validation": {}, "value": {} } }

Notifications

Notifications log updates for users.

Operations

F2F Transactions

F2F2 transactions are used when the goods are delivered in person.

Operations

Online Multi-use Listings

These endpoints are no longer supported. We do not recommend using these endpoints.

Operations

Online Single-use Listings

These endpoints are no longer supported. We do not recommend using these endpoints.

Operations

F2F Multi-use Listings

These endpoints are no longer supported. We do not recommend using these endpoints.

Operations

F2F Single-use Listings

These endpoints are no longer supported. We do not recommend using these endpoints.

Operations