Schema Types

Table of Contents

Query

Field Argument Type Description
getProfile GetProfileResponse! Fetch information about a given entity. Permission needed: - name: get_profile - scope: get_profile:execute
input InputGetProfile! Get profile request's inputs type.
getDocumentTypes GatewayResponse! Fetch all documents types. Permission needed: - name: get_document_types - scope: get_document_types:execute
getAllDocuments UserDocumentsResponse! Fetch all documents owned by a given entity. Permission needed: - name: get_all_documents - scope: get_all_documents:execute
input InputsGetAllDocuments! Get all documents request's inputs type
getAllDomainNames DomainNameResponse! Fetch all domain names owned by a given entity. Permission needed: - name: get_domain_names - scope: get_domain_names:execute
getAllKycRequests GatewayResponse! Fetch all KYC requests owned by a given entity. Permission needed: - name: get_all_kyc_requests - scope: get_all_kyc_requests:execute
getAllKybRequests GatewayResponse! Fetch all KYB requests owned by a given entity. Permission needed: - name: get_all_kyb_requests - scope: get_all_kyb_requests:execute
getProductByCode GatewayResponse! Fetch one product owned by an entity given its unique code. Permission needed: - name: get_product_by_code - scope: get_product_by_code:execute
input InputsGetProductByCode! Get product by code request's inputs type.
getKYCActions GatewayResponse! Fetch all KYC possible actions. Returns an array of KYCAction. Permission needed: - name: get_kyc_actions - scope: get_kyc_actions:execute
getAllProducts GatewayResponse! Fetch all owned products. Returns an array of Product. Permission needed: - name: get_all_products - scope: get_all_products:execute
getAllEntities EntityResponse! Fetch all entities given a relation type ID. Returns an array of Entity. Permission needed: - name: get_all_entities - scope: get_all_entities:execute
getEntitiesRelationTypes EntityResponse! Fetch all entity relation types. Returns an array of RelationType. Permission needed: - name: get_entities_relation_types - scope: get_entities_relation_types:execute
getEntityTypes EntityResponse! Fetch all entity types. Returns an array of EntityType. Permission needed: - name: get_entity_types - scope: get_entity_types:execute

Mutation

