Bulk consumer profiles
The bulk consumer profile feature provides you with the ability to migrate and create a large batch of consumer profiles with their payment instrument data. These consumer profiles can be used within Commerce Center, Online Payments API, and Checkout API.
Before you begin
A few things to keep in mind before you can utilize the bulk profile feature:
- Contact your relationship manager to begin the onboarding process for Managed File Transfer Support (MFTS) and receive your folder link and credentials.
- Bulk files are divided into two file types:
- Control file — Contains the metadata of the data file.
- Data file — Contains the profile data that is used to create consumer profiles.
- The data file has a size limit of up to 1 GB (gigabyte).
- The data in the control and data files must be pipeline delimited.
How it works
The following is a high-level diagram of the bulk profile process:
You must perform the following steps to initiate the bulk profile creation process with the Managed File Transfer Support (MFTS) service.
- Request a J.P. Morgan Pretty Good Privacy (PGP) public key from your J.P. Morgan representative. This public key is generated by Consumer Profile Management (CPM).
- Submit your public key to your J.P. Morgan representative.
- Create the control file, which contains the metadata of the data file.
- Ensure that the contents of the file are in the control file format and the filename is in the format: <SUBMITTER_ID>M_<MERCHANT-ID>_YYYYMMDDHHSS_<File Index Number>_ctrl.csv
- Create the data file, which contains the profile and payment data.
- Ensure that the contents of the file are in the data file format and the filename is in the format: <SUBMITTER_ID>M_<MERCHANT-ID>_YYYYMMDDHHSS_<File Index Number>_data.csv
- Put the control and data file into a zip file and encrypt it using the Pretty Good Privacy (PGP) encryption with the J.P. Morgan public key. Ensure the filename is in the format: <SUBMITTER_ID>M_<MERCHANT-ID>_YYYYMMDDHHSS_<File Index Number>_data.zip.gpg
- Place the encrypted zip file into the provided MFTS folder.
- CPM picks up the file from the MFTS folder.
- CPM bulk profile performs the following actions:
- Decrypts the file.
- Unzips the file to retrieve the control and data files.
- Validates the control and data files.
- If the file passes validation, CPM creates an encrypted acknowledgement response file and places it in the MFTS folder with the filename format: <SUBMITTER_ID>M_<MERCHANT-ID>_YYYYMMDDHHSS_<File Index Number>_ack.csv.gpg
- if the file fails validation, CPM creates an encrypted error response file and places it in the MFTS folder with the filename format: <SUBMITTER_ID>M_<MERCHANT-ID>_YYYYMMDDHHSS_<File Index Number>_error.csv.gpg
- Processes the successfully validated file and creates consumer profiles based on the data.
- Stores sensitive information in the vault.
- Creates an encrypted response file and places it in the MFTS folder with the filename format: <SUBMITTER_ID>M_<MERCHANT-ID>_YYYYMMDDHHSS_<File Index Number>_response.csv.gpg
- Download the response files from the provided MFTS folder. (All response files are encrypted using PGP encryption with your public key.)
Bulk files format
.The bulk files that you submit are divided into two files:
- Control file — Contains the meta data of the data file.
- Data file — Contains the profile data that is used to create consumer profiles.
The data in the control file must be pipeline delimited. If no data is provided for a column, you must enter a space to indicate that.
Control file format
The control file consists of the metadata of the data file and must be in the following format.
Column family | Column name | Description | Required(R) or Optional (O) |
---|---|---|---|
Header row | CurrFileRecordCount | Total count of the records in the data file that needs to be imported to CPM. This value must match the exact count of the data file records. | R |
Header row | CurrFileCreatedOn | Timestamp of when the data was created. The format is: YYMMDD HHMMSS
For example, February 16, 2011, 2:30 p.m. must be entered as: 20110216 143000 |
R |
Header row | CurrFileCreatedBy | The system or merchant who created the data. | O |
Header row | CurrRecordFileName | The name of the data file which has the profile data to be exported. | R |
Header row | CurrControlFileName | The name of the control file. | R |
Header row | TotalRecordsBulkImport | The total number of profiles under the merchant that is migrated to CPM, as part of bulk import. | O |
Header row | FileIndex | The index of the file, which ranges from 1 - N. For example, if total data is 25000, they are split by 1000 and will have values from 1 – 25. This value has to be unique if sent multiple times within the same day. | R |
Header row | MIDScopes | Merchant identifier. | R |
Header row | ColumnsIndexed | Indicates if the columns are indexed. Valid value is: FALSE | R |
Header row | RecordsOrderedBy | Indicates how the records are ordered. Valid values are:
|
R |
Header row | Checksum | Checksum value of the data file using SHA-256 (Secure Hash Algorithm). | R |
Header row | DataFileFormat | The file format of the data file. Valid value is: JSON |
R |
Header row | Version | Version of the file. Valid value is:
|
R |
Header row | SubmitterID | Identifier of the calling application that is auto-generated by CPM. CPM provides you this ID when you onboard the bulk profile feature or when a public key is generated for you. | R |
Header row | ActionType | Indicates the operation that needs to be performed on profiles supplied in the data file. Assumes the presence of JPMCWID in the data if an operation is done against an existing profile. Valid value is:
|
O |
Data file format
The data file consists of the data that is used to create consumer profiles. A few things to keep in mind:
- You can add multiple emails.
- You can add multiple methods of payment but only one of them can be marked as the default method of payment.
- The values in the data file must be pipeline delimited. If no value is provided for a column, you must enter a space to indicate that.
Column family | Column name | Description | Length (Max) | Required (R), Optional (O), or Conditional (C) |
---|---|---|---|---|
Profile Import Data | rowUUID | Unique identifier for the row. | R | |
Profile Import Data | profileImportData | Refers to the Basic Profile structure for an individual. | R |
Column family | Column name | Description | Length (Max) | Required (R), Optional (O), or Conditional (C) |
---|---|---|---|---|
Basic Profile | First Name | The first name of the consumer. Allowed special characters are:
Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Basic Profile | Last Name | The last name of the consumer. Allowed special characters are:
Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Basic Profile | Profile Status | Status of the consumer profile. Valid values are:
|
O | |
Basic Profile | fullName | That part of an individual's full name considered a personal name or given name and generally positioned before the last name or family name. | 70 | O |
Communication-Phone |
phoneNumber | The phone number of the consumer. Only numeric values allowed. Regular expression: [0-9]* |
17 | O |
Communication-Phone | countryCode | The telephone dialing prefix for a member country in the International Telecommunication Union (ITU) that is defined by the ITU-T E.164 standard. Optional + sign and numeric values allowed. Regular expression: \\+?[0-9]+ |
4 | O |
Communication-Phone | phoneNumberType | The type of formatted numeric address for routing voice or data communications via telephony to reach a party. Accepts both uppercase, lower case, numbers, and special characters. Allowed special characters are:
Regular expression: [A-Za-z0-9 .-]* |
25 | O |
Communication-Email |
emailAddress | The email address of the consumer. Accepts both uppercase, lower case, numbers, and special characters. Allowed special characters are:
Regular expression: [A-Za-z0-9_.@/\\-]* |
60 | C |
Communication-Email | emailAddressType | The type of email address. Accepts both uppercase, lowercase, numbers, and special characters. Allowed special characters are:
Regular expression: [A-Za-z0-9_.@/\\-]* |
25 | C |
Profile Card |
cardExpirationMonthYearNumber | A number in the form of Month/Year that is displayed on a card (debit/credit). This number is used for the date, which is no longer in effect for transactions being processed at the point of sale. Regular expression: (0[1-9]|1[0-2])[/][0-9][0-9][0-9][0-9] |
O | |
Profile Card | accountNumber | The card account number. Regular expression: [0-9]* |
19 | O |
Profile Card | accountStatus | The current status of the card. Allowed values are:
|
10 | O |
Profile Card | cardType | Codifies the method used to pay for the exchange of money, goods or services between a merchant and their customer, such as:
Regular expression: [A-Za-z]* |
2 | O |
Profile Card | firstName | The part of an individual's full name considered a personal name or given name. It is generally positioned before the last name or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Card | middleName | The part of an individual's name generally positioned between the first and family names, as a second given name or a maternal surname. (Note: in some instances, an individual may have multiple middle names) Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Card | lastName | The part of an individual’s name generally placed at the end of the given name. The last name is also known as the surname or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Card | defaultIndicator | Indicates if it is the default method of payment. | O | |
Profile Address |
firstName | The part of an individual's full name considered a personal name or given name. It is generally positioned before the last name or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Address | lastName | That part of an individual’s name generally placed at the end of the given name. The last name is also known as the surname or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Address | consumerAssignedAddressName | A short label defined by the consumer that allows them to refer to the address by name. E.g Home , Office , JohnDoe_Home Regular expression: ^[^<>]*$ |
75 | O |
Profile Address | primaryAddressIndicator | Indicates whether or not an address is the primary address for a given owner. Allowed values are:
|
O | |
Profile Address | addressType | The classification given to the various addresses captured for a party, such as Doing Business As Address, Legal Entity Address, and Tax Address. Allowed values are:
|
O | |
Profile Address | line1 | A portion of a party's address which is the line of the unstructured (unparsed) geographic street address containing any of the following: house number, street name, street direction, street type, dwelling type and number, PO Box number, rural delivery route number. Regular expression: ^[^<>{}]*$ |
100 | O |
Profile Address | line2 | A portion of a party's address which is the geographic area that is a municipality with legal power granted by a state/province charter. Regular expression: ^[^<>{}]*$ |
100 | O |
Profile Address | city | The geographic area that is a municipality with legal power granted by a state/province charter. Regular expression: [\\p{L}'. ]* |
50 | O |
Profile Address | state | Classifies a geographic area that represents a first level, legal and political subdivision of a country; for example, Virginia, Bavaria. Regular expression: [A-Za-z]* |
50 | O |
Profile Address | postalCode | The portion of a party’s address that is the encoded representation of a geographic area to facilitate mail delivery services. Regular expression: ^|([a-zA-Z0-9]+(-|\\s?)[a-zA-Z0-9]+)$ |
30 | O |
Profile Address | countryCode | A code that identifies the country, a geographic area, that is recognized as an independent political unit in world affairs. Note: This data element is a child of the Country Code CDE, and valid values are based on ISO standards. Regular expression: |([a-zA-Z]{2,3})$ |
O | |
Profile Address | addressStatus | The current status of the profile address. Allowed values are:
|
10 | O |
Profile ACH |
accountNumber | The ACH account number. Regular expression: [0-9]* |
17 | O |
Profile ACH | financialInstitutionRoutingNumber | Identifies the routing and transit number assigned by an administrative body to formally identify a chartered financial institution (bank) within a given country or common financial market for performing domestic transfers of funds to or from that institution's client accounts. Within the United States, this is known as the American Bankers Association Routing Number, and within Australia, this is known as a Bank State Branch Number. This common data element houses those two examples, along with the equivalent for any other country or financial market. Regular expression: [0-9]* |
9 | O |
Profile ACH | accountType | The bank account where funds are deposited or stored (e.g., checking and savings account). When shared with a financial institution as the client's primary automated payment mechanism for a debt, it may also be known as a DDA (Demand Deposit Account). A DDA can have funds withdrawn at any time from the depository institution, accessible by a teller, ATM or via online banking. | O | |
Profile ACH | accountStatus | The current status of the account. Allowed values are:
|
O | |
Profile ACH | firstName | The part of an individual's full name considered a personal name or given name. It is generally positioned before the last name or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
O | |
Profile ACH | middleName | The part of an individual's name generally positioned between the first and family names, as a second given name or a maternal surname. (Note: in some instances, an individual may have multiple middle names) Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile ACH | lastName | That part of an individual’s name generally placed at the end of the given name. The last name is also known as the surname or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile ACH | defaultIndicator | Indicates if it is the default method of payment. | O | |
Profile Address |
firstName | The part of an individual's full name considered a personal name or given name. It is generally positioned before the last name or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Address | lastName | That part of an individual’s name generally placed at the end of the given name. The last name is also known as the surname or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Address | consumerAssignedAddressName | A short label defined by the consumer that allows them to refer to the address by name. E.g Home , Office , JohnDoe_Home Regular expression: ^[^<>]*$ |
75 | O |
Profile Address | primaryAddressIndicator | Indicates whether or not an address is the primary address for a given owner. Allowed values are:
|
O | |
Profile Address | addressType | The classification given to the various addresses captured for a party, such as Doing Business As Address, Legal Entity Address, and Tax Address. Allowed values are:
|
O | |
Profile Address | line1 | A portion of a party's address which is the line of the unstructured (unparsed) geographic street address containing any of the following: house number, street name, street direction, street type, dwelling type and number, PO Box number, rural delivery route number. Regular expression: ^[^<>{}]*$ |
100 | O |
Profile Address | line2 | A portion of a party's address which is the geographic area that is a municipality with legal power granted by a state/province charter. Regular expression: ^[^<>{}]*$ |
100 | O |
Profile Address | city | The geographic area that is a municipality with legal power granted by a state/province charter. Regular expression: [\\p{L}'. ]* |
50 | O |
Profile Address | state | Classifies a geographic area that represents a first level, legal and political subdivision of a country: for example, Virginia, Bavaria. Regular expression: [A-Za-z]* |
50 | O |
Profile Address | postalCode | The portion of a party’s address that is the encoded representation of a geographic area to facilitate mail delivery services. Regular expression: ^|([a-zA-Z0-9]+(-|\\s?)[a-zA-Z0-9]+)$ |
30 | O |
Profile Address | countryCode | A code that identifies the country, a geographic area, that is recognized as an independent political unit in world affairs. Note: This data element is a child of the Country Code CDE and valid values are based on ISO standards. Regular expression: |([a-zA-Z]{2,3})$ |
O | |
Profile Address | addressStatus | The current status of the profile address. Allowed values are:
|
10 | O |
Profile SEPA |
internationalBankAccountNumber | Identifies the International Bank Account Number (IBAN) for the account. IBAN is an internationally agreed system of identifying bank accounts across national borders to facilitate the communication and processing of cross border transactions with a reduced risk of transcription errors. Based on ISO 13616 standards, the IBAN consists of up to 34 alphanumeric characters, comprising a country code, two check digits and a long and detailed bank account-number. The check digits enable a sanity check of the bank account number to confirm its integrity before submitting a transaction. Regular expression: ^[a-zA-Z]{2}[0-9]{2}[0-9a-zA-Z]{1,30}$ |
O | |
Profile SEPA | internationalBusinessIdentifierCode | The unique value that identifies a particular bank in the worldwide economy. The 8 to 11 digit code is based on ISO 9362 standards. This code has several aliases including SWIFT Code, SWIFT Bank Code and Bank Identification Code (BIC). ISO 9362:2014 specifies the elements and structure of a universal identifier code for financial and non-financial institutions where an international identifier is required to facilitate automated information processing for financial services. The BIC is used for addressing messages, routing business transactions and identifying business parties. This standard applies to organizations and excludes individual persons. Regular expression: ^[a-zA-Z]{6}[0-9a-zA-Z]{2}([0-9a-zA-Z]{3})?$ |
O | |
Profile SEPA | accountStatus | The current status of the account. Allowed values are:
|
O | |
Profile SEPA | firstName | The part of an individual's full name considered a personal name or given name. It is generally positioned before the last name or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile SEPA | middleName | The part of an individual's name generally positioned between the first and family names, as a second given name or a maternal surname. (Note: in some instances, an individual may have multiple middle names) Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile SEPA | lastName | That part of an individual’s name generally placed at the end of the given name. The last name is also known as the surname or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile SEPA | defaultIndicator | Indicates if it is the default method of payment. | O | |
Profile Address |
firstName | The part of an individual's full name considered a personal name or given name. It is generally positioned before the last name or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Address | lastName | That part of an individual’s name generally placed at the end of the given name. The last name is also known as the surname or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Address | consumerAssignedAddressName | A short label defined by the consumer that allows them to refer to the address by name. E.g Home , Office , JohnDoe_Home Regular expression: ^[^<>]*$ |
75 | O |
Profile Address | primaryAddressIndicator | Indicates whether or not an address is the primary address for a given owner. Allowed values are:
|
O | |
Profile Address | addressType | The classification given to the various addresses captured for a party, such as Doing Business As Address, Legal Entity Address, and Tax Address. Allowed values are:
|
O | |
Profile Address | line1 | A portion of a party's address which is the line of the unstructured (unparsed) geographic street address containing any of the following: house number, street name, street direction, street type, dwelling type and number, PO Box number, rural delivery route number. Regular expression: ^[^<>{}]*$ |
100 | O |
Profile Address | line2 | A portion of a party's address which is the geographic area that is a municipality with legal power granted by a state/province charter. Regular expression: ^[^<>{}]*$ |
100 | O |
Profile Address | city | The geographic area that is a municipality with legal power granted by a state/province charter. Regular expression: [\\p{L}'. ]* |
50 | O |
Profile Address | state | Classifies a geographic area that represents a first level, legal and political subdivision of a country; for example, Virginia, Bavaria. Regular expression: [A-Za-z]* |
50 | O |
Profile Address | postalCode | The portion of a party’s address that is the encoded representation of a geographic area to facilitate mail delivery services. Regular expression: ^|([a-zA-Z0-9]+(-|\\s?)[a-zA-Z0-9]+)$ |
30 | O |
Profile Address | countryCode | A code that identifies the country, a geographic area, that is recognized as an independent political unit in world affairs. Note: This data element is a child of the Country Code CDE and valid values are based on ISO standards. Regular expression: |([a-zA-Z]{2,3})$ |
O | |
Profile Address | addressStatus | The current status of the profile address. Allowed values are:
|
10 | O |
Profile SEPA - mandate | mandateId | Identifies an agreement between the consumer, debtor bank (direct debit account of the consumer) and the merchant. This agreement (mandate) gives the merchant permission to withdraw funds from the consumer's account for some specific financial purpose.
|
35 | O |
Profile SEPA - mandate | mandateType | The category of an agreement between the consumer, debtor bank (direct debit account of the consumer) and the merchant. This agreement (mandate) gives the merchant permission to withdraw funds from the consumer's bank account for some specific financial purpose.
|
35 | O |
Profile SEPA - mandate | mandateSignatureDate | Designates the year, month and day when the consumer signs an agreement (mandate) that gives the merchant permission to withdraw funds from the consumer's bank account for some specific financial purpose.
Regular expression: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ |
O | |
Profile BACS | accountNumber | The BACS account number. Regular expression: [0-9]* |
19 | O |
Profile BACS | bankSortCode | Identifies the routing and transit number assigned by an administrative body to formally identify a chartered financial institution (bank) within a given country or common financial market for performing domestic transfers of funds to or from that institution's client accounts. Within the United States, this is known as the American Bankers Association Routing Number, and within Australia, this is known as a Bank State Branch Number. This common data element houses those two examples, along with the equivalent for any other country or financial market. Regular expression: [0-9]* |
10 | O |
Profile BACS | accountStatus | The current status of the card. Allowed values are:
|
O | |
Profile BACS | firstName | The part of an individual's full name considered a personal name or given name. It is generally positioned before the last name or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile BACS | middleName | The part of an individual's name generally positioned between the first and family names, as a second given name or a maternal surname. (Note: in some instances, an individual may have multiple middle names) Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile BACS | lastName | That part of an individual’s name generally placed at the end of the given name. The last name is also known as the surname or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile BACS | defaultIndicator | Indicates if it is the default method of payment. | O | |
Profile Address |
firstName | The part of an individual's full name considered a personal name or given name. It is generally positioned before the last name or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Address | lastName | That part of an individual’s name generally placed at the end of the given name. The last name is also known as the surname or family name. Regular expression: [A-Za-z'. 0-9,/&-]* |
40 | O |
Profile Address | consumerAssignedAddressName | A short label defined by the consumer that will allow them to refer to the address by name. E.g., Home , Office , JohnDoe_Home Regular expression: ^[^<>]*$ |
75 | O |
Profile Address | primaryAddressIndicator | Indicates whether or not an address is the primary address for a given owner. Allowed values are:
|
O | |
Profile Address | addressType | The classification given to the various addresses captured for a party, such as Doing Business As Address, Legal Entity Address, and Tax Address. Allowed values are:
|
O | |
Profile Address | line1 | A portion of a party's address which is the line of the unstructured (unparsed) geographic street address containing any of the following: house number, street name, street direction, street type, dwelling type and number, PO Box number, rural delivery route number. Regular expression: ^[^<>{}]*$ |
100 | O |
Profile Address | line2 | A portion of a party's address which is the geographic area that is a municipality with legal power granted by a state/province charter. Regular expression: ^[^<>{}]*$ |
100 | O |
Profile Address | city | The geographic area that is a municipality with legal power granted by a state/province charter. Regular expression: [\\p{L}'. ]* |
50 | O |
Profile Address | state | Classifies a geographic area that represents a first level, legal and political subdivision of a country; for example, Virginia, Bavaria. Regular expression: [A-Za-z]* |
50 | O |
Profile Address | postalCode | The portion of a party’s address that is the encoded representation of a geographic area to facilitate mail delivery services. Regular expression: ^|([a-zA-Z0-9]+(-|\\s?)[a-zA-Z0-9]+)$ |
30 | O |
Profile Address | countryCode | A code that identifies the country, a geographic area, that is recognized as an independent political unit in world affairs. Note: This data element is a child of the Country Code CDE and valid values are based on ISO standards. Regular expression: |([a-zA-Z]{2,3})$ |
O | |
Profile Address | addressStatus | The current status of the profile address. Allowed values are:
|
10 | O |
Profile BACS - Mandate | mandateId | Identifies an agreement between the consumer, debtor bank (direct debit account of the consumer) and the merchant. This agreement (mandate) gives the merchant permission to withdraw funds from the consumer's account for some specific financial purpose.
|
35 | O |
Profile BACS - Mandate | mandateType | The category of an agreement between the consumer, debtor bank (direct debit account of the consumer) and the merchant. This agreement (mandate) gives the merchant permission to withdraw funds from the consumer's bank account for some specific financial purpose.
|
35 | O |
Profile BACS - Mandate | mandateSignatureDate | Designates the year, month and day when the consumer signs an agreement (mandate) that gives the merchant permission to withdraw funds from the consumer's bank account for some specific financial purpose.
Regular expression: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ |
O |
File validation
File validation is performed on the control and data files you submit. File validation is done for the following scenarios:
- The file couldn't be parsed.
- The file type is different.
- The file size exceeds the maximum limit.
- The file content or column validation fails.
Based on the validation results, an appropriate file is sent in response.
There are two types of files that are sent back to you:
- Acknowledgement file
- Error file
Acknowledgement file
The acknowledgement file is sent back to let you know that the file you submitted was received, along with the following details:
Column family | Column name | Description |
---|---|---|
ACK Response | Submitter_System_ID | The calling system's identifier. |
ACK Response | Merchant_ID | The merchant identifier. |
ACK Response | File_Name | The file name of the zipped folder. |
ACK Response | File_Index | Index of the file. |
ACK Response | Submission_Date_Time | The date and time when the request was received by CPM. The format is: YYMMDD HHMMSS
For example, February 16, 2011 2:30 p.m. must be entered as: 20110216 143000 |
ACK Response | Profile_Record_Count | The total count of the profile record. |
ACK Response | Response_Date_Time | The date and time when CPM generated the ACK file. |
Error file
An error file with the error details is sent when the files you submit fail at any stage of processing. The following lists the possible error responses:
Column family | Column name | Description |
---|---|---|
Error Response | Submitter_System_ID | The calling system's identifier. |
Error Response | Merchant_ID | The merchant identifier. |
Error Response | File_Name | Name of the file. |
Error Response | File_Index | Index of the file. |
Error Response | Submission_Date_Time | The date and time when the request was received by CPM. The format is: YYMMDD HHMMSS
For example, February 16, 2011 2:30 p.m. must be entered as: 20110216 143000 |
Error Response | Error_Code | The error code that indicates the reason for failure. |
Error Response | Error_Reason | The reason why the error occured. |
Error Response | Response_Date_Time | The date and time when the error File is sent |
Error codes
The following error codes help you identify the reason why a file failed during processing:
Error code | Description |
---|---|
MP_FTG_DECRYPTION_FAIL-008 | Unable to decrypt the file. |
MP_FTG_MID_ENABLEMENT_FAIL-009 | Merchant ID is not enabled. |
MP_FTG_FILE_FORMAT_FAIL-011 | File is not in CSV Format. |
MP_FTG_UNZIP_FILE_FAIL-012 | Unzipping the data and ctrl file failed. |
MP_FTG_DUPLICATE_FILE_INDEX-013 | Duplicate file index. |
MP_FTG_FILE_INDEX_MISMATCH-014 | File index mismatch in the control and data file. |
MP_FTG_CHECKSUM_FAIL-015 | Checksum validation failed. |
MP_FTG_CTRL_FILE_READ_FAIL-016 | Error while reading the control file. |
MP_FTG_FILE_SIZE_VALIDATION-017 | File size validation is beyond the max limit. |
MP_FTG_FILE_VALIDATION_ERROR-018 | Error while validating the files. |
MP_FTG_INVALID_FILE_NAME-020 | Invalid file name convention. |
MP_FTG_MERCHANT_KEY_ERROR-021 | Error while fetching the merchant key. |
MP_FTG_CURR_RECORD_FILE_NAME_FAIL | CurrRecordFileName in control file and the data filename does not match. |
MP_FTG_CURR_CONTROL_FILE_NAME_FAIL | CurrControlFileName and the control file name does not match. |
MP_FTG_CONTROL_FILE_INDEX_FAIL | Control file index mismatch. |
MPBI_VALD_002 | Record count validation error. |
MPBI_VALD_003 | Data file name validation Error. |
MPBI_VALD_004 | Duplicate row UUID validation error. |
MPBI_VALD_005 | Empty row UUID validation Error. |
Retrieve the status of bulk consumer profile import
You can retrieve the status of your bulk consumer profile import by performing a GET
call to the /bulk-import/status
endpoint and providing the values for the following fields in the headers:
merchantFileName
— The file name of the bulk import file.merchantIdentifier
— Unique entity for transaction processing.submitterIdentifier
— The submitter ID of the bulk import file.
HTTP method: GET
Endpoint: /bulk-import/status
Scenario: Retrieving the status of a bulk import for merchantIdentifier = 111111111111
, submitteridentifier = orbital
, and merchantfilename = orbitalM_111111111111_2025051270892_68848_data.csv
{
"requestId": null,
"merchantId": "111111111111",
"merchantFileName": "orbitalM_111111111111_2025051270892_68848_data.csv",
"submitterIdentifier": "orbital",
"totalRecordCount": 10,
"processedRecordCount": 0,
"erroredRecordCount": 0,
"fileReceivedTimestamp": "2025-05-12T00:00:26.071137092",
"finalResponseTimestamp": "2025-05-12 01:21:48",
"ackResponseTimestamp": "2025-05-12T00:23:51.129577795",
"errorResponseTimestamp": null,
"fileFormat": "COLUMN_BASED",
"fileVersion": "v1",
"overallFileStatus": "COMPLETED_SUCCESSFULLY",
"overallFileStatusDescription": null,
"fileProcessCompletionPercent": "100.0",
"bulkTokenizationStatus": {
"toknRequestFilesExpectedCount": 1,
"toknRequestFilesCreatedCount": 0,
"toknResponseFilesReceivedCount": 0,
"toknRequestFilesSentPercent": "0.0",
"toknResponseFilesReceivedPercent": "0.0"
}
}