ACCOUNTS

Servicios por los cuales se podrán dar altas, consultar y modificar personas, cuentas comitentes y cuentas bancarias.

Los pasos correctos a seguir son:

  1. Alta de la persona, donde se obtiene el person_id para vincular a la cuenta comitente.
  2. Envío de documentación de las personas que componen la cuenta
  3. Alta de la cuenta comitente, donde se obtiene el investment_account_id para vincular la cuenta bancaria.
  4. Alta de la cuenta bancaria para poder realizar extracciones.

POST /persons ⚠️

⚠️ Este endpoint quedará inhabilitado. Usar /v2/persons

Endpoint para poder dar el alta de una o mas personas con la información requerida en un solo hit.

  • URL del Endpoint: POST/{{baseUrl}}/api/accounts/persons/

Dentro del objeto person:

Campo Tipo Descripción Match
job_activity_id int Código de actividad AFIP master-tables: job_activities
nationality_id str Código de país de nacionalidad master-tables: countries
country_document_id str Código de país del documento master-tables: countries
is_pep bool Indicador si la persona es políticamente expuesta Brindado por el usuario
is_aml_cft_subject bool Indicador si la persona es sujeto obligado Brindado por el usuario

Dentro del objeto tax_identifications:

Campo Tipo Descripción Match
tax_identification_value str CUIT/CUIL/CDI de la persona Brindado por el usuario
residence_country_id str Código de país de residencia master-tables: countries
tax_identification_type_id str Código de tipo de documento fiscal y laboral master-tables: countries
taxpayer_income_tax_type_id str Código de tipo de contribuyente de ingresos brutos master-tables: taxpayers_income_tax_types
vat_taxpayer_type_id str Código de tipo de contribuyente IVA master-tables: vat_taxpayer_types
vat_country_taxpayer_type_id str Código del país donde contribuye IVA específico

Dentro del objeto human_person:

Campo Tipo Descripción Match
surname str Apellido de la persona física Brindado por el usuario
name str Nombre de la persona física Brindado por el usuario
document_type_id str Código de tipo de documento master-tables: documents
document_num str Número de documento de la persona física Brindado por el usuario
civil_status_id str Código de tipo de estado civil master-tables civil-statuses
birth_date date Fecha de nacimiento de la persona física Brindado por el usuario
birth_place str Lugar de nacimiento de la persona física master-tables: countries
gender_id str Género de la persona física master-tables: genders
signature base64 Firma por cada persona que se da de alta. Archivo .png con resolucion de 800x600px, con transparencia Brindado por el usuario

Dentro del objeto legal_person:

Campo Tipo Descripción Match
company_name str Razón social de la persona jurídica Brindado por el usuario
registration_number str Número de inscripción de la persona jurídica Brindado por el usuario
incorporation_place str Lugar de constitución de la persona jurídica master-tables: countries
country_id str Codigo país de la persona jurídica master-tables: countries

Dentro del objeto domicile:

Campo Tipo Descripción Match
domicile_type_id str Código de tipo de domicilio master-tables: domicile_types
house_number int Altura de la calle Brindado por el usuario
street str Nombre de la calle Brindado por el usuario
floor str Piso en caso de un edificio. Brindado por el usuario
apartment str Departamento Brindado por el usuario
country_id str Código del país master-tables: countries
province_id str Código de la provincia master-tables: provinces
zip_code int Código postal Brindado por el usuario
location_id int Código de la localidad master-tables: locations

Dentro del objeto contact:

Campo Tipo Descripción Match
email str Email de la persona Brindado por el usuario
mobile_phone str Telefono de la persona. Formato E.164 Brindado por el usuario

Request para ingresar una persona física