Field Argument Type Description
createUpload DocumentsResponse! Creates a signed request to upload a document. Permission needed: - name: create_upload - scope: create_upload:execute
input InputCreateUpload! Upload document request's inputs type.
createDownload DocumentsResponse! Creates a signed request to download a document. Permission needed: - name: create_download - scope: create_upload:execute
input InputCreateDownload! Download document request's inputs type.
createUploadForEntity DocumentsResponse! Creates a signed request to upload a document for a given entity. Permission needed: - name: create_upload_for_entity - scope: create_upload_for_entity:execute
input InputsCreateUploadForEntity! Upload document for a givne entity request's inputs type.
createPartnerDomainName DomainNameResponse! Allows a new domain name to request on APPI API using a web browser (CORS). Permission needed: - name: create_domain_name - scope: create_domain_name:execute
input InputsCreateOrDeleteDomainName! Domain name creation request's inputs type.
createKYC PhysicalPersonResponse! Creates a new KYC request for a given product code. Returns an object of type KYCRequest. Permission needed: - name: create_kyc - scope: create_kyc:execute Warning: If the physical person already exists in our database, it will send you an error. We are currently working on a solution to provide a smooth experience to your customer (e.g. APPI Connect -> Authorization Token to retrieve information).
input InputsCreateKYC!
createKYB MoralPersonResponse! Creates a new KYB request for a given product code. Returns an object of type KYBRequest. Permission needed: - name: create_kyb - scope: create_kyb:execute Warning: If the moral person already exists in our database, it will send you an error. We are currently working on a solution to provide a smooth experience to your partner (e.g. APPI Connect -> Authorization Token to retrieve information).
input InputsCreateKYB!
newProduct ProductsResponse! Creates a new product for either Moral persons or Physical persons. The choosen action depends of the target audience. Permission needed: - name: new_product - scope: new_product:execute
input InputsNewProduct! New product request's inputs type.
forgotPassword GatewayResponse! Creates a new forgot password request. No permission needed.
input InputsCreateForgotPassword! Forgot password inputs type. Returns no values.
updatePartner GatewayResponse! Updates partner's information. Permission needed: - name: update_partner - scope: update_partner:execute
input InputUpdatePartner! Update partner request's inputs type.
updateCustomer GatewayResponse! Updates customer's information. Permission needed: - name: update_customer - scope: update_customer:execute
input InputUpdateCustomer! Update customer request's inputs type.
updateOneProduct GatewayResponse! Updates one product. Permission needed: - name: update_one_product - scope: update_one_product:execute
input InputsUpdateOneProduct! Update one product request's inputs type.
authenticate TokenResponse! Creates an authentication request using APPI SSO. No permission needed.
input InputAuth! Authentication request's inputs type.
refresh TokenResponse! Refreshes an existing authentication token using APPI SSO. Permission needed: - name: refresh_token - scope: refresh_token:execute
input InputRefresh! Refresh token request's inputs type.
grantPermissions TokenResponse! Grants permissions to an existing authentication token using APPI SSO. No permission needed.
input InputGrant! Grant permissions request's inputs type.
changePassword GatewayResponse! Changes password for a given user. Permission needed: - name: change_password - scope: change_password:execute
input InputChangePassword! Change password request's inputs type.
consumeForgotPassword GatewayResponse! Consume a forgot password request token. No permission needed.
input InputsUpdateForgotPassword! Consume forgot password request's inputs type.
deletePartnerDomainName DomainNameResponse! Deletes an existing domain name. Permission needed: - name: delete_domain_name - scope: delete_domain_name:execute
input InputsCreateOrDeleteDomainName! Delete domain name request's inputs type.
acceptKYC GatewayResponse! Accepts an existing KYC request. Permission needed: - name: accept_kyc - scope: accept_kyc:execute
input InputsAcceptKYC! Accept KYC request's inputs type.
acceptKYB GatewayResponse! Accepts an existing KYB request. Permission needed: - name: accept_kyb - scope: accept_kyb:execute
input InputsAcceptKYB! Accept KYB request's inputs type.
rejectKYC GatewayResponse! Rejects an existing KYC request. Permission needed: - name: reject_kyc - scope: reject_kyc:execute
input InputsRejectKYCoB! Reject KYC request's inputs type.
rejectKYB GatewayResponse! Rejects an existing KYB request. Permission needed: - name: reject_kyb - scope: reject_kyb:execute
input InputsRejectKYCoB! Reject KYB request's inputs type.
deleteOneDocument GatewayResponse! Deletes an existing document owned by an entity. Permission needed: - name: delete_one_document - scope: delete_one_document:execute
input InputsDeleteOneDocument! Delete one document request's inputs type.
deleteOneProduct GatewayResponse! Deletes an existing product owned by an entity. Permission needed: - name: delete_one_product - scope: delete_one_product:execute
input InputsDeleteOneProduct! Delete one product request's inputs type.

Objects

Document

Document type

Field Argument Type Description
id String! Document identifier
entityId String! Document's owner entity ID
bucketName String! Document's container name
bucketRegion String! Document's container region
mimeType String! Document's mime type
documentTypesId Int! Document's type identifier (see 'DocumentType')
updatedAt String! Document's modification date string
createdAt String! Document's creation date string
notes String Document's notes

DocumentType

Type of a document type

Field Argument Type Description
id Int! Document type identifier
name String! Document type name

DocumentsError

Documents request error type

Field Argument Type Description
code String! Documents request error code
message String! Documents request error short message
detail String Documents request error's detailed message

DocumentsResponse

Documents response type

Field Argument Type Description
error DocumentsError Documents response error
status Boolean! Documents response status. Should be true in case of success, otherwise false
data [DocumentQueryResult] Documents response data array Can contain one of the following types: Document | DocumentType | SignedRequest | StringResult

DomainName

Domain name’s model

Field Argument Type Description
id Int! Domain name unique identifier
entityId String! Domain name's unique entity identifier
hostname String! Domain name
createdAt String! Domain name's creation date string
updatedAt String! Domain name's modification date string

DomainNameError

CORS micro-service error type

Field Argument Type Description
code String! Error code
message String! Error short message
detail String Error's detailed message

DomainNameResponse

CORS micro-service response type

