Skip to main content

Bulk Register Candidates

POST /bulk-loading/upload

This endpoint registers candidates in bulk by attaching a CSV file with any number of candidates.

Query Parameters​

NameTypeRequiredValue / Example
registerTypestringYesMethod used to register new candidates. Options: byName, byNationalId

File​

ParameterTypeRequiredValue / Example
fileForm DataYesCSV file with a maximum size of 5MB

CSV File Template​

The file must be a .csv with a header row followed by one row per candidate. The template depends on the value of registerType.

Headers must match exactly

Use the column names exactly as shown below, respecting upper/lower case and underscores (for example clientId, country_id, package_id, lastname). A column with a different name is treated as missing. We recommend including all the template columns, even when empty. Empty rows are ignored.

Registers the candidate from their official ID.

clientId,country_id,national_id,package_id,email,btrustProfile,btrustCategories,rfc,nss,personalReferences
cl_123456,MX,MARD020406MDFSMNA8,pkg_789012,maria.rodriguez@example.com,,,,,
cl_123456,MX,GOLJ850315HJCNPN04,pkg_789012,juan.gonzalez@example.com,,,GOLJ850315AB1,12345678901,3
ColumnRequiredDescription
clientIdYesYour client identifier in Blacktrust.
country_idYesCandidate's country, in ISO Alpha-2 or Alpha-3 (MX or MEX). See Supported Countries.
national_idYesOfficial ID. It must match the country's format (in Mexico, the 18-character CURP).
package_idYesIdentifier of the package of Processes to run.
emailConditionalRequired if the package requires the candidate to have a user.
btrustProfileConditionalRequired if the package includes BTrust. See package-dependent columns.
btrustCategoriesConditionalRequired if btrustProfile is personalizado.
rfcConditionalRequired if the package includes SAT Lists.
nssNoSocial Security Number (11 digits).
personalReferencesConditionalRequired if the package includes Personal References.

Package-dependent columns​

Columns marked Conditional depend on the Processes included in your package. Leave them empty when they do not apply.

ColumnDetail
btrustProfileBTrust profile to apply. Use personalizado to pick specific categories.
btrustCategoriesBTrust categories in a single column, comma-separated (cat1,cat2).
personalReferencesNumber of references to request (greater than 0).

There are also columns that are not part of the base template and that you should add only when they apply:

ColumnWhen to add itDescription
telephoneOptional.Candidate's phone number.
birthDateOptional in byNationalId.Date of birth in DD/MM/YYYY format.
costCenterOnly if your client has cost centers enabled (then it is mandatory).Identifier of a cost center visible to your client.
calculateRfcPackages with the RFC validation process.true to calculate the RFC from the name and date of birth, false to send it in rfc.
fiscalPostalCodePackages with the RFC validation process.5-digit fiscal postal code, as text (keeps the leading zero, e.g. 06600).
General rules
  • Maximum file size: 5MB.
  • If any row is missing a mandatory column or value (clientId, country_id, package_id and those specific to each registerType), the whole file is rejected with 400 and no candidate is registered.
  • Format and business validations (date, sex, state, national_id, email, rfc, etc.) are applied per candidate after the upload. Those that fail are reported in the error file available when you query the upload status.
  • Natural-person files must not include the legalName, companyType or incorporationDate columns: if present, the file is rejected.

API Responses​

Below is an example of the response structure.

{
"isSuccess": true,
"statusCode": 201,
"message": "Success",
"data": {
"uuid": "7203d1d6-53ea-4837-8c9a-6690f0c9d07e",
"message": "File uploaded successfully"
}
}

UUID in Response

The UUID received in the response can later be used to check the status of the uploaded file and of each candidate it contained.