{
  "persons": [
    {
        "job_activity_id": "int",
        "nationality_id": "str",
        "country_document_id": "str",
        "is_pep": "bool",
        "is_aml_cft_subject": "bool",
        "tax_identifications": {
          "tax_identification_value": "str",
          "residence_country_id": "str",
          "tax_identification_type_id": "str",
          "taxpayer_income_tax_type_id": "str",
          "vat_taxpayer_type_id": "str",
          "vat_country_taxpayer_type_id": "str"
        },
        "human_person": {
          "surname": "str",
          "name": "str",
          "document_type_id": "str",
          "document_num": "str",
          "civil_status_id": "str",
          "birth_date": "date",
          "birth_place": "str",
          "gender_id": "str",
          "signature": "str"
        },
        "domiciles": [ 
          {
              "domicile_type_id": "str",
              "house_number": "int",
              "street": "str",
              "floor": "int",
              "apartment": "str",
              "country_id": "str",
              "province_id": "str",
              "zip_code": "int",
              "location_id": "int"
            }
        ],
        "contact": {
          "email": "str",
          "mobile_phone": "str"
        }
      }
  ]
}

Request para ingresar una persona jurídica

{
  "persons": [
    {
        "job_activity_id": "int",
        "nationality_id": "str",
        "country_document_id": "str",
        "is_pep": "bool",
        "is_aml_cft_subject": "bool",
        "tax_identifications": {
          "tax_identification_value": "str",
          "residence_country_id": "str",
          "tax_identification_type_id": "str",
          "taxpayer_income_tax_type_id": "str",
          "vat_taxpayer_type_id": "str",
          "vat_country_taxpayer_type_id": "str"
        },
        "legal_person": {
          "company_name": "str",
          "registration_number": "str",
          "incorporation_place": "str",
          "country_id": "str"
        },
        "domiciles": [ 
          {
              "domicile_type_id": "str",
              "house_number": "int",
              "street": "str",
              "floor": "int",
              "apartment": "str",
              "country_id": "str",
              "province_id": "str",
              "zip_code": "int",
              "location_id": "int"
            }
        ],
        "contact": {
          "email": "str",
          "mobile_phone": "str"
        }
      }
  ]
}

Response de una persona física y una persona jurídica

{
  "items": [
        {
          "person_id": "str",
          "surname": "str",
          "name": "str",
          "tax_identification_value": "str",
          "error": {
            "error_code": "str",
            "message": "str"
          }
        },
        {
        "person_id": "str",
        "company_name": "str",
        "tax_identification_value": "str",
        "error": {
          "error_code": "str",
          "message": "str"
        }
      }
  ]
}

En caso de no haber error, el campo "error" viene en null.

POST/ v2/persons

Endpoint para poder dar el alta de una o mas personas con la información requerida en un solo hit.

  • URL del Endpoint: POST/{{baseUrl}}/api/accounts/v2/persons

Dentro del objeto person:

Campo Tipo Descripción Match
job_activity_id int Código de actividad AFIP master-tables: job_activities
nationality_id str Código de país de nacionalidad master-tables: countries
country_document_id str Código de país del documento master-tables: countries
is_pep bool Indicador si la persona es políticamente expuesta Brindado por el usuario
pep_relation str Indicador si la relacion PEP es direct o indirect Brindado por el usuario
pep_position str Indicador del cargo PEP, Ej "Presidente" Brindado por el usuario
is_aml_cft_subject bool Indicador si la persona es sujeto obligado Brindado por el usuario
fatca_id str Indicador si la persona está registrada o tiene operaciones en EEUU Brindado por el usuario

Consideraciones:

  • Si la persona "is_pep": true, entonces "pep_relation" y "pep_position" serán campos obligatorios. De lo contrario, si "is_pep": false, estos 2 campos pueden omitirse o enviarse vacios.
  • FATCA: Ley de Cumplimiento Fiscal de Cuentas en el Extranjero. Aplica a todo individuo o entidad con obligaciones fiscales, quienes incluyen ciudadanos estadounidenses y aquellos que han obtenido alguna vez la tarjeta de residencia en EE.UU. Si la persona NO cumple con esta condición, el campo "fatca_id" podrá enviarse vacio:
"fatca_id": ""

Dentro del objeto oecd_identifiers:

Campo Tipo Descripción Match
oecd_identifier str Identificador si la persona tiene residencia fiscal en un país que participa en el intercambio automático de información según la OCDE Brindado por el usuario
country_id str Codigo país miembro de la OCDE master-tables: countries

Consideraciones:

  • La OCDE, Organización para la Cooperación y el Desarrollo Económicos, agrupa a países con economías avanzadas. Si la persona NO tiene obligaciones fiscales en un país miembro de la OCDE y NO reside en un país extranjero, entonces el objeto "oecd_identifier" se debe enviar vacío en la request de la siguiente manera:
"oecd_identifiers": [ ]

Dentro del objeto tax_identifications:

Campo Tipo Descripción Match
tax_identification_value str CUIT/CUIL/CDI de la persona Brindado por el usuario
residence_country_id str Código de país de residencia master-tables: countries
tax_identification_type_id str Código de tipo de documento fiscal y laboral master-tables: countries
taxpayer_income_tax_type_id str Código de tipo de contribuyente de ingresos brutos master-tables: taxpayers_income_tax_types
vat_taxpayer_type_id str Código de tipo de contribuyente IVA master-tables: vat_taxpayer_types
vat_country_taxpayer_type_id str Código del país donde contribuye IVA específico

Dentro del objeto human_person:

Campo Tipo Descripción Match
surname str Apellido de la persona física Brindado por el usuario
name str Nombre de la persona física Brindado por el usuario
document_type_id str Código de tipo de documento master-tables: documents
document_num str Número de documento de la persona física Brindado por el usuario
civil_status_id str Código de tipo de estado civil master-tables civil-statuses
birth_date date Fecha de nacimiento de la persona física Brindado por el usuario
birth_place str Lugar de nacimiento de la persona física master-tables: countries
gender_id str Género de la persona física master-tables: genders
signature base64 Firma por cada persona que se da de alta. Archivo .png con resolucion de 800x600px, con transparencia Brindado por el usuario

Dentro del objeto legal_person:

Campo Tipo Descripción Match
company_name str Razón social de la persona jurídica Brindado por el usuario
registration_number str Número de inscripción de la persona jurídica Brindado por el usuario
incorporation_place str Lugar de constitución de la persona jurídica master-tables: countries
country_id str Codigo país de la persona jurídica master-tables: countries
constitution_date date Fecha de constitución de la persona juridica Brindado por el usuario
book str Libro Brindado por el usuario
volume str Tomo Brindado por el usuario
page str Folio Brindado por el usuario
is_state_supplier bool Indicador si es proveedora del estado Brindado por el usuario
corporate_type int Código de tipo societario master-tables: corporate-types

Dentro del objeto domicile:

Campo Tipo Descripción Match
domicile_type_id str Código de tipo de domicilio master-tables: domicile_types
house_number int Altura de la calle Brindado por el usuario
street str Nombre de la calle Brindado por el usuario
floor str Piso en caso de un edificio. Brindado por el usuario
apartment str Departamento Brindado por el usuario
country_id str Código del país master-tables: countries
province_id str Código de la provincia master-tables: provinces
zip_code int Código postal Brindado por el usuario
location_id int Código de la localidad master-tables: locations

Dentro del objeto contact:

Campo Tipo Descripción Match
email str Email de la persona Brindado por el usuario
mobile_phone str Telefono de la persona. Formato E.164 Brindado por el usuario

Request para ingresar una persona física

{
  "persons": [
    {
        "job_activity_id": "int",
        "nationality_id": "str",
        "country_document_id": "str",
        "is_pep": "bool",
        "pep_relation": "str", 
        "pep_position": "str", 
        "is_aml_cft_subject": "bool",
        "fatca_id": "str",
        "oecd_identifiers": [ 
                {
                    "oecd_identifier": "str",
                    "country_id": "str"
                }
            ],
        "tax_identifications": {
          "tax_identification_value": "str",
          "residence_country_id": "str",
          "tax_identification_type_id": "str",
          "taxpayer_income_tax_type_id": "str",
          "vat_taxpayer_type_id": "str",
          "vat_country_taxpayer_type_id": "str"
        },
        "human_person": {
          "surname": "str",
          "name": "str",
          "document_type_id": "str",
          "document_num": "str",
          "civil_status_id": "str",
          "birth_date": "date",
          "birth_place": "str",
          "gender_id": "str",
          "signature": "str"
        },
        "domiciles": [ 
          {
              "domicile_type_id": "str",
              "house_number": "int",
              "street": "str",
              "floor": "int",
              "apartment": "str",
              "country_id": "str",
              "province_id": "str",
              "zip_code": "int",
              "location_id": "int"
            }
        ],
        "contact": {
          "email": "str",
          "mobile_phone": "str"
        }
      }
  ]
}