Field Argument Type Description
error DomainNameError Error object
status Boolean! Request status. Is true in case of success, otherwise false
data [DomainNameQueryResult!] Request data array Can contain one of the following types: DomainName

Entity

Entity model

Field Argument Type Description
id String! Entity unique identifier
entityTypeId String! Entity type unique identifier

EntityError

Entity micro-service error type

Field Argument Type Description
code String! Error code
message String! Error short message
detail String Error's detailed message

EntityResponse

Entity micro-service response type

Field Argument Type Description
error EntityError Error object
status Boolean! Request status. Is true in case of succees, otherwise false
data [EntityQueryResult!] Request response data array. Can contain: Entity | EntityType | Relation | RelationType

EntityType

Entity type model

Field Argument Type Description
id String! Entity type unique identifier
name String! Entity type name

GatewayError

API Error type

Field Argument Type Description
code String! Error code
message String! A short description of the error
detail String A detailed description about the error

GatewayResponse

Gateway response

Field Argument Type Description
error GatewayError Gateway response error
status Boolean! Gateway response status
data [QueryResult!] Gateway response data Can contain one of the following types: StringResult | DocumentType | KYCRequest | Product | KYBRequest | KYCAction

GetProfileResponse

GetProfile response

Field Argument Type Description
error GatewayError Gateway response error
status Boolean! Gateway response status
data [GetProfileQueryResult!] Gateway response data Can contain one of the following types: PhysicalPerson | MoralPerson

KYBCheck

Type to represents moral person’s KYB check

Field Argument Type Description
id Int!
featureName String!
compareWithKey String!
operationType Int!
comparedValue String
updatedAt String!
createdAt String!

KYBRequest

Type to represents moral person’s KYC request

Field Argument Type Description
id String!
ownerEntityId String!
mpEntityId String!
productCode String!
status Int!
createdAt String!
updatedAt String!

KYCAction

KYC Action type. Used to define which action to perform at the end of a KYC request when all checks are valid.

Field Argument Type Description
name String! KYC action's display name
description String! KYC action's description
id String! KYC action's unique ID. Useful at product creation.

KYCCheck

Type to represents physical person’s KYC check

Field Argument Type Description
id Int!
featureName String!
compareWithKey String!
operationType String!
comparedValue String
updatedAt String!
createdAt String!

KYCRequest

Type to represents physical person’s KYC request

Field Argument Type Description
id String!
ownerEntityId String!
ppEntityId String!
productCode String!
status Int!
createdAt String!
updatedAt String!

MoralPerson

Moral person model

Field Argument Type Description
id String! Moral person's identifier
entityId String! Moral person's entity ID
name String! Moral person's name
realm String Moral person's realm name
cityOfRegistration String Moral person's city of registration
countryOfRegistration String Moral person's country of registration (format: ISO 3166-1 alpha-2 code)
legalType String Moral person's legal type
siret String Moral person's SIRET number
tva String Moral person's VAT number
url String Moral person's website URI
tvaRate Float Moral person's tvaRate
streetNumber Int Moral person's streetNumber
streetNumberAttr String Moral person's streetNumberAttr
streetName String Moral person's streetName
city String Moral person's city
zipcode String Moral person's zipcode
county String Moral person's county
country String Moral person's country
email String Moral person's email
emailVerified String Moral person's emailVerified
mobilePhone String Moral person's mobilePhone
mobilePhoneVerified String Moral person's mobilePhoneVerified
creationAt String Moral person's creationAt
liquidationAt String Moral person's liquidationAt
ceoEntityId String Moral person's ceoEntityId
numberOfEmployees Int Moral person's numberOfEmployees
createdAt String Moral person's createdAt
updatedAt String Moral person's updatedAt

MoralPersonError

Moral person micro-service error type

Field Argument Type Description
code String! Error code
message String! Error short message
detail String Error's detailed message

MoralPersonResponse

Moral person micro-service response type

Field Argument Type Description
error MoralPersonError Error object
status Boolean! Request status. Is true in case of success, otherwise false
data [MoralPersonQueryResult!] Request data array Can contain one of the following types: MoralPerson | KYBCheck | MoralRelChecksRequests | KYBRequest

MoralRelChecksRequests

