SFTP Delivery
MX has halted SFTP enablement. New integrations should use the API endpoints as outlined in Using The Reporting API. Current integrations will remain supported.
You may optionally have us deliver your daily reporting files to an SFTP (Secure File Transfer Protocol) server rather than retrieving them through the API endpoints. In order to do so, there are certain requirements.
- You must provide an SFTP server.
- You must provide a public GPG key.
- SFTP server must use a non-standard port, i.e., not port 22
- You must provide a username and password to MX for authentication to the SFTP server.
- We need to whitelist any IP addresses for your SFTP server.
If a particular resource has no data for a given day, an Avro file with headers but no body is generated and delivered.
When using an SFTP, if your IP addresses ever change, you will need to contact MX to have them updated or you will not receive the daily avro files.
Daily Files Manifest
Using SFTP also sends an encrypted manifest file in CSV format containing information about each daily file being delivered. This includes the resource type, the event type (created, updated, etc.), the date, number of records, and file size. Each row in the manifest file represents one daily file in the bunch.
Each manifest file is named according to the following format: client_guid.snapshot_date-manifest.csv.pgp.
Manifest files are encrypted using the same public key as the daily files.
Manifest File Fields
| Field name | Data type | Definition |
|---|---|---|
Checksum | String | The SHA-256 hash value of the daily file. |
EffectiveDate | String | The date for which the daily file was generated, given in ISO 8601 format with a timestamp. |
EncryptedFileSize | Integer | The size of the encrypted daily file in bytes. |
EventType | String | The action for the given resource, i.e., created, updated, deleted. |
FileName | String | The name of the daily file without file extension. |
FileSize | Integer | The size of the daily file in bytes. |
RecordCount | Integer | The number of records in the daily file. |
ResourceType | String | The type of resource for the daily file, e.g. accounts, analytics events, budgets, etc. |
Resource Types
New resource types may be added at any time.
ACCOUNTSANALYTICS_EVENTSANALYTICS_PAGEVIEWSANALYTICS_SCREENVIEWSANALYTICS_TIMED_EVENTSBEAT_FEEDBACKBEATBUDGETSCATEGORIESDEVICESDISCOVERED_ACCOUNTSDISCOVERED_TRANSACTIONSGOALSHOLDINGSMEMBERSNOTIFICATION_PROFILESTAGGINGSTAGSTRANSACTIONSUSER_COMMUNICATION_PROFILESUSERS
Event types
CREATEDDELETEDUPDATED
Example manifest file contents
_10ResourceType,EventType,RecordCount,EffectiveDate,FileSize,EncryptedFileSize,Checksum,FileName_10USERS,DELETED,0,2020-06-14,1274,1198,8f3bd95d1c7dce50bee215dd8271bdc9b3409ef2cfb057cc7617f91686d28091,CLT-0858efd1-2d2e-6a5d-f2b5-c7dad42ef184.2020-06-14.users.deleted_10USERS,UPDATED,0,2020-06-14,1274,1187,f3318a7071074bd0cb70bc4f0ce5d51cca0cc5bdfdc8d4b1054446f6fa6dbc98,CLT-0858efd1-2d2e-6a5d-f2b5-c7dad42ef184.2020-06-14.users.updated_10TRANSACTIONS,DELETED,0,2020-06-14,3107,3057,5dc55906519b3936ab9dbc5857db8605cf71f875085d9b359e654d48042ce691,CLT-0858efd1-2d2e-6a5d-f2b5-c7dad42ef184.2020-06-14.transactions.deleted
Providing a Public PGP Key
To enable the Reporting API, you must provide a public PGP key in PEM format. MX uses this key to encrypt the files you will receiving.
PGP (Pretty Good Privacy) is an encryption program that provides cryptographic privacy and authentication for data communication. PGP is used for signing, encrypting, and decrypting texts, e-mails, files, directories, and to increase the security of e-mail communications.
If you are unfamiliar with using PGP keys, reach out to your development and IT teams or ask your MX representative or our support team for help.
There are many tools available for generating PGP keys, including the commonly used GnuPG. GnuPG is a complete and free implementation of the OpenPGP standard.