Skip to main content

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:

Bulk profile process flow

You must perform the following steps to initiate the bulk profile creation process with the Managed File Transfer Support (MFTS) service.

  1. 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).
  2. Submit your public key to your J.P. Morgan representative.
  3. 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
  4. 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
  5. 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
  6. Place the encrypted zip file into the provided MFTS folder.
  7. CPM picks up the file from the MFTS folder.
  8. CPM bulk profile performs the following actions:
    1. Decrypts the file.
    2. Unzips the file to retrieve the control and data files.
    3. 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
    4. Processes the successfully validated file and creates consumer profiles based on the data.
    5. Stores sensitive information in the vault.
    6. 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
  9. 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.

Control file format details
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

  • YY = Year
  • MM = Month
  • DD = Day
  • HH = Hour (24-hour clock)
  • MM = Minute
  • SS = Second

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: 

  • NONE — No ordering
  • RecordId — Order by record ID
  • Last_AccessedTS — Order by last accessed timestamp
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:
  • V2 — For JSON based file format.
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:

  • Create
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.
Data file format details
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
Profile import data format details
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:

  • .
  • /
  • &
  • -
  • space

Regular expression: [A-Za-z'. 0-9,/&-]*

40 O
Basic Profile Last Name

The last name of the consumer. Allowed special characters are:

  • .
  • /
  • &
  • -
  • space

Regular expression: [A-Za-z'. 0-9,/&-]*

40 O
Basic Profile Profile Status

Status of the consumer profile. Valid values are:

  • Active
  • Inactive
  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:

  • space
  • .
  • -

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:

  • space
  • .
  • -

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:

  • ACTIVE
  • INACTIVE
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:

  • VI
  • MC
  • AX.
  • HC
  • EO
  • DI
  • JC
  • DC
  • CC
  • CZ
  • CR
  • OX
  • IM
  • SP
  • PP
  • AP
  • NP
  • VR
  • MR

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:

  • TRUE
  • FALSE
  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:  

  • SHIPPING
  • BILLING
  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:

  • ACTIVE
  • INACTIVE
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:

  • ACTIVE
  • INACTIVE
  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:

  • TRUE
  • FALSE
  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:  

  • SHIPPING
  • BILLING
  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:

  • ACTIVE
  • INACTIVE
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:

  • ACTIVE
  • INACTIVE
  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:

  • TRUE
  • FALSE
  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:  

  • SHIPPING
  • BILLING
  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:

  • ACTIVE
  • INACTIVE
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. 

  • Mandates are used for recurring or installment payments; that is, a fixed amount to be withdrawn over a specific period of time (defined by the “Mandate Date”). 
  • One-time withdrawals are allowed. 
  • Mandates are specific to European programs such as Single Euro Payments Area (SEPA) Direct Debit (DD) scheme and Bankers' Automated Clearing System (BACS).
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. 

  • Mandates are used for recurring or installment payments; that is, a fixed amount to be withdrawn over a specific period of time (defined by the “Mandate Date”). 
  • One-time withdrawals are allowed. 
  • Mandates are specific to European programs such as Single Euro Payments Area (SEPA) Direct Debit (DD) scheme and Bankers' Automated Clearing System (BACS).
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.

  • Mandates are used for recurring or installment payments; that is, a fixed amount to be withdrawn over a specific period of time (defined by the “Mandate Date”). 
  • One-time withdrawals are allowed. 
  • Mandates are specific to European programs such as Single Euro Payments Area (SEPA) Direct Debit (DD) scheme and Bankers' Automated Clearing System (BACS).

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:

  • ACTIVE
  • INACTIVE
  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:

  • TRUE
  • FALSE
  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:  

  • SHIPPING
  • BILLING
  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:

  • ACTIVE
  • INACTIVE
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. 

  • Mandates are used for recurring or installment payments; that is, a fixed amount to be withdrawn over a specific period of time (defined by the “Mandate Date”). 
  • One-time withdrawals are allowed. 
  • Mandates are specific to European programs such as Single Euro Payments Area (SEPA) Direct Debit (DD) scheme and Bankers' Automated Clearing System (BACS).
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. 

  • Mandates are used for recurring or installment payments; that is, a fixed amount to be withdrawn over a specific period of time (defined by the “Mandate Date”). 
  • One-time withdrawals are allowed. 
  • Mandates are specific to European programs such as Single Euro Payments Area (SEPA) Direct Debit (DD) scheme and Bankers' Automated Clearing System (BACS).
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.

  • Mandates are used for recurring or installment payments; that is, a fixed amount to be withdrawn over a specific period of time (defined by the “Mandate Date”). 
  • One-time withdrawals are allowed. 
  • Mandates are specific to European programs such as Single Euro Payments Area (SEPA) Direct Debit (DD) scheme and Bankers' Automated Clearing System (BACS).

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:

Acknowledgement file 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

  • YY = Year
  • MM = Month
  • DD = Day
  • HH = Hour (24-hour clock)
  • MM = Minute
  • SS = Second

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:

Error file details
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

  • YY = Year
  • MM = Month
  • DD = Day
  • HH = Hour (24-hour clock)
  • MM = Minute
  • SS = Second

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 details
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 = 111111111111submitteridentifier = orbital, and merchantfilename = orbitalM_111111111111_2025051270892_68848_data.csv

Json
{
    "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"
    }
}