Pibisi API documentation version v1
https://api.pibisi.com/{version}
- version: required(v1)
Introduction
This document describes the elegant, easy-to-use REST API to communicate with Pibisi.
How to use it
First of all you will need to have a valid credential i.e. a JWT, which you can request at integrations@pibisi.com
Once you have a valid credential the main workflows are very easy.
MONITORING PERSONS
- Add a new customer to be managed by Pibisi using the endpoint [POST]/accounts/{account}/customers and expect in the response a unique identifier (UUID) for this customer.
- Repeat the step 1 with every customer in your database.
- Provide the cool team of Pibisi with your custom endpoint which we should call back when a new relevant piece of information is gathered about any of your customers managed by Pibisi.
- Call alternatively the endpoint [GET]]/accounts/{account}/customers/{customer} to get updated information about any of your customers.
QUERYING PERSONS
- Make a new query using the endpoint [POST]/accounts/{account}/subjects/find and expect in the response an list of possible matches ordered by similarity for the given input.
- You can ask for full information about every single match using their unique identifier (UUID) with [GET]/accounts/{account}/subjects/{subject}
- If the search did not return any matches, or none of them is a valid match, you can ask for a negative report using the endpoint [POST]/accounts/{account}/subjects/negative-report.
And that's it, you are now fully integrated with Pibisi!
Data types
In the following sections you can find a detailed explanation of the main datat types.
POI (Piece Of Information)
Object properties:
- type (string). Type of information.
- content (object). The actual piece of information. Depending on the type the content object will allow/require some specific fields.
Main POI types and content fields:
- person (string). Type of person. One of the following:
- P (natural person)
- E (legal person)
name.full (string). Full name, including first name, second name and surname.
nationality (string ISO 3166-1 alfa-3). Nationality.
- gender (char). One of the following:
- M (male)
- F (female)
- birth.date (string YYYY-MM-DD). Birth date.
- birth.place (object). Birth place. Fields:
- city (string). (Opt.) City
- country (string ISO 3166-1 alfa-3). (Opt.) Country.
- id.passport (object). Passport ID. Fields:
- country (string ISO 3166-1 alfa-3). Country issuing the document number.
- number (string). Passport ID number.
- id.national (object). National id. Fields:
- country (string ISO 3166-1 alfa-3). Country issuing the document number.
- number ((string)). Document number.
- function.public (object). Public charge. Fields:
- charge (string). Denomination of the public charge.
- organization (string). Organization holding the public charge.
- scope (string). Scope (Tipically the jurisdiction) of the public charge.
- country (string ISO 3166-1 alfa-3). Country.
- from (string YYYY-MM-DD). Date accessing the public charge.
- to (string YYYY-MM-DD). Date releasing the public charge.
- sanction (object). International sanction. Fields:
- types (set of strings). Sanction types. Can be several of:
- ARE (Arms embargo),
- FOA (Assets freeze),
- TRB (Travel ban),
- IBC (Ineligible to become a Bank Counterparty),
- EPD (Export privileges denial),
- EAR (Export administrations regulation),
- FMT (Forbid military assets trade),
- FFT (Forbid financial assets trade),
- FDT (Forbid dual use assets trade),
- FPT (Forbid prospecting assets trade).
- reason (text). Reason for getting sanctioned.
- issuer (string). Institution issuing the sanction.
- scope (string). Scope (Tipically the jurisdiction) of the public charge.
- country (string ISO 3166-1 alfa-3). Country.
- from (string YYYY-MM-DD). Date when the sanction started.
- to (string YYYY-MM-DD). Date when the sanction finished.
- types (set of strings). Sanction types. Can be several of:
- media (object). Adverse media. Fields:
- action (string). One of the following:
- Absolved
- Arrested
- Blacklisted
- Convicted
- Investigated
- Indicted
- Released
- Wanted
- action (string). One of the following:
- issue (string). Charges or topics. Can be several of the following:
- Corruption
- Fiscal fraud
- Fraud
- Money laundering
- Narcotraffic
- Terrorism
- issuer (string). Institution issuing the adverse information.
- from (string YYYY-MM-DD). Publishing date.
- url (string). Public url to the media content.
Endpoints
In the following sections you can find a detailed explanation of all endpoints. Enjoy!
/accounts/{account}
Scans a set of image files from a single document and returns the read info.
You can upload the front and rear images separately, but it is recommended to upload both using the same request to improve performance.
/accounts/{account}/alerts
Rejects and finishes the alert.
You reject an alert when it was based on a wrong person matching. When this occurs, our team will review a request to resolve this wrong match. Until then the person information will still appear merged.
/accounts/{account}/customers
Lists all added customers for the given company account
Registers a new person (customer) to follow up.
You can send multiple pieces of information (aka. pois), but at least the types 'person' (allowed values: 'P' for natural person, and 'E' for legal person) and 'name.full' must be included.
Following pieces of information are mandatory: person, name.full, id.national, birth.date, etc
Uploads a CSV file with new customers to be registered.
You can upload one single file each time, in CSV format and including the following fields separated by a semi colon (';'):
- Type: (P) Natural person / (E) Legal person,
- Full name,
- National Identity Number (DNI, NIF),
- Country issuing the document: coded with the norm ISO 3166-1 alfa-3, i.e. ESP for Spain, or DEU for Germany,
- Nationality: coded with the norm ISO 3166-1 alfa-3, i.e. ESP for Spain, or DEU for Germany,
- Birth date, formatted as AAAA-MM-DD
- Passport (OPTIONAL if national id already provided),
- Country issuing the passport (OPTIONAL if national id provided): coded with the norm ISO 3166-1 alfa-3, i.e. ESP for Spain, or DEU for Germany,
Returns all information (visible for the given company account) of a customer
Returns all alerts related to a given customer
Sets a new risk value
You can change the risk and add a comment. As response you will get the whole customer object.
Returns all uploaded documents related to a given customer
Returns all events (visible for the current account) related to a person
Removes a customer
You normally remove a customer when he/she is no longer your customer.
Notifies a wrong match on a given person.
This endpoint sends a request to split two different persons that were automatically merged by the algorithm. This normally happens when a customer and a person of risk have very similar names.
/accounts/{account}/invoices
/accounts/{account}/subjects
Makes a query to find possible matches.
You can query by multiple pieces of information (aka. pois), such as name.full or id.national.
Returns a PDF document describing a negative report (in case no results are found) for a given query of a generic subject
Returns all information (visible for the given company account) of a generic subject
Returns a PDF document describing a report for a given subject
/accounts/{account}/wallets
Uploads a CSV file with new operations to be registered.
You can upload one single file each time, in CSV format, including the following fields separated by a semi colon (';'):
- Customer Wallet Identifier,
- Transaction Identifier: It must be unique,
- Date of transaction, with format YYYY-MM-DDTH:mm:SS+00:00,
- Type of transaction. Any of: 'cash.incoming', 'cash.outgoing', 'transfer.incoming', 'transfer.outgoing', 'self.incoming', 'self.outgoing'
- Amount of transaction: in absolute value, without thousand separator and with the dot ('.') as decimal separator,
- Currency of transaction according to the norm ISO 4217,
- Linked wallet identifier, if any. If not, leave empty.
- Linked wallet IBAN, if any. If not, leave empty.
Sets a new risk value
You can change the risk and add a comment. As response you will get the whole wallet object.