Type to represents relation between moral person’s KYC checks and request

Field Argument Type Description
id Int!
checkId Int!
productCode String!
updatedAt String!
createdAt String!

PhysicalPerson

Physical person’s model

Field Argument Type Description
id String! Physical person identifier
entityId String! Physical person's unique entity identifier
authLevel Int Authentication level (coming soon)
firstname String! Physical person's firstname
firstname2 String Physical person' second firstname
firstname3 String Physical person's third firstname
lastname String! Physical person's lastname
maidenName String Physical person's maiden name
gender Gender Physical person's gender
dateOfBirth String Physical person's date of birth
cityOfBirth String Physical person's city of birth
countryOfBirth String Physical person's country of birth (format: ISO 3166-1 alpha-2 code)
streetNumber String Physical person's residence street number
streetNumberAttr String Physical person's residence street number attribute
streetName String Physical person's residence street name
zipcode String Physical person's residence zipcode
city String Physical person's residence city name
county String Physical person's residence county
country String Physical person's residence country (format: ISO 3166-1 alpha-2 code)
mobilePhone String Physical person's mobile phone
mobilePhoneVerified String true if mobile phone number is verified, otherwise false
email String Physical person's email address
emailVerified String true if email address is verified, otherwise false
lon String Physical person's residence longitude
lat String Physical person's residence latitude
identityCheck Int! 0=Pending, 1=OK, 2=Potentital risks. Look at identityCheckMessage to have more information
identityCheckMessage String Describes the potential risks related to the person
pepCheck Int! 0=Pending, 1=Not polically exposed, 2=Potential risks. Look at pepCheckMessage to have more information
pepCheckMessage String Describes the potential risks related to the person
createdAt String Physical person's creation date string
updatedAt String Physical person's modification date string

PhysicalPersonError

Physical person micro-service error type

Field Argument Type Description
code String! Error code
message String! Error short message
detail String Error's detailed message

PhysicalPersonResponse

PhysicalPerson micro service response type

Field Argument Type Description
error PhysicalPersonError Error object
status Boolean! Request status. Is true in case of success, otherwise false
data [PhysicalPersonQueryResult!] Request data array Can contain one of the following types: PhysicalPerson | KYCCheck | PhysicalRelChecksRequests | KYCRequest

PhysicalRelChecksRequests

Type to represents relation between physical person’s KYC checks and request

Field Argument Type Description
id Int!
checkId Int!
productCode String!
updatedAt String!
createdAt String!

Product

Product model

Field Argument Type Description
id Int
ownerEntityId String
featureSetId String
price Float
tvaRate Float
name String
description String
code String
imageKey String
imgBucketName String
imgBucketRegion String
afterValidActionType String
automaticValidation Boolean

ProductsError

Products micro-service error type

Field Argument Type Description
code String! Error code
message String! Error short message
detail String Error's detailed message

ProductsResponse

Products micro-service response type

Field Argument Type Description
error ProductsError Error object
status Boolean! Request status. Is true in case of succees, otherwise false
data [ProductsQueryResult!] Response data array Can contain one of the following types: Product

Relation

Relationship between two entities model

Field Argument Type Description
id String! Relation unique identifier
relationTypeId String! Relation type unique identifier
entityAId String! First entity ID in relationship
entityBId String! Second entity ID in relationship

RelationType

Relation type model

Field Argument Type Description
id String! Relation type unique identifier
name String! Relation type name

SignedRequest

Signed request type

Field Argument Type Description
signedRequest String! Signed request options JSON object string
key String!

StringResult

Composite object representing a String

Field Argument Type Description
value String String value field

Token

Token type

Field Argument Type Description
access_token String! APPI SSO access token string
expires_in Int! APPI SSO access token expiration timestamp
refresh_expires_in Int! APPI SSO refresh token expiration timestamp
refresh_token String! APPI SSO refresh token string
token_type String! APPI SSO token type

TokenError

Keycloak authentication/refresh request error type

Field Argument Type Description
code String! Keycloak request error code
message String! Keycloak request error short message
detail String Keycloak request error's detailed message

TokenResponse

Keycloak authentication/refresh response type

Field Argument Type Description
error TokenError Keycloak error object
status Boolean! Keycloak request status. Is true when request succeeded, otherwise false
data [Token!] Keycloak request data array