Request para ingresar una persona jurídica

{
    "persons": [
        {
            "job_activity_id": "int",
            "nationality_id": "str",
            "country_document_id": "str",
            "is_pep": "bool",
            "is_aml_cft_subject": "bool",
            "fatca_id": "str", 
            "oecd_identifiers": [ 
                {
                    "oecd_identifier": "str",
                    "country_id": "str"
                }
            ],
            "tax_identifications": {
                "tax_identification_value": "str",
                "residence_country_id": "str",
                "tax_identification_type_id": "str",
                "taxpayer_income_tax_type_id": "str",
                "vat_taxpayer_type_id": "str",
                "vat_country_taxpayer_type_id": "str"
            },
            "legal_person": { 
                "company_name": "str",
                "registration_number": "str",
                "incorporation_place": "str",
                "country_id": "str",
                "constitution_date": "date",
                "book": "str",
                "volume": "str",
                "page": "str",
                "is_state_supplier": "bool",
                "corporate_type": "int"
            },
            "domiciles": [
                {
                    "domicile_type_id": "str",
                    "house_number": "int",
                    "street": "str",
                    "floor": "int",
                    "apartment": "str",
                    "country_id": "str",
                    "province_id": "str",
                    "zip_code": "int",
                    "location_id": "int"
                }
            ],
            "contact": {
                "email": "str",
                "mobile_phone": "str"
            }
        }
    ]
}

Response de una persona física y una persona jurídica

{
  "items": [
        {
          "person_id": "str",
          "surname": "str",
          "name": "str",
          "tax_identification_value": "str",
          "error": {
            "error_code": "str",
            "message": "str"
          }
        },
        {
        "person_id": "str",
        "company_name": "str",
        "tax_identification_value": "str",
        "error": {
          "error_code": "str",
          "message": "str"
        }
      }
  ]
}

En caso de no haber error, el campo "error" viene en null.

GET/ persons

Endpoint para obtener la información completa de una persona por su "cuit" o su "person_id". por medio de queryParams.

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/persons/

queryParams ---> tax_identification_value

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/persons?tax_identification_value={tax_identification_value}

queryParams ---> person_id

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/persons?person_id={person_id}

Response:

{
  "items": [
    {
      "person_id": "str",
      "person": {
        "job_activity_id": "int",
        "nationality_id": "str",
        "country_document_id": "str",
        "is_pep": "bool",
        "pep_relation": "str",
        "pep_position": "str",
        "is_aml_cft_subject": "bool",
        "fatca_id": "str", 
        "oecd_identifiers": [ 
                {
                    "oecd_identifier": "str",
                    "country_id": "str"
                }
            ],
        "tax_identifications": {
          "tax_identification_value": "str",
          "residence_country_id": "int",
          "tax_identification_type_id": "str",
          "taxpayer_income_tax_type_id": "str",
          "vat_taxpayer_type_id": "str",
          "vat_country_taxpayer_type_id": "int"
        },
        "human_person": {
          "surname": "str",
          "name": "str",
          "document_type_id": "str",
          "document_num": "int",
          "civil_status_id": "str",
          "birth_date": "date",
          "birth_place": "str",
          "gender_id": "str"
        },
        "legal_person": { 
                "company_name": "str",
                "registration_number": "str",
                "incorporation_place": "str",
                "country_id": "str",
                "constitution_date": "date",
                "book": "str",
                "volume": "str",
                "page": "str",
                "is_state_supplier": "bool",
                "corporate_type": "int"
            },
        "domiciles": [
          {
            "domicile_type_id": "str",
            "house_number": "int",
            "street": "str",
            "floor": "int",
            "apartment": "str",
            "country_id": "str",
            "province_id": "str",
            "zip_code": "int",
            "location_id": "int"
          }
        ],
        "contact_info": {
          "email": "str",
          "mobile_phone": "str"
        }
      }
    }
  ]
}

POST/ identity-document

Endpoint para enviar documentación de todas las personas humanas que componen una cuenta

  • URL del Endpoint: POST/{{baseUrl}}/api/accounts/persons/identity-document
Campo Tipo Descripción Match
person_id str Código de la persona física vinculada a los documentos Brindado por el usuario
front base64 Frente DNI Brindado por el usuario
back base64 Dorso DNI Brindado por el usuario
face base64 Fotografía del rostro tomada por la persona Brindado por el usuario

Request para enviar la documentación de una persona humana

{
    "person_id": "str",
    "face": "base64",
    "front": "base64",
    "back": "base64"
}

GET/ identity-document

Endpoint para consultar la documentación de las personas físicas

  • URL del Endpoint: GET{{baseUrl}}/api/accounts/persons/identity-document/:person_id

Response

{
    "items": [
        {
            "person_id": "str",
            "face": "str",
            "front": "str",
            "back": "str"
        }
    ]
}

POST/ contracts

Endpoint para enviar documentación de la persona legal que compone una cuenta. A su vez, podrá ser utilizado para enviar la documentación relacionada a personas humanas que sean PEP (politicamente expuesta)

El cuerpo de la solicitud utiliza un tipo de codificación FORM-DATA (multipart/form-data). Esto permitirá enviar tanto archivos como campos de texto

  • URL del Endpoint: POST/{{baseUrl}}/api/accounts/persons/contracts
Campo Tipo Descripción Match
person_id text Código de la persona vinculada a los documentación Brindado por el usuario
constituent_instrument file Instrumento constitutivo Brindado por el usuario
power_of_attorney file Poder Brindado por el usuario
latest_balance_certificate file Último Balance anual certificado por el CPCE Brindado por el usuario
administrative_body_record file Nómina o actas con determinación de miembros del órgano de administración u órgano equivalente Brindado por el usuario
capital_ownership_beneficiary file Titularidad del capital social - indicación de Beneficiario final Brindado por el usuario
shareholder_registry_copy file Copia del Registro de participación societaria Brindado por el usuario
other_documents file Otros documentos societarios Brindado por el usuario
pep_documents file Documentación solo para PF que sean PEP Brindado por el usuario

Ejemplos de los documentos que se deben cargar para cada KEY:

  • Instrumento constitutivo: Estatuto de SA, Contrato Social de SRL, Contrato de Fideicomiso, Reglamento de Copropietarios.

  • Poder

  • Nómina o actas con determinación de miembros del órgano de administración u órgano equivalente: Documentación que acredite la designación vigente de autoridades según tipo societario; Actas de asamblea y directorio con designación de autoridades vigentes en una SA, actas con designación de socios gerentes de SRL, acta con designación del administrador en un Consorcio, etc.

  • Último Balance anual certificado por el CPCE: Si todavía no cuenta con su 1º Balance cerrado ni con un Balance inicial especial, por favor enviar documentación patrimonial que demuestre sus activos al día de la fecha, como certificación contable.

  • Copia del Registro de participación societaria: Registro de accionistas en SA, de socios en SRL, nómina de Fiduciantes en un Fideicomiso, nómina de socios participes en una SGR, nómina de copropietarios en un Consorcio. En caso de que, la titularidad del capital social presente un alto nivel de atomización por las características propias se tendrá por cumplido este requisito mediante la identificación de los integrantes del consejo de administración o equivalente y/o aquellos que ejerzan el control efectivo de la persona jurídica (Cooperativas, Asociaciones, Colegios profesionales, etc.).

  • Titularidad del capital social - indicación de Beneficiario final: Se debe completar y adjuntar el siguiente documento ESTRUCTURA SOCIETARIA. Se debe informar a los accionistas, personas jurídicas, que posean participación accionaria igual o mayor a 10%, hasta llegar en cada caso a los beneficiarios finales, entendidos estos como las personas humanas que detenten una participación directa o indirecta de un porcentaje igual o mayor al 10% del capital o derechos de voto de la persona jurídica.

  • Otros documentos societarios: Las personas legales con estructuras societarias complejas o diferentes a las mencionadas podrán agregar documentación adicional y pertinente

  • Documentación PEP : Si la persona física es PEP, deberá enviar alguno de los siguientes documentos; los últimos 3 recibos de sueldo, certificación contable de origen de los fondos, facturas o indemnizaciones, sentencias judiciales, escrituras de venta/compra, donaciones, prestamos, seguros.

GET/ contracts

Endpoint para consultar los contratos de las personas jurídicas y documentación PEP de personas físicas

  • URL del Endpoint: GET{{baseUrl}}/api/accounts/persons/contracts/:person_id/:legal_person_document

Consideraciones:

  • El valor para el parametro "legal_person_document" se debe completar con el nombre que fue guardado el archivo

POST/ investment-accounts ⚠️

⚠️ Este endpoint quedará inhabilitado. Usar /v2/investment-accounts

Endpoint para poder dar de alta una o mas cuentas comitentes vinculadas a personas.

En primer lugar, es necesario que se haya dado de alta una persona para luego poder vincularla a la cuenta comitente que estamos creando.

  • URL del Endpoint: POST/{{baseUrl}}/api/accounts/investment-accounts/

Dentro del objeto investment_accounts:

Campo Tipo Descripción Match
external_id str Identificador único de la petición. Lo envía el cliente, y sirve para evitar duplicados
market_type str Tipo del mercado en el que opera. Valor único por el momento stock_market
investment_profile Resultados de las preguntas que determinarán el "investment_risk_profile" master-tables: investor-questions
investment_risk_profile str Resultado del perfil de riesgo, valores posibles: AGGRESSIVE, MODERATE, CONSERVATIVE
person_account_type_id str Tipo de persona asociada a la cuenta. master-tables: person-accounts

Dentro del objeto owners:

Campo Tipo Descripción Match
person_id str Código de la persona que que vincula a la cuenta comitente
person_role_id str Rol de la persona master-tables: person_roles

Request:

{
  "investment_accounts": [
    {
      "external_id": "str",
      "person_account_type_id": "str",
      "investment_profile": {
        "1": "int",
        "2": "int",
        "3": "int",
        "4": "int"
      },
      "market_type": [],
      "owners": [
        {
          "person_id": "str",
          "person_role_id": "str"
        },
        {
          "person_id": "str",
          "person_role_id": "str"
        }
      ]
    },
    {
      "external_id": "str",
      "person_account_type_id": "str",
      "investment_profile": {
        "1": "int",
        "2": "int",
        "3": "int",
        "4": "int"
      },
      "market_type": [],
      "owners": [
        {
          "person_id": "str",
          "person_role_id": "str"
        }
      ]
    }
  ]
}

Response:

{
  "items": [
    {
      "external_id": "str",
      "investment_account_id": "int",
      "investment_risk_profile": "str",
      "error": {
        "error_code": "str",
        "message": "str"
      }
    },
    {
      "external_id": "str",
      "investment_account_id": "int",
      "investment_risk_profile": "str",
      "error": {
        "error_code": "str",
        "message": "str"
      }
    }
  ]
}

En caso de no haber error, el campo "error" viene en null.

POST/ v2/investment-accounts

Endpoint para poder dar de alta una o mas cuentas comitentes vinculadas a personas.

En primer lugar, es necesario que se haya dado de alta una persona para luego poder vincularla a la cuenta comitente que estamos creando.

  • URL del Endpoint: POST/{{baseUrl}}/api/accounts/v2/investment-accounts

Dentro del objeto investment_accounts:

Campo Tipo Descripción Match
external_id str Identificador único de la petición. Lo envía el cliente, y sirve para evitar duplicados
market_type str Tipo del mercado en el que opera. Valor único por el momento stock_market
investment_profile int Resultados de las preguntas que determinarán el "investment_risk_profile" master-tables: investor-questions
investment_risk_profile str Resultado del perfil de riesgo, valores posibles: AGGRESSIVE, MODERATE, CONSERVATIVE
person_account_type_id str Tipo de persona asociada a la cuenta. master-tables: person-accounts
  • Es importante aclarar que, para esta v2, se agrega un nuevo versionado para el investment_profile. En master-tables: investor-questions, se puede ver que ahora hay un versionado.

Dentro del objeto owners:

Campo Tipo Descripción Match
person_id str Código de la persona que vincula a la cuenta comitente Brindado por el usuario
person_role_id str Rol de la persona master-tables: person_roles

Request:

{
  "investment_accounts": [
    {
      "external_id": "str",
      "person_account_type_id": "str",
      "investment_profile": {
        "1": "int",
        "2": "int",
        "3": "int",
        "4": "int",
        "5": "int"
      },
      "market_type": [],
      "owners": [
        {
          "person_id": "str",
          "person_role_id": "str"
        },
        {
          "person_id": "str",
          "person_role_id": "str"
        }
      ],
      "referral_code": "str"
    },
    {
      "external_id": "str",
      "person_account_type_id": "str",
      "investment_profile": {
        "1": "int",
        "2": "int",
        "3": "int",
        "4": "int",
        "5": "int"
      },
      "market_type": [],
      "owners": [
        {
          "person_id": "str",
          "person_role_id": "str"
        }
      ],
      "referral_code": "str"
    }
  ]
}

Response:

{
  "items": [
    {
      "external_id": "str",
      "investment_account_id": "int",
      "investment_risk_profile": "str",
      "error": {
        "error_code": "str",
        "message": "str"
      }
    },
    {
      "external_id": "str",
      "investment_account_id": "int",
      "investment_risk_profile": "str",
      "error": {
        "error_code": "str",
        "message": "str"
      }
    }
  ]
}

En caso de no haber error, el campo "error" viene en null.

GET/ investment-accounts

Endpoint para consultar la informacion de una cuenta comitente por medio de pathParams.

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/investment-accounts/

Se debe enviar como pathParams el "investment_account_id" de la cuenta comitente que queremos consultar:

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/investment-accounts/{investment_account_id}

Se debe enviar como pathParams el "person_id" de la persona que queremos consultar:

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/investment-accounts/by-person-id/{person_id}

Para consultar los mercados asociados a una cuenta comitente, se debe enviar por queryParams: with_market_data=true. En caso de hacerlo se devolvera en el response el objeto "market_types" con la información de los mercados asociados. Actualmente, el único mercado disponible es "stock_market".

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/investment-accounts/:investment_account_id?with_market_data=true
Campo Tipo Descripción
market_type str Tipo de mercado (Ejemplo: stock_market).
is_created bool Indica si la cuenta para ese mercado fue creada correctamente.
data object Informacion de la cuenta creada en ese mercado.

En el objeto data en caso de ser un mercado de tipo stock_market:

Campo Tipo Descripción
market_account_id int Codigo de la cuenta comitente.
market_account_number int Número de la cuenta comitente.

Response

{
  "items": [
      {
        "investment_account_id": "int",
        "external_id": "str",
        "investment_risk_profile": "str",
        "owners":
            [
                {
                    "person_id": "str",
                    "person_role_id": "str"
                },
                {
                    "person_id": "str",
                    "person_role_id": "str"
                }
            ],
        "market_types": [
            {
              "market_type": "str",
              "is_created": "bool",
              "data": {
                "market_account_id": "int",
                "market_account_number": "int"
              }
            },
            {
              "market_type": "str",
              "is_created": "bool",
              "data": {
                "market_account_id": "int",
                "market_account_number": "int"
              }
            }
        ]
      }
  ]
}

Endpoint para agregar a una cuenta comitente a un nuevo mercado

  • URL del Endpoint: POST/{{baseUrl}}/api/accounts/investment-accounts/{investment_account_id}/add-market

Request

{
  "market_type": "str"
}

PUT/ investment-profile

  • URL del Endpoint: PUT/{{baseUrl}}/api/accounts/investment-profile/{investment_account_id}

Endpoint para actualizar la información de una cuenta proporcionada durante las preguntas iniciales en la creacion de la misma. Las preguntas son de opción múltiple, por lo que para modificarlas, se debe enviar el número de la nueva opción seleccionada.

Las preguntas y el id de las mismas se pueden consultar en el endpoint de GET/{{baseUrl}}/api/master-tables/investor-questions

Request:

{
  "1": 1,
  "2": 1,
  "3": 4
}

En el JSON, la clave representa el número de la pregunta y el valor es la nueva opción seleccionada.

Response:

{
  "items": [
    {
      "investment_risk_profile": "str",
      "investment_account_id": "int"
    }
  ]
}

POST/ bank-accounts

Endpoint para dar de alta una o mas cuentas bancarias y vincularlas a un investment_account_id.

