{ "swagger": "2.0", "x-asee-visibility": "public", "info": { "version": "v1", "title": "Party API", "description": "Party API gives you access to individuals and organizations registered with the financial institution whether they are customers or just prospects or related parties.\nAlso you can get all party related information like identification documents, contact points and relationships.\n", "contact": { "name": "Mojsic Sasa", "url": "https://bankapi.net/docs/public/party-getstarted.html", "email": "mojsic@asseco-see.rs" } }, "host": "bankapi.net", "basePath": "/v1/party", "schemes": [ "https", "http" ], "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ { "name": "Parties", "description": "Working with individuals and organizations" }, { "name": "Individuals", "description": "Working with Individuals" }, { "name": "Organizations", "description": "Working with Organizations" }, { "name": "Contact points", "description": "Working with contact points" }, { "name": "Classifications", "description": "Working with classifications" } ], "paths": { "/parties": { "get": { "summary": "List parties matching filter criteria", "description": "Returns list of individuals and organizations that match filter criteria", "tags": [ "Parties" ], "x-asee-tags": [ "Pageable", "Shapeable", "Sortable" ], "operationId": "Parties_GetList", "parameters": [ { "name": "kind", "in": "query", "description": "Party kind. If omitted or not present both individuals and organizations are returned.\nFor a list of possible values see [party-kinds](party-classifications.html#party-kinds) enumeration.\n", "type": "string", "enum": [ "individual", "organization" ] }, { "name": "statuses", "in": "query", "description": "Customer statuses of interest to filter parties. If omitted or not present all customer statuses are considered interesting.\nFor a list of possible values see [customer-statuses](party-classifications.html#customer-statuses) enumeration.\n", "type": "array", "items": { "type": "string", "enum": [ "potential", "prospective", "active", "dormant", "former", "declined", "rejected" ] }, "collectionFormat": "csv" }, { "name": "id-number", "description": "External identity number taken from original or certified documents. Must be used in conjuntion with `id-kind` parameter.", "in": "query", "type": "string" }, { "name": "id-kind", "in": "query", "description": "'Kind of identification number. Common values are `personal-id-number`, `passport-number`, `registration-number`'\nFor a list of possible values see [identification-kinds](party-classifications.html#identification-kinds) enumeration.\n", "type": "string", "enum": [ "registration-number", "tax-id-number", "personal-id-number", "identity-card-number", "passport-number", "driver-license-number", "social-security-number" ] }, { "name": "individual-status", "in": "query", "description": "Lifecycle of individual. For Individual can be living or deceased\n", "type": "string", "enum": [ "living", "deceased" ] }, { "$ref": "#/parameters/name-param" }, { "$ref": "#/parameters/telecommunication-number-param" }, { "$ref": "#/parameters/email-param" }, { "$ref": "#/parameters/facebook-account-param" }, { "$ref": "#/parameters/page-param" }, { "$ref": "#/parameters/page-size-param" }, { "$ref": "#/parameters/sort-by-param" }, { "$ref": "#/parameters/sort-order-param" }, { "$ref": "#/parameters/include-param" }, { "$ref": "#/parameters/trim-param" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/paged-party-list" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/sync": { "get": { "summary": "List parties for synchronization", "description": "Returns list of individuals and organizations that are changed after timestamp token supplied", "tags": [ "Parties" ], "x-asee-tags": [ "Sync" ], "operationId": "Parties_Sync", "parameters": [ { "$ref": "#/parameters/sync-timestamp-param" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/party-list" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/search": { "get": { "summary": "Search for individuals and organizations across textual fields", "description": "Returns a list of parties that match filters and search terms accross textual fields such as name, address. Assumed sort is by relevance and then by recency. For addresses tagged with geographic coordinates radius filter can be applied", "tags": [ "Parties" ], "x-asee-tags": [ "Searchable", "Geospatial", "Pageable", "Shapeable" ], "operationId": "Parties_Search", "parameters": [ { "description": "Party kind\nFor a list of possible values see [party-kinds](party-classifications.html#party-kinds) enumeration.\n", "in": "query", "name": "kind", "required": "false", "type": "string", "enum": [ "individual", "organization" ] }, { "$ref": "#/parameters/search-query-param" }, { "$ref": "#/parameters/search-fields-param" }, { "$ref": "#/parameters/search-mode-param" }, { "$ref": "#/parameters/latitude-param" }, { "$ref": "#/parameters/longitude-param" }, { "$ref": "#/parameters/radius-param" }, { "$ref": "#/parameters/page-param" }, { "$ref": "#/parameters/page-size-param" }, { "$ref": "#/parameters/include-param" }, { "$ref": "#/parameters/trim-param" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/paged-party-list" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/{party-number}": { "get": { "summary": "Get details of specific party", "tags": [ "Parties" ], "x-asee-tags": [ "Shapeable" ], "operationId": "Parties_Get", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number.", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "$ref": "#/parameters/include-param" }, { "$ref": "#/parameters/trim-param" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/party" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/{party-number}/relationships": { "parameters": [ { "description": "Unique identifier of the party. Also known as customer number.", "in": "path", "name": "party-number", "required": "true", "type": "string" } ], "get": { "summary": "List relationships of specific party", "tags": [ "Parties" ], "operationId": "Parties_Relationship_GetList", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/party-relationship" } } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/{party-number}/id-documents": { "parameters": [ { "description": "Unique identifier of the party. Also known as customer number.", "in": "path", "name": "party-number", "required": "true", "type": "string" } ], "get": { "summary": "List id documents of specific party", "tags": [ "Parties" ], "operationId": "Parties_IdDocuments_GetList", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/identification-document" } } }, "default": { "$ref": "#/responses/default-error-response" } } }, "post": { "summary": "Register new identification document of specific party", "tags": [ "Parties" ], "operationId": "Parties_RegisterIdentificationDocument", "parameters": [ { "description": "Command contains identification document", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/register-identification-document-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/{party-number}/servicing-info": { "patch": { "summary": "Modify servicing info of the party", "tags": [ "Parties" ], "operationId": "Party_ModifyServicingInfo", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command contains details of servicing info", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/modify-party-servicing-info-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/{party-number}/contact-preference": { "patch": { "summary": "Modify contact preference of specific party", "tags": [ "Parties" ], "operationId": "Parties_ContactPreference_Modify", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number.", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command contains contact preferences", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/modify-contact-preference-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/{party-number}/contact-points": { "parameters": [ { "description": "Unique identifier of the party. Also known as customer number.", "in": "path", "name": "party-number", "required": "true", "type": "string" } ], "get": { "summary": "List contact points of specific party", "tags": [ "Contact points" ], "operationId": "Parties_GetContactPoints", "parameters": [ { "$ref": "#/parameters/method-param" }, { "$ref": "#/parameters/usage-param" } ], "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/contact-point" } } }, "default": { "$ref": "#/responses/default-error-response" } } }, "post": { "summary": "Register new contact point for specific party", "tags": [ "Contact points" ], "operationId": "Parties_RegisterContactPoints", "parameters": [ { "description": "Command contains details of individual to be registered", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/register-contact-point-command" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/resource-created-result" }, "headers": { "Location": { "type": "string", "description": "The URL of the newly registered contact point" } } }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/{party-number}/contact-points/{id}": { "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Unique identifier of the contact point", "in": "path", "name": "id", "required": "true", "type": "string" } ], "patch": { "summary": "Modify specific contact point", "tags": [ "Contact points" ], "operationId": "Parties_ModifyContactPoint", "parameters": [ { "description": "Command contains details of individual to be registered", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/modify-contact-point-command" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/resource-created-result" }, "headers": { "Location": { "type": "string", "description": "The URL of the registered identification document" } } }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/individuals": { "post": { "summary": "Register individual details", "description": "Registers new individual according to specified registration profile that determines which fields are mandatory.\n> Mandatory fields for `contact` registration profile:\n\n- `given-name`\n- `surname`\n- `mobile-phone`\n- `email-address`\n\n> Mandatory fields for `prospect` registration profile:\n\n- `given-name`\n- `surname`\n- `mobile-phone`\n- `email-address`\n- `contact-address`\n- `id-number`\n\n> Mandatory fields for `customer` registration profile:\n\n- `given-name`\n- `surname`\n- `contact-address`\n- `birth-place`\n- `birth-country`\n- `country-of-residence`\n- `legal-address`\n- `delivery-address`\n- `employment-status`\n- `id-number`\n", "tags": [ "Individuals" ], "operationId": "Individuals_Register", "parameters": [ { "description": "Command contains details of individual to be registered", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/register-individual-command" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/resource-created-result" }, "headers": { "Location": { "type": "string", "description": "The URL of the newly registered individual" } } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/individuals/{party-number}/corrections": { "patch": { "summary": "Correction of individual registration", "tags": [ "Individuals" ], "operationId": "Individuals_ApplyCorrections", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "The command that contains detail about corrections that should be merged with original data", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/apply-individual-corrections-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/individuals/{party-number}/surname": { "patch": { "summary": "Change individual surname", "tags": [ "Individuals" ], "operationId": "Individuals_ChangeSurname", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command that contains details about individual surname", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/change-individual-surname-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/individuals/{party-number}/employmentprofile": { "patch": { "summary": "Modify employment profile", "tags": [ "Individuals" ], "operationId": "Individuals_ModifyEmploymentProfile", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command that contains details about individual employment profile", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/modify-individual-employment-profile-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/individuals/{party-number}/residentialprofile": { "patch": { "summary": "Modify residential profile", "tags": [ "Individuals" ], "operationId": "Individuals_ModifyResidentialProfile", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command that contains details about individual residential profile", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/modify-individual-residential-profile-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/individuals/{party-number}/death-report": { "post": { "summary": "Add individual death date", "tags": [ "Individuals" ], "operationId": "Individuals_ReportDeath", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command that contains details about individual date of death", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/report-death-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/organizations": { "post": { "summary": "Register organization", "description": "Registers new organization according to specified registration profile that determines which fields are mandatory.\n> Mandatory fields for `contact` registration profile:\n\n- `commercial-name`\n- `phone`\n\n> Additional mandatory fields for `prospect` registration profile:\n\n- `contact-address`\n- `id-number`\n- `registered-name`\n\n> Additional mandatory fields for `customer` registration profile:\n\n- `organization-purpose`\n- `legal-address`\n- `delivery-address`\n- `established`\n", "tags": [ "Organizations" ], "operationId": "Organizations_Register", "parameters": [ { "description": "Command contains details of organization to be registered", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/register-organization-command" } } ], "responses": { "201": { "description": "Created", "schema": { "$ref": "#/definitions/resource-created-result" }, "headers": { "Location": { "type": "string", "description": "The URL of the registered organization" } } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/organizations/{party-number}/name": { "patch": { "summary": "Modify organization name and legal structure", "tags": [ "Organizations" ], "operationId": "Organization_ModifyBusinessName", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command contains details of registered or comercial name and legal structure", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/modify-organization-name-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/organizations/{party-number}/ownership": { "patch": { "summary": "Change organization ownership", "tags": [ "Organizations" ], "operationId": "Organization_ChangeOwnership", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command contains details of ownership info", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/change-organization-ownership-info-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/organizations/{party-number}/size": { "patch": { "summary": "Change organization size", "tags": [ "Organizations" ], "operationId": "Organization_ChangeSize", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command contains details of company size", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/change-organization-size-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/parties/organizations/{party-number}/profile": { "patch": { "summary": "Modify organization profile", "tags": [ "Organizations" ], "operationId": "Organization_ModifyProfile", "parameters": [ { "description": "Unique identifier of the party. Also known as customer number", "in": "path", "name": "party-number", "required": "true", "type": "string" }, { "description": "Command contains details of organization profile", "in": "body", "name": "cmd", "required": "true", "schema": { "$ref": "#/definitions/modify-organization-profile-command" } } ], "responses": { "204": { "description": "No content" }, "400": { "description": "Your request was well not well constructed. Look into validation error in response for more details.\n", "schema": { "$ref": "#/definitions/validation-problem" } }, "440": { "description": "Your request was well constructed but it does not comply with business policy. Consider the following possible problems and look into response for more details:\n", "schema": { "$ref": "#/definitions/business-problem" } }, "default": { "$ref": "#/responses/default-error-response" } } } }, "/classifications": { "get": { "summary": "List all classification schemas used by the API", "description": "Some fields and parameters have been restricted to a list of allowed lookup values maintained by the bank. This method lists all schemas used in this API.", "operationId": "Classifications_GetList", "responses": { "200": { "description": "Success", "schema": { "$ref": "#/definitions/classification-list" } }, "default": { "$ref": "#/responses/default-error-response" } }, "tags": [ "Classifications" ] } }, "/classifications/{schema-id}": { "get": { "summary": "List values allowed by given classification schema.", "description": "Returns all classification values for chosen classification.", "operationId": "Classifications_Get", "parameters": [ { "$ref": "#/parameters/schema-id-param" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/classification" } }, "default": { "$ref": "#/responses/default-error-response" } }, "tags": [ "Classifications" ] } }, "/classifications/sync": { "get": { "summary": "List of classifications for synchronization", "description": "Returns list of classifications that are added or changed after timestamp token supplied", "tags": [ "Classifications" ], "x-asee-tags": [ "Sync" ], "operationId": "Classifications_Sync", "parameters": [ { "$ref": "#/parameters/sync-timestamp-param" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/classification-list" } }, "default": { "$ref": "#/responses/default-error-response" } } } } }, "responses": { "default-error-response": { "description": "Besides specific status codes above, other standard http [status codes](http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) can be returned for each request. To learn more see general guidance on [error handling](common-getstarted.html#error-handling)" } }, "definitions": { "paged-party-list": { "description": "List of parties", "type": "object", "x-asee-trimmed": [ "parties.contact-points", "parties.relationships", "parties.id-documents" ], "allOf": [ { "$ref": "#/definitions/paged-list" } ], "properties": { "parties": { "description": "Collection of parties", "type": "array", "items": { "$ref": "#/definitions/party" } } }, "example": { "total-count": "1250", "page-size": "50", "page-number": "1", "total-pages": "25", "parties": [ { "kind": "individual", "party-number": "ID001", "contact-name": "John Doe", "contact-preference": { "preferred-language": "sr-Latn-RS", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" }, "primary-id": { "number": "TX12345678", "kind": "tax-id-number" }, "country-of-residence": "RS", "profile-image-url": "http://www.mybank.rs/docs?id=99911115522345560151103", "customer": { "kind": "domestic-resident", "status": "active", "segment": "professional" }, "contact-points": [ { "id": "CP110", "method": "email", "usage": "default", "address": { "kind": "electronic-address", "formatted": "test.user@mybank.com" }, "contact-preference": { "preferred-language": "en-US", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" } }, { "id": "CP111", "method": "postal", "usage": "home", "address": { "kind": "postal-address", "formatted": "1389 Sunset blvd. Belgrade" }, "contact-preference": { "preferred-language": "ENG", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" } } ], "relationships": [ { "kind": "marriage", "role": "spouse", "to-party": { "number": "PAR001", "name": "Linda Doe", "kind": "individual" } }, { "kind": "family", "role": "child", "to-party": { "number": "PAR002", "name": "John jr.", "kind": "individual" } } ] }, { "kind": "individual", "party-number": "ID002", "contact-name": "Linda Doe", "contact-preference": { "preferred-language": "en-US", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" }, "primary-id": { "number": "TX12300000", "kind": "tax-id-number" }, "country-of-residence": "RS", "profile-image-url": "http://www.mybank.rs/docs?id=999111155444445560151103", "customer": { "kind": "domestic-resident", "status": "active", "segment": "professional" }, "contact-points": [ { "id": "CP113", "method": "email", "usage": "default", "address": { "kind": "electronic-address", "formatted": "test.user2@mybank.com" }, "contact-preference": { "preferred-language": "ENG", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" } }, { "id": "CP114", "method": "postal", "usage": "home", "address": { "kind": "postal-address", "formatted": "1389 Sunset blvd. Belgrade" }, "contact-preference": { "preferred-language": "ENG", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" } } ], "relationships": [ { "kind": "marriage", "role": "spouse", "to-party": { "number": "PAR001", "name": "John Doe", "kind": "individual" } }, { "kind": "family", "role": "child", "to-party": { "number": "PAR002", "name": "John Jr.", "kind": "individual" } } ] } ] } }, "party": { "description": "Command with details for party registration", "type": "object", "required": [ "kind" ], "discriminator": "kind", "properties": { "kind": { "type": "string", "enum": [ "individual", "organization" ], "description": "For a list of possible values see [party-kinds](party-classifications.html#party-kinds) enumeration.\n" }, "party-number": { "description": "Unique identifier of the party. Also known as customer number.", "type": "string" }, "contact-name": { "description": "Primary current name of party used by bank for contact purposes. For organizations it is usually same as organization's legal name and for individuals same as person's full name.", "type": "string" }, "contact-preference": { "$ref": "#/definitions/contact-preference" }, "primary-id": { "$ref": "#/definitions/identification-number" }, "country-of-residence": { "description": "Party's country of residence", "type": "string", "format": "ISO 3166-1 alpha-2", "minLength": "2", "maxLength": "2" }, "profile-image-url": { "type": "string", "format": "url", "description": "URL of profile image kept in contnent repository" }, "customer": { "$ref": "#/definitions/customer" }, "contact-points": { "type": "array", "items": { "$ref": "#/definitions/contact-point" } }, "relationships": { "type": "array", "items": { "$ref": "#/definitions/party-relationship" } }, "servicing-info": { "$ref": "#/definitions/servicing-info" }, "origination-info": { "$ref": "#/definitions/origination-info" } }, "example": { "kind": "individual", "party-number": "ID001", "contact-name": "John Doe", "contact-preference": [ { "preferred-language": "en-US", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" }, { "preferred-language": "sr-Latn-RS", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" } ], "primary-id": { "number": "TX12345678", "kind": "tax-id-number" }, "country-of-residence": "RS", "profile-image-url": "http://www.mybank.rs/docs?id=99911115522345560151103", "customer": { "kind": "domestic-resident", "status": "active", "segment": "professional" }, "contact-points": [ { "id": "CP110", "method": "email", "usage": "default", "address": { "kind": "electronic-address", "formatted": "test.user@mybank.com" }, "contact-preference": { "preferred-language": "ENG", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" } }, { "id": "CP111", "method": "postal", "usage": "home", "address": { "kind": "postal-address", "formatted": "1389 Sunset blvd. Belgrade" }, "contact-preference": { "preferred-language": "ENG", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" } } ], "relationships": [ { "kind": "marriage", "role": "spouse", "to-party": { "number": "PAR001", "name": "Linda", "kind": "individual" } }, { "kind": "family", "role": "child", "to-party": { "number": "PAR002", "name": "John", "kind": "individual" } } ] } }, "organization": { "description": "Organization", "type": "object", "allOf": [ { "$ref": "#/definitions/party" } ], "properties": { "registered-name": { "description": "Legal name under which oganization is established", "type": "string" }, "commercial-name": { "description": "The primary commercial name of an organization, by which it is most commonly recognized", "type": "string" }, "legal-structure": { "type": "string", "x-asee-classification": "legal-structure", "description": "Classifies organizations based on their legal form or structure. For example, `public-organization`, `partnership`, `sole-proprietorship`, `limited-company`.such as trust, company, charity, or estate. For a complete list of possible values see [legal-structure](party-classifications.html#legal-structure)" }, "organization-purpose": { "type": "string", "x-asee-classification": "organization-purpose", "description": "Distinguishes between organizations according to their purpose or format; for example, `association` and `public-service`. For a complete list of possible values see [organization-purpose](party-classifications.html#organization-purpose)" }, "is-sole-trader": { "type": "boolean", "description": "A flag indicating that this organization represents the business aspects of an individual operating as a sole trader. The relevant Individual can be traced through the party relationship." }, "established": { "description": "Date on which organization was formally established", "type": "string", "format": "date" }, "industry-sector": { "type": "string", "x-asee-classification": "industry-sectors", "description": "Classifies organizations based on their industry sectors. For example, `distribution of electricity`, `news agency activities`, `activities related to information technology`, etc. For a complete list of possible values see [industry-sectors](party-classifications.html#industry-sectors)" }, "ownership-info": { "$ref": "#/definitions/ownership-info" }, "size": { "type": "string", "x-asee-classification": "organization-size", "description": "Classsifies organizations based on their size according to the regulators rules. For a complete list of possible values see [organization-size](party-classifications.html#organization-size)" }, "file-kind": { "type": "string", "x-asee-classification": "organization-file-kinds", "description": "Internal classification of organizations for banks internal filing purpose. For example, `Micro company`,`Bank`,`Corporate` etc. For complete list of possible values see [organization-file-kinds](party-classifications.html#organization-file-kinds)" } } }, "individual": { "description": "Individual", "type": "object", "allOf": [ { "$ref": "#/definitions/party" } ], "properties": { "full-name": { "description": "Human readable name of the object by which it is best recognized.", "type": "string" }, "given-name": { "description": "Name given to individual at birth usually by parents. For example *John* or *Jane*", "maxLength": "40", "minLength": "2", "type": "string" }, "parent-name": { "description": "Name of one parent. For example *John* or *Jane*", "maxLength": "40", "minLength": "2", "type": "string" }, "surname": { "description": "Part of an individual's name which belongs to the family the individual is a part of. For example *Smith*, *Mueller*", "maxLength": "40", "minLength": "2", "type": "string" }, "maiden-name": { "description": "Individual's surname as it existed prior to any change of surname resulting from any marriage. In many countries, legal and/or social and cultural conventions dictate or suggest that one spouse assume the surname of the other spouse upon their marriage", "maxLength": "40", "minLength": "2", "type": "string" }, "gender": { "description": "Gender is the characteristic pertaining to, and differentiating between, masculinity and femininity", "type": "string", "enum": [ "female", "male", "unknown" ] }, "birth-date": { "description": "Person's date of birth", "format": "date", "type": "string" }, "place-of-birth": { "description": "Person's place of birth", "type": "string" }, "country-of-birth": { "description": "Person's country of birth", "type": "string", "format": "ISO 3166-1 alpha-2", "minLength": "2", "maxLength": "2" }, "individual-status": { "description": "lifecycle of individual. Value Null will be treated like value living.", "type": "string", "enum": [ "living", "deceased" ] }, "death-date": { "description": "Person's date of death", "format": "date", "type": "string" }, "death-notice-date": { "description": "Date from which bank have a notice of death of person", "format": "date", "type": "string" }, "citizenship": { "description": "Country of citizenship entered from original or certified document", "type": "string", "format": "ISO 3166-1 alpha-2", "minLength": "2", "maxLength": "2" }, "x-foreign-person": { "type": "boolean", "description": "A non standard field that indicates that this is foreign person." }, "x-is-resident": { "type": "boolean", "description": "A non standard field that indicates weather individual is resident or not. This flag can be true for both domestic and foreign persons. Field is specific to PUB implementation." }, "legal-competency": { "description": "'Enumeration that distinguishes whether individual has any legal limitation on their ability to transact business with bank'\nFor a list of possible values see [legal-competencies](party-classifications.html#legal-competencies) enumeration.\n", "type": "string", "enum": [ "incompetent-minor", "competent-adult" ] }, "marital-status": { "description": "Marital status\nFor a list of possible values see [marital-statuses](party-classifications.html#marital-statuses) enumeration.\n", "enum": [ "divorced", "common-law-marriage", "married", "single", "widowed" ], "type": "string" }, "employment-status": { "$ref": "#/definitions/employment-status" }, "employment": { "$ref": "#/definitions/employment" }, "id-documents": { "description": "List of identification documents", "items": { "$ref": "#/definitions/identification-document" }, "type": "array" } } }, "customer": { "description": "Details on party as a bank's customer", "type": "object", "properties": { "kind": { "type": "string", "x-asee-classification": "customer-taxonomy", "description": "Classifies customers according to taxonomy defined by bank. For a complete list of possible values see [customer-taxonomies](party-classifications.html#customer-taxonomies) classification" }, "status": { "description": " Enumer identifies the state of a customer within a lifecycle model. For a list of values see in [customer-statuses](party-classifications.html#customer-statuses) enumeration", "x-asee-enumeration": "customer-statuses", "type": "string", "enum": [ "potential", "prospective", "active", "dormant", "former", "declined", "rejected" ] }, "segment": { "type": "string", "x-asee-classification": "customer-segment", "description": "Classifies the customers into segments according to bank requirements. For a complete list of possible values see [customer-segments](party-classifications.html#customer-segments) classification" } } }, "party-relationship": { "type": "object", "description": "Relationship between two parties - individuals and organizations", "properties": { "kind": { "type": "string", "enum": [ "marriage", "family", "ownership", "representation", "employment" ], "description": "For a list of possible values see [party-relationship-kinds](party-classifications.html#party-relationship-kinds) enumeration.\n" }, "role": { "type": "string", "enum": [ "spouse", "child", "parent", "sibling", "cousin", "owner", "owned", "representative", "represented", "employer", "employee" ], "x-asee-enumeration": "party-relationship-roles", "description": "For a list of possible values see [party-relationship-roles](party-classifications.html#party-relationship-roles) enumeration.\n" }, "to-party": { "type": "object", "properties": { "number": { "type": "string", "description": "Unique identifier of other party in a relationship" }, "name": { "type": "string", "description": "Name of other party in a relationship" }, "kind": { "type": "string", "enum": [ "individual", "organization" ], "x-asee-enumeration": "party-kinds", "description": "For a list of possible values see [party-kinds](party-classifications.html#party-kinds) enumeration.\n" } } } } }, "employment": { "description": "Employment information for individual", "properties": { "employer": { "description": "Employer name", "type": "string" }, "employment-date": { "description": "Date of employment at current employer", "format": "date-time", "type": "string" }, "employment-position": { "description": "Employment position held by individual", "type": "string" } }, "type": "object" }, "contact-preference": { "description": "General contact preference", "properties": { "preferred-language": { "x-asee-compliance": "This should be related to some classification.", "description": "Preferred communication language", "type": "string" }, "opt-ins": { "description": "Purposes for which party allowes to be contacted. For a complete list of possible values see [contact-purposes](party-classifications.html#contact-purposes) classification", "items": { "type": "string" }, "type": "array", "x-asee-classification": "contact-purposes" }, "opt-outs": { "description": "Purposes for which party does not allow to be contacted. For a complete list of possible values see [contact-purposes](party-classifications.html#contact-purposes) classification", "items": { "type": "string" }, "type": "array", "x-asee-classification": "contact-purposes" } }, "type": "object" }, "contact-point": { "description": "Point of contact for party dependendent on the different means of communication delivery such as postal, telephony, electronic delivery", "properties": { "id": { "description": "Unique identifier of this contact point", "type": "string", "readOnly": "true" }, "method": { "description": "Enumeration that explains method od contact. Common values are `postal`, `gsm` and `email`\nFor a list of possible values see [contact-point-methods](party-classifications.html#contact-point-methods) enumeration.\n", "type": "string", "enum": [ "postal", "pstn", "gsm", "fax", "facebook", "email", "web" ] }, "usage": { "description": "'Enumeration that explains context of usage of the contact. Commonly used values are `home`, `work`, `business` and `default` which has a special meaning of being a primary contact'\nFor a list of possible values see [contact-point-usages](party-classifications.html#contact-point-usages) enumeration.\n", "type": "string", "default": "default", "enum": [ "default", "home", "business", "work", "seasonal", "assistant", "delivery", "legal" ] }, "address": { "$ref": "#/definitions/address" }, "contact-preference": { "$ref": "#/definitions/contact-preference" } }, "type": "object", "example": { "id": "CP110", "method": "email", "usage": "default", "address": { "kind": "electronic-address", "formatted": "test.user@mybank.com" }, "contact-preference": { "preferred-language": "ENG", "opt-ins": "billing,relationship-management", "opt-outs": "advertising,marketing" } } }, "address": { "description": "Structured address for communication. Used as a common base for postal-address, phone-number and email-address", "type": "object", "discriminator": "kind", "required": [ "kind", "formatted" ], "properties": { "kind": { "description": "Kind of structured address. Allowed values are `postal-address`, `telecommunication-number` and `email-address`\nFor a list of possible values see [address-kinds](party-classifications.html#address-kinds) enumeration.\n", "type": "string", "enum": [ "postal-address", "telecommunication-number", "electronic-address" ] }, "formatted": { "description": "Formatted address text", "type": "string" } } }, "electronic-address": { "description": "Electronic address such as email, url or faebook account", "type": "object", "allOf": [ { "$ref": "#/definitions/address" } ], "properties": { "is-primary": { "description": "Defines wheather this Telecommunication number is primary or not", "type": "boolean" } } }, "postal-address": { "description": "Postal delivery address.", "allOf": [ { "$ref": "#/definitions/address" } ], "properties": { "street-code": { "description": "Street code if codebook is used for streets", "type": "string" }, "street": { "description": "Street name", "type": "string" }, "street-number": { "description": "Street number", "type": "string" }, "postal-code": { "description": "Postal code", "type": "string" }, "locality-code": { "description": "Populated place code if codebook is used", "type": "string" }, "locality": { "description": "Populated place such as city, town or village", "type": "string" }, "country": { "description": "ISO 3166-1 alpha-2 country code", "type": "string", "maxLength": "2", "minLength": "2" }, "apartment": { "description": "Apartment number required for precise postal delivery", "type": "string" }, "floor": { "description": "Floor number required for precise postal delivery", "type": "string" }, "address-code": { "description": "Address code assigned for precise postal delivery", "type": "string" }, "coordinates": { "$ref": "#/definitions/coordinates" } }, "type": "object" }, "coordinates": { "type": "object", "required": [ "lat", "long" ], "description": "The geographic coordinates of a location", "properties": { "lat": { "description": "The latitude of a location. For example 37.42242", "format": "double", "type": "number" }, "long": { "description": "The longitude of a location. For example -122.08585", "format": "double", "type": "number" } } }, "telecommunication-number": { "description": "Telecommunication number", "allOf": [ { "$ref": "#/definitions/address" } ], "properties": { "number": { "description": "Local number", "maxLength": "8", "minLength": "5", "type": "string" }, "area-code": { "description": "AreaCode number", "maxLength": "4", "minLength": "1", "type": "string" }, "country-code": { "description": "CountryCode number", "maxLength": "3", "minLength": "1", "type": "string" }, "extension": { "description": "Extension number", "maxLength": "6", "minLength": "2", "type": "string" }, "formatted": { "description": "Formatted telecomunication number.", "maxLength": "21", "minLength": "2", "type": "string" }, "is-primary": { "description": "Defines wheather this Telecommunication number is primary or not", "type": "boolean" } }, "type": "object" }, "identification-number": { "description": "Acceptable external identity number taken from original or certified documents that contain identification details of individial or organization such as full name, date of birth, registered name, date of establishment etc.", "properties": { "number": { "description": "Identification number", "type": "string" }, "kind": { "description": "'Kind of identification number. Common values are `personal-id-number`, `passport-number`, `registration-number` '\nFor a list of possible values see [identification-kinds](party-classifications.html#identification-kinds) enumeration.\n", "type": "string", "enum": [ "registration-number", "tax-id-number", "personal-id-number", "identity-card-number", "passport-number", "driver-license-number", "social-security-number" ] } }, "type": "object", "required": [ "number", "kind" ] }, "identification-document": { "description": "Document that was used to identify individual", "properties": { "kind": { "description": "Enumeration that distinguishes between different kinds of identification documents\nFor a list of possible values see [identification-document-kinds](party-classifications.html#identification-document-kinds) enumeration.\n", "type": "string", "enum": [ "passport", "national-id-card", "drivers-license", "alien-id-card", "birth-certficate" ] }, "serial-number": { "description": "Registered serial number of identification document", "type": "string" }, "issued": { "description": "Date when document was issued", "format": "date", "type": "string" }, "valid-until": { "description": "Date untill document is valid", "format": "date", "type": "string" }, "status": { "description": "Status of document\nFor a list of possible values see [identification-document-statuses](party-classifications.html#identification-document-statuses) enumeration.\n", "type": "string", "enum": [ "active", "annulled", "expired" ] }, "place-of-issue-code": { "description": "Place of issue code if codebook is used for places", "type": "string" }, "place-of-issue": { "description": "Reference to the place where document is issued", "maxLength": "40", "minLength": "2", "type": "string" }, "issuing-authority": { "description": "The authority that issued the document", "maxLength": "100", "minLength": "2", "type": "string" }, "content-url": { "description": "URL of scanned document image kept in DMS repository", "type": "string", "format": "url" } }, "type": "object", "example": { "kind": "national-id-card", "serial-number": "010011002345", "issued": "2016-01-01", "valid-until": "2026-01-01", "status": "active", "place-of-issue": "Beograd", "issuing-authority": "MUP Novi Beograd", "content-url": "http://www.mybank.rs/docs?id=9990015520900120151103" } }, "employment-status": { "description": "Employment status of the individual.\nFor complete list of possible values see [employment-statuses](party-classifications.html#employment-statuses) enumeration.\n", "type": "string", "enum": [ "employed", "not-employed", "retired", "shop-owner", "farmer", "leave-of-absence", "part-time-job" ] }, "ownership-info": { "description": "Ownership info for the organization", "type": "object", "properties": { "kind": { "type": "string", "x-asee-classification": "ownership-kinds", "description": "Classifies organizations based on their business ownership kind. For example, `Private property`,`State owned`,`Public property`. For complete list of possible values see [ownership-kinds](party-classifications.html#ownership-kinds)" }, "residental-status": { "type": "string", "x-asee-classification": "ownership-residential-status-types", "description": "Classification of organizations by ownership residential status." } } }, "servicing-info": { "properties": { "org-unit": { "description": "OU code for organization unit that is servicing party.", "type": "string" }, "agent": { "description": "Unique identifier of agent that is servicing party.", "type": "string" } } }, "origination-info": { "properties": { "org-unit": { "description": "OU code for organization unit in wich organization is registered.", "type": "string" }, "agent": { "description": "Unique identifier of agent that registered organization.", "type": "string" }, "channel": { "type": "string", "description": "Unique identifier (channel code) of channel from which loan was originated" }, "application-number": { "type": "string", "description": "Unique identifier of application that was used to originate arrangement" } } }, "register-individual-command": { "description": "Command with details to register individual.", "properties": { "registration-profile": { "type": "string", "enum": [ "contact", "prospect", "customer" ], "description": "For a list of possible values see [registration-profiles](party-classifications.html#registration-profiles) enumeration.\n" }, "given-name": { "description": "Name given to individual at birth usually by parents. For example *John* or *Jane*. Mandatory in following registration profiles: `contact`, `prospect`, `customer`", "maxLength": "40", "minLength": "2", "type": "string" }, "parent-name": { "description": "Name of one parent. For example *John* or *Jane*", "maxLength": "40", "minLength": "2", "type": "string" }, "surname": { "description": "Part of an individual's name which belongs to the family the individual is a part of. For example *Smith*, *Mueller*. Mandatory in following registration profiles: `contact`, `prospect`, `customer`", "maxLength": "40", "minLength": "2", "type": "string" }, "maiden-name": { "description": "Individual's surname as it existed prior to any change of surname resulting from any marriage. In many countries, legal and/or social and cultural conventions dictate or suggest that one spouse assume the surname of the other spouse upon their marriage", "maxLength": "40", "minLength": "2", "type": "string" }, "gender": { "description": "Gender is the characteristic pertaining to, and differentiating between, masculinity and femininity", "type": "string", "enum": [ "female", "male", "unknown" ] }, "segment": { "type": "string", "x-asee-classification": "customer-segment", "description": "Classifies the customers into segments according to bank requirements. For a complete list of possible values see [customer-segments](party-classifications.html#customer-segments) classification" }, "mobile-phone": { "$ref": "#/definitions/telecommunication-number" }, "email-address": { "$ref": "#/definitions/electronic-address" }, "contact-address": { "$ref": "#/definitions/postal-address" }, "id-number": { "$ref": "#/definitions/identification-number" }, "id-document": { "$ref": "#/definitions/identification-document" }, "birth-date": { "description": "birth date of an individual", "type": "string" }, "birth-place-code": { "description": "birth place code if codebook is used for places", "type": "string" }, "birth-place": { "description": "Name of the populated place where individual was born", "type": "string" }, "birth-country": { "description": "Country where individual was born", "maxLength": "2", "minLength": "2", "type": "string", "format": "ISO 3166-1 alpha-2" }, "country-of-residence": { "description": "Country where individual has legal residence", "maxLength": "2", "minLength": "2", "type": "string", "format": "ISO 3166-1 alpha-2" }, "x-foreign-person": { "type": "boolean", "description": "A non standard field that indicates that this is foreign person." }, "x-is-resident": { "type": "boolean", "description": "A non standard field that indicates weather individual is resident or not. This flag can be true for both domestic and foreign persons. Field is specific to PUB implementation." }, "legal-address": { "$ref": "#/definitions/postal-address" }, "delivery-address": { "$ref": "#/definitions/postal-address" }, "employment-status": { "$ref": "#/definitions/employment-status" }, "employer-id": { "description": "Current employer id of an individual. If not registered, employer can be registered with minimum set of data. Mandatory fields are described in `contact` registration profile for an organization", "type": "string" }, "employment-date": { "description": "Date of employment at current employer", "format": "date-time", "type": "string" }, "employment-position": { "description": "Employment position held by individual", "type": "string" }, "party-number": { "description": "Business identifier of the party if previously registered as prospect", "maxLength": "30", "minLength": "0", "type": "string" } }, "required": [ "registration-profile", "given-name", "surname", "mobile-phone" ], "type": "object" }, "apply-individual-corrections-command": { "description": "Command with details to apply corrections to data held about individual.", "properties": { "corrections": { "$ref": "#/definitions/merge-patch-document" }, "correction-reason": { "description": "Reason for correction from clasification", "type": "string", "enum": [ "customer-supplied-wrong-data", "agent-entry-mistake", "imported-as-wrong" ] }, "correction-comment": { "description": "Comment of correction", "type": "string" } }, "required": [ "reason-for-correction" ], "type": "object" }, "merge-patch-document": { "description": "Merge patch document with instructions on how to change original data according to RFC 7396", "type": "object", "additionalProperties": { "$ref": "#/definitions/value" } }, "value": { "type": "object" }, "change-individual-surname-command": { "description": "Command with details tochange individual surname.", "properties": { "surname": { "description": "Part of an individual's name which belongs to the family the individual is a part of. For example *Smith*, *Mueller*. Mandatory in following registration profiles: `contact`, `prospect`, `customer`", "maxLength": "40", "minLength": "2", "type": "string" } } }, "modify-individual-employment-profile-command": { "description": "Command with details to change employment profile", "type": "object", "properties": { "employment-status": { "$ref": "#/definitions/employment-status" }, "employer-id": { "description": "Current employer id of an individual. If not registered, employer can be registered with minimum set of data. Mandatory fields are described in `contact` registration profile for an organization", "type": "string" }, "employment-date": { "description": "Date of employment at current employer", "format": "date-time", "type": "string" }, "employment-position": { "description": "Employment position held by individual", "type": "string" } } }, "modify-individual-residential-profile-command": { "description": "Command with details to change residential profile.", "properties": { "country-of-residence": { "description": "Country where individual has legal residence", "maxLength": "2", "minLength": "2", "type": "string", "format": "ISO 3166-1 alpha-2" }, "x-is-resident": { "type": "boolean", "description": "A non standard field that indicates weather individual is resident or not. This flag can be true for both domestic and foreign persons. Field is specific to PUB implementation." }, "x-foreign-person": { "type": "boolean", "description": "A non standard field that indicates that this is foreign person." } } }, "report-death-command": { "description": "Command with details to add individual deceased date.", "properties": { "death-date": { "description": "Person's date of death", "format": "date", "type": "string" }, "death-notice-date": { "description": "Date from which bank have a notice of death of person", "format": "date", "type": "string" } } }, "register-organization-command": { "description": "Command with details to register organization", "required": [ "registration-profile", "commercial-name", "phone" ], "type": "object", "properties": { "registration-profile": { "type": "string", "enum": [ "contact", "prospect", "customer" ], "description": "For a list of possible values see [registration-profiles](party-classifications.html#registration-profiles) enumeration.\n" }, "registered-name": { "description": "Legal name under which oganization is established", "type": "string" }, "commercial-name": { "description": "The primary commercial name of an organization, by which it is most commonly recognized", "type": "string" }, "legal-structure": { "type": "string", "x-asee-classification": "legal-structures", "description": "Classifies organizations based on their legal form or structure. For example, `public-organization`, `partnership`, `sole-proprietorship`, `limited-company`.such as trust, company, charity, or estate. For a complete list of possible values see [legal-structures](party-classifications.html#legal-structures)" }, "industry-sector": { "type": "string", "x-asee-classification": "industry-sectors", "description": "Classifies organizations based on their industry sectors. For example, `distribution of electricity`, `news agency activities`, `activities related to information technology`, etc. For a complete list of possible values see [industry-sectors](party-classifications.html#industry-sectors)" }, "organization-purpose": { "type": "string", "x-asee-classification": "organization-purposes", "description": "Distinguishes between organizations according to their purpose or format; for example, `association` and `public-service`. For a complete list of possible values see [organization-purposes](party-classifications.html#organization-purposes)" }, "established": { "description": "Date on which organization was formally established", "type": "string", "format": "date" }, "ownership-info": { "$ref": "#/definitions/ownership-info" }, "size": { "type": "string", "x-asee-classification": "organization-size", "description": "Classsifies organizations based on their size according to the regulators rules. For a complete list of possible values see [organization-size](party-classifications.html#organization-size)" }, "servicing-info": { "$ref": "#/definitions/servicing-info" }, "origination-info": { "$ref": "#/definitions/origination-info" }, "file-kind": { "type": "string", "x-asee-classification": "organization-file-kinds", "description": "Internal classification of organizations for banks internal filing purpose. For example, `Micro company`,`Bank`,`Corporate` etc. For complete list of possible values see [organization-file-kinds](party-classifications.html#organization-file-kinds)" }, "id-numbers": { "description": "List of organization identification numbers", "type": "array", "items": { "$ref": "#/definitions/identification-number" } }, "id-document": { "$ref": "#/definitions/identification-document" }, "phone": { "$ref": "#/definitions/telecommunication-number" }, "email-address": { "$ref": "#/definitions/electronic-address" }, "contact-address": { "$ref": "#/definitions/postal-address" }, "legal-address": { "$ref": "#/definitions/postal-address" }, "delivery-address": { "$ref": "#/definitions/postal-address" } } }, "modify-organization-name-command": { "description": "Command for changing organization bussiness or commercial name. Business name must contain the name, legal form and place of business. This is common business change according to business registers agencies.", "type": "object", "properties": { "registered-name": { "description": "Legal name under which oganization is established", "type": "string" }, "commercial-name": { "description": "The primary commercial name of an organization, by which it is most commonly recognized", "type": "string" }, "legal-structure": { "type": "string", "x-asee-classification": "legal-structures", "description": "Classifies organizations based on their legal form or structure. For example, `public-organization`, `partnership`, `sole-proprietorship`, `limited-company`.such as trust, company, charity, or estate. For a complete list of possible values see [legal-structures](party-classifications.html#legal-structures)" } } }, "change-organization-ownership-info-command": { "description": "Command for changing organization ownership info. This is business change which take place when company changes type of owner e.g. from state to private or from public to state owned.", "type": "object", "properties": { "ownership-info": { "$ref": "#/definitions/ownership-info" } } }, "modify-organization-profile-command": { "properties": { "organization-file-kind": { "type": "string", "x-asee-classification": "organization-file-kinds", "description": "Internal classification of organizations for banks internal filing purpose. For example, `Micro company`,`Bank`,`Corporate` etc. For complete list of possible values see [organization-file-kinds](party-classifications.html#organization-file-kinds)" } } }, "change-organization-size-command": { "description": "Command for changing organization's size classification.", "type": "object", "properties": { "size": { "type": "string", "x-asee-classification": "organization-size", "description": "Classsifies organizations based on their size according to the regulators rules. For a complete list of possible values see [organization-size](party-classifications.html#organization-size)" } } }, "modify-party-servicing-info-command": { "description": "Command for modifying a servicing info servicing the party", "type": "object", "properties": { "servicing-info": { "$ref": "#/definitions/servicing-info" } } }, "register-contact-point-command": { "description": "Command to register new contact address", "properties": { "contact-point": { "$ref": "#/definitions/contact-point" } }, "required": [ "contact-point" ], "type": "object" }, "modify-contact-point-command": { "description": "Command to register new contact address", "properties": { "contact-point": { "$ref": "#/definitions/contact-point" } }, "required": [ "contact-point" ], "type": "object" }, "modify-contact-preference-command": { "description": "Command to register new contact address", "properties": { "contact-preference": { "$ref": "#/definitions/contact-preference" } }, "required": [ "contact-preference" ], "type": "object" }, "register-identification-document-command": { "description": "Command to register identification document", "properties": { "identification-document": { "$ref": "#/definitions/identification-document" } }, "required": [ "identification-document" ], "type": "object" }, "resource-created-result": { "description": "Unique identifier of newly created resource that can be used in future inquires and commands", "type": "string", "example": "ID12345" }, "validation-problem": { "description": "Details of failed validation", "properties": { "errors": { "description": "List of validation errors", "type": "array", "items": { "type": "object", "properties": { "tag": { "description": "Name of input element (field or parameter) that is in invalid. If missing or null it is interpreted that validation error refers to entire request rather than to specific element.", "type": "string" }, "error": { "description": "Unique literal that identifies kind of validation error", "type": "string" }, "message": { "description": "Message that explains failed validation. To support translation message may embed variable parameters in curly brackets.", "type": "string" } } } } }, "example": { "errors": [ { "tag": "phone-number", "error": "invalid-format", "message": "Format for this field is invalid" }, { "tag": "phone-number", "error": "max-length", "message": "Content exceeds maximum alowed length" }, { "tag": "account-number", "error": "check-digit-invalid", "message": "Check digit is invalid for this field" } ] } }, "business-problem": { "description": "Details on specific problem that prevented processing after successfull validation", "type": "object", "properties": { "problem": { "description": "Unique literal that identifies specific problem", "type": "string" }, "message": { "description": "Message explaining the situation and optionaly remedies", "type": "string" }, "details": { "description": "Optional details supplied for troubleshooting", "type": "string" } }, "example": { "problem": "document-locked", "message": "Document you are trying to access is locked by another user", "details": "User john.doe has locked the document" } }, "paged-list": { "description": "List with support for paging", "properties": { "total-count": { "description": "Total number of items in collection", "type": "integer" }, "page-size": { "description": "Size of the page", "type": "integer" }, "page": { "description": "Index of current page", "type": "integer" }, "total-pages": { "description": "Total number of pages of set size", "type": "integer" }, "sort-order": { "description": "Sort order (`asc` or `desc`). Default is asc", "type": "string", "enum": [ "asc", "desc" ] }, "sort-by": { "description": "Attribute of the collection item to sort by", "type": "string" } } }, "classification-value": { "type": "object", "description": "Classification value", "properties": { "literal": { "description": "Literal that uniquely identifies classification value", "type": "string" }, "code": { "description": "Optional numerical code of classification value", "type": "string" }, "description": { "description": "Description of classification value", "type": "string" }, "parent-literal": { "description": "Optional literal of parent classification value if schema is hierarchical", "type": "string" } }, "example": { "literal": "billing", "code": "2", "description": "Contact may be used to provide party with details of their liabilities to the bank" } }, "classification-list": { "description": "List of classification schemas", "type": "object", "properties": { "items": { "description": "List of classification schemas", "items": { "$ref": "#/definitions/classification-info" }, "type": "array" } }, "example": [ { "schema-id": "filing-purpose", "name": "Filing Purpose", "description": "List of possible uses of document in business context. Commonly used filing purposes are document, customer-picture" }, { "schema-id": "folder-purpose", "name": "Folder Purpose", "description": "List of possible uses of a folder in business context." } ] }, "classification-info": { "description": "Basic information on classification schema", "properties": { "schema-id": { "type": "string", "description": "Unique literal that identifies the classification schema. Always in `lowercase-dash` convention." }, "name": { "type": "string", "description": "User friendly name of classification" }, "description": { "type": "string", "description": "Description of a classification" } }, "example": { "schema-id": "filing-purpose", "name": "Filing Purpose", "description": "List of possible uses of document in business context. Commonly used filing purposes are document, customer-picture" } }, "classification": { "type": "object", "description": "Classification schema details", "properties": { "schema-id": { "type": "string", "description": "Unique literal that identifies the classification schema. Always in `lowercase-dash` convention." }, "name": { "type": "string", "description": "User friendly name of classification" }, "description": { "type": "string", "description": "Description of a classification" }, "values": { "description": "List of allowed classification values", "type": "array", "items": { "$ref": "#/definitions/classification-value" } } }, "example": { "schema-id": "contact-purpose", "name": "Contact Purpose", "description": "List of possible uses of contact in business context. Commonly used filing purposes are billing, marketing", "values": [ { "literal": "billing", "code": "1", "description": "Contact may be used to provide party with details of their liabilities to the bank" }, { "literal": "marketing", "code": "2", "description": "Contact may be used to provide party with details of offers" }, { "literal": "reporting", "code": "3", "description": "Contact may be used to provide party with reports on their account" } ] } }, "party-list": { "description": "List of parties for synchronization", "type": "object", "x-asee-trimmed": [ "parties.contact-points", "parties.relationships", "parties.id-documents" ], "properties": { "parties": { "description": "Collection of parties", "type": "array", "items": { "$ref": "#/definitions/party" } }, "sync-timestamp": { "description": "Timestamp indicator token of synchronization data returned", "type": "string" } } } }, "parameters": { "telecommunication-number-param": { "description": "Telecommunication number", "in": "query", "name": "telecommunication-number", "required": "false", "type": "string" }, "email-param": { "description": "Electronic address", "in": "query", "name": "email", "required": "false", "type": "string" }, "facebook-account-param": { "description": "Facebook account", "in": "query", "name": "facebook-account", "required": "false", "type": "string" }, "name-param": { "description": "Party name", "in": "query", "name": "name", "required": "false", "type": "string" }, "method-param": { "description": "'Contact methods of interest to filter contact points. Common values are `postal`, `gsm` and `email`. If empty or not present, all contact methods are considered interesting'\nFor a list of possible values see [contact-point-methods](party-classifications.html#contact-point-methods) enumeration.\n", "in": "query", "name": "metohod", "required": "false", "items": { "type": "string", "enum": [ "postal", "pstn", "gsm", "fax", "facebook", "email", "web" ] }, "type": "array", "collectionFormat": "csv" }, "usage-param": { "description": "'Usages of interest to filter contact points. Commonly used values are `home`, `work`, `business` and `default` which has a special meaning of being a primary contact. If empty or not present, all usages are considered interesting.'\nFor a list of possible values see [contact-point-usages](party-classifications.html#contact-point-usages) enumeration.\n", "in": "query", "name": "usage", "required": "false", "items": { "type": "string", "enum": [ "default", "home", "business", "work", "seasonal", "assistant", "delivery", "legal" ] }, "type": "array", "collectionFormat": "csv" }, "latitude-param": { "description": "Geographic latitude of the location of map center. Used for geospatial search of transactions that have been geocoded.", "in": "query", "name": "lat", "required": "false", "format": "double", "type": "number" }, "longitude-param": { "description": "Geographic longitude of the location of map center. Used for geospatial search of transactions that have been geocoded.", "in": "query", "name": "long", "required": "false", "format": "double", "type": "number" }, "radius-param": { "description": "Radius (in km) from location on map specified by latitude and longitude. Used for geospatial search of transactions that have been geocoded.", "in": "query", "name": "radius", "required": "false", "format": "double", "type": "number" }, "search-query-param": { "name": "q", "in": "query", "description": "The text to search for. All searchable fields are searched by default unless search-fields is specified. When searching searchable fields, the search text itself is tokenized, so multiple terms can be separated by white space (e.g. `q=hello world`).", "required": "true", "type": "string" }, "search-fields-param": { "description": "The list of comma-separated field names to search for the specified text. Target fields must be marked as searchable", "in": "query", "name": "search-fields", "type": "array", "items": { "type": "string" }, "collectionFormat": "csv" }, "search-mode-param": { "name": "search-mode", "in": "query", "description": "Specifies whether any or all of the search terms must be matched in order to count the document as a match.", "type": "string", "enum": [ "any", "all" ], "required": "false" }, "schema-id-param": { "name": "schema-id", "description": "Identifier of classification schema", "in": "path", "required": "true", "type": "string" }, "page-param": { "name": "page", "in": "query", "description": "Page index. For more information see general guidance on [paging](common-getstarted.html#paging)", "type": "integer", "default": "1", "x-asee-common": "true" }, "page-size-param": { "name": "page-size", "in": "query", "description": "Number of items on a page. For more information see general guidance on [paging](common-getstarted.html#paging)", "required": "false", "type": "integer", "default": "10", "x-asee-common": "true" }, "sort-order-param": { "description": "Sort order (`asc` or `desc`). Default is asc. For more information see general guidance on [sorting](common-getstarted.html#sorting)", "in": "query", "name": "sort-order", "type": "string", "default": "asc", "enum": [ "asc", "desc" ], "x-asee-common": "true" }, "sort-by-param": { "description": "Attribute of the collection item to sort by. For more information see general guidance on [sorting](common-getstarted.html#sorting)", "in": "query", "name": "sort-by", "type": "string", "x-asee-common": "true" }, "include-param": { "description": "List of fields to include in response. For more information see general guidance on [response shaping](common-getstarted.html#shaping)", "in": "query", "name": "include", "type": "array", "items": { "type": "string" }, "collectionFormat": "csv", "x-asee-common": "true" }, "trim-param": { "description": "List of fields to trim from response. For more information see general guidance on [response shaping](common-getstarted.html#shaping)", "in": "query", "name": "trim", "type": "array", "items": { "type": "string" }, "collectionFormat": "csv", "x-asee-common": "true" }, "sync-timestamp-param": { "name": "sync-timestamp", "description": "Optional timestamp indicator for incremental synchronization. If supplied items that have been recorded or updated after it will be returned. If empty or not present, all items will be returned", "type": "string", "in": "query" } } }