UserDocument

User Document type

Field Argument Type Description
id String! Document identifier
entityId String! Document's owner entity ID
mimeType String! Document's mime type
documentTypesId Int! Document's type identifier (see 'DocumentType')
updatedAt String! Document's modification date string
createdAt String! Document's creation date string
notes String Document's notes

UserDocumentsResponse

UserDocuments response type

Field Argument Type Description
error GatewayError Gateway response error
status Boolean! Query response status
data [UserDocumentsQueryResult] User documents response data array Can contain one of the following types: UserDocument

Inputs

InputAuth

Inputs type to autenticate into APPI SSO

Field Type Description
email String User's email address
password String User's password
realm String Realm name in which the user wants to authenticate

InputChangePassword

Input type to change a user’s password.

Field Type Description
password String! User's current password
newPassword String! User's new password
newPasswordReplicat String! User's new password replicat

InputCreateDownload

Inputs type to create a signed request to download a document.

Field Type Description
id String! A document's unique ID

InputCreateUpload

Input type to create signed request to upload a document.

Field Type Description
documentTypesId Int! The document's type ID.
mimeType String! The document's mimeType
notes String Notes about de document. Limited to 2048 characters.

InputGetProfile

Input type to fetch the profile a given entity.

Field Type Description
entityId String! Physical person's entity ID

InputGrant

Inputs type to grant permissions to a token into APPI SSO

Field Type Description
clientId String! Client ID in which user authenticated.
permissions [InputGrantPermission]! Array of permissions to request.

InputGrantPermission

Inputs type to specify permissions in InputGrant.

Field Type Description
name String! Resource's name.
scopes [String]! Array of resource's scopes to access.

InputRefresh

Inputs type to refresh a token into APPI SSO

Field Type Description
refreshToken String User's refresh token
realm String Realm name in which the user wants to authenticate

InputUpdateCustomer

Input type to update an existing customer. A customer is a physical person which requested a KYC request for a given product.

Field Type Description
entityId String! Customer's entity ID
gender Gender Physical person's gender
lastname String Physical person's lastname
firstname String Physical person's firstname
firstname2 String Physical person's firstname 2
firstname3 String Physical person's firstname 3
dateOfBirth String Physical person's date of birth
cityOfBirth String Physical person's city of birth
countryOfBirth String Physical person's country of birth
email String Physical person's email
mobilePhone String Physical person's mobile phone
streetNumber String Physical person's street number
streetNumberAttr String Physical person's street number attribute
streetName String Physical person's street name
city String Physical person's city
zipcode String Physical person's zipcode
county String Physical person's county
country String Physical person's country
jobName String Physical person's job name
income String Physical person's income

InputUpdatePartner

Input type to update an existing partner. A partner is a moral person which requested a KYB request for a given product.

Field Type Description
entityId String! Partner's entity ID
name String Partner's name
cityOfRegistration String Partner's city of registration
countryOfRegistration String Partner's country of registration (format: ISO 3166-1 alpha-2 code)
legalType String Partner's legal type
siret String Partner's SIRET number
tva String Partner's VAT number
url String Partner's website URI
tvaRate Float Partner's tvaRate
streetNumber Int Partner's streetNumber
streetNumberAttr String Partner's streetNumberAttr
streetName String Partner's streetName
city String Partner's city
zipcode String Partner's zipcode
county String Partner's county
country String Partner's country
email String Partner's email
mobilePhone String Partner's mobilePhone
creationAt String Partner's creationAt
liquidationAt String Partner's liquidationAt
ceoEntityId String Partner's ceoEntityId
numberOfEmployees Int Partner's numberOfEmployees

InputsAcceptKYB

Input type to accept a KYB request.

Field Type Description
productCode String! KYB request's product code
kybRequestId String! KYB request's ID (format: UUID)

InputsAcceptKYC

Input type to accept a KYC request.

Field Type Description
productCode String! KYC request's product code
kycRequestId String! KYC request's ID (format: UUID)

InputsCreateForgotPassword

Input type to create a new forgot password request.

Field Type Description
email String! Entity's email address.

InputsCreateKYB

Inputs type to create a new KYB request.