La cuenta bancaria debe ser SAME NAME (mismo nombre) que la persona física del investment_account_id.
En caso de ser una persona jurídica, la cuenta bancaria también debe ser SAME NAME.

  • URL del Endpoint: POST/{{baseUrl}}/api/accounts/bank-accounts/
Campo Tipo Descripción Match
investment_account_id int Código del comitente
bank_entity_id int Código de la institución bancaria master-tables: bank-entities
currency_id str Código de la moneda master-tables: currencies
cbu str CBU (Clave Bancaria Uniforme). Se debe enviar cbu o alias, al menos uno obligatorio.
alias str Alias de la cuenta bancaria. Se debe enviar cbu o alias, al menos uno obligatorio.
bank_account_type_id str Tipo de cuenta bancaria master-tables: bank_account_types

Request:

{
  "bank_accounts": [
    {
      "investment_account_id": "int",
      "currency_id": "str",
      "cbu": "str",
      "alias": "str"
    }
  ]
}

Response:

{
  "items": [
    {
      "investment_account_id": "int",
      "cbu": "str",
      "alias": "str",
      "bank_account_id": "str",
      "error": {
        "error_code": "str",
        "message": "str"
      }
    }
  ]
}

En caso de no haber error, el campo "error" viene en null.

GET/ bank-accounts

Endpoint para obtener una lista de cuentas bancarias.

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/bank-accounts/

Se envia como pathParams el "bank_account_id" para obtener los datos de una cuenta bancaria específica.

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/bank-accounts/{bank_account_id}

Response:

{
  "items": [
    {
      "investment_account_id": "int",
      "cbu": "str",
      "bank_account_id": "str",
      "currency_id": "str",
      "alias": "str",
      "bank_entity_id": "int",
      "bank_account_type_id": "str"
    }
  ]
}

Se envia como queryParams el "investment_account_id" para obtener una lista de cuentas bancarias vinculadas a un comitente.

El campo "alias" es opcional en caso de mandarse "cbu". Puede directamente no mandarse el campo o mandarse vacio.

Url: GET/{{baseUrl}}/api/accounts/bank-accounts?investment_account_id={investment_account_id}

Response:

{
  "items": [
    {
      "investment_account_id": "int",
      "cbu": "str",
      "bank_account_id": "str",
      "currency_id": "str",
      "alias": "str",
      "bank_entity_id": "int",
      "bank_account_type_id": "str"
    },
    {
      "investment_account_id": "int",
      "cbu": "str",
      "bank_account_id": "str",
      "currency_id": "str",
      "alias": "str",
      "bank_entity_id": "int",
      "bank_account_type_id": "str"
    }
  ]
}

PUT/ bank-accounts

Endpoint para actualizar el ALIAS unicamente de una cuenta bancaria.

  • URL del Endpoint: PUT/{{baseUrl}}/api/accounts/bank-accounts

Se debe enviar como pathParams el "bank_account_id" de la cuenta bancaria que se quiere actualizar.

  • URL del Endpoint: PUT/{{baseUrl}}/api/accounts/bank-accounts/{bank_account_id}

Request:

{
  "alias": "str"
}

Response:

{
  "items": [
    {
      "investment_account_id": "int",
      "cbu": "str",
      "bank_account_id": "str",
      "currency_id": "str",
      "alias": "str",
      "bank_entity_id": "int",
      "bank_account_type_id": "str"
    }
  ]
}

DELETE/ bank-accounts

Endpoint para anular una cuenta bancaria.

  • URL del Endpoint: DELETE/{{baseUrl}}/api/accounts/bank-accounts

Se debe enviar como pathParams el "bank_account_id" de la cuenta bancaria que se quiere dar de baja.

Request:

  • URL del Endpoint: DELETE/{{baseUrl}}/api/accounts/bank-accounts/{bank_account_id}

Response:

{
  "Message": "La cuenta fue anulada exitosamente".
}

GET/ investment-accounts/all

Endpoint para obtener todas las cuentas comitentes que le corresponden al cliente.

Request:

  • URL del Endpoint: GET/{{baseUrl}}/api/accounts/investment-accounts/all

Response:

{
  "items": [
    {
      "investment_account_ids": ["int", "int"]
    }
  ]
}