Field Type Description
name String! Moral person's name
cityOfRegistration String Moral person's city of registration
countryOfRegistration String Moral person's country of registration (format: ISO 3166-1 alpha-2 code)
legalType String Moral person's legal type
siret String Moral person's SIRET number
tva String Moral person's VAT number
url String Moral person's website URI
tvaRate Float Moral person's tvaRate
streetNumber Int Moral person's streetNumber
streetNumberAttr String Moral person's streetNumberAttr
streetName String Moral person's streetName
city String Moral person's city
zipcode String Moral person's zipcode
county String Moral person's county
country String Moral person's country
email String! Moral person's email
emailVerified String Moral person's emailVerified
mobilePhone String! Moral person's mobilePhone
mobilePhoneVerified String Moral person's mobilePhoneVerified
creationAt String Moral person's creationAt
liquidationAt String Moral person's liquidationAt
ceoEntityId String Moral person's ceoEntityId
numberOfEmployees Int Moral person's numberOfEmployees
productCode String! Product code for registration

InputsCreateKYC

Inputs type to create a new KYC request.

Field Type Description
productCode String! Product code for registration
gender Gender! Physical person's gender
lastname String! Physical person's lastname
firstname String! Physical person's firstname
firstname2 String Physical person's firstname 2
firstname3 String Physical person's firstname 3
dateOfBirth String! Physical person's date of birth
cityOfBirth String Physical person's city of birth
countryOfBirth String Physical person's country of birth
email String! Physical person's email
mobilePhone String! Physical person's mobile phone
streetNumber String Physical person's street number
streetNumberAttr String Physical person's street number attribute
streetName String Physical person's street name
city String Physical person's city
zipcode String Physical person's zipcode
county String Physical person's county
country String Physical person's country
jobName String Physical person's job name
income String Physical person's income

InputsCreateOrDeleteDomainName

Input type to create or delete a domain name.

Field Type Description
hostname String! Domain name to add to APPI CORS configuration.

InputsCreateUploadForEntity

Input type to create a signed request for uploding a document given an entity ID.

Field Type Description
entityId String! An entity ID (format: UUID)
documentTypesId Int! The document's type ID.
mimeType String! The document's mimeType
notes String Notes about the document. Limited to 2048 characters

InputsDeleteOneDocument

Input type to delete one document given an entity ID.

Field Type Description
entityId String! An entity ID (format: UUID)
key String! A document ID (format: UUID)

InputsDeleteOneProduct

Input type to delete a product.

Field Type Description
id Int Product's ID

InputsGetAllDocuments

Input type to fetch all documents for a given entity.

Field Type Description
entityId String! An entity ID

InputsGetProductByCode

Input type to get a product given its code.

Field Type Description
productCode String! Product's code

InputsNewProduct

Input type to create a new product.

Field Type Description
price Float Product's price
tvaRate Float! Product's VAT rate
name String! Product's name
description String! Product's description
documentId String Product's picture document ID
afterValidActionType String! Action to perform when all checks are valid
automaticValidation Boolean If true, will perform product's action automatically when checks are valid
checks [String]! Includes all the checks to perform in KYC/B procedure.
isKYB Boolean! If true, it will create a product destinated for KYB procedure.

InputsRejectKYCoB

Input type to reject a KYC/KYB request.

Field Type Description
entityId String! An entity ID

InputsUpdateForgotPassword

Input type to consume a forgot password request.

Field Type Description
token String! Forgot password token.
newPassword String!
newPasswordReplicat String!

InputsUpdateOneProduct

Input type to update a product.

Field Type Description
id Int Product's ID
price Float Product's price
tvaRate Float Product's VAT rate
name String Product's name
description String Product's description
documentId String Product's picture document ID
afterValidActionType String Action to perform when all checks are valid
automaticValidation Boolean If true, will perform product's action automatically when checks are valid
checks [String]! Includes all the checks to perform in KYC/B procedure.
isKYB Boolean! If true, it will create a product destinated for KYB procedure. Has to be set if checks are defined.

Enums

Gender

Physical person’s gender model

Value Description
Male The male gender.
Female The female gender.
Other Others genders.

Scalars

Boolean

The Boolean scalar type represents true or false.

Float

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.