Introduction
YayPay allows integration with our platform using CSV files. CSV files should contain the data that YayPay needs to operate. Depending on your setup, you can generate these CSV files either through your ERP reporting tools or by utilizing your preferred ETL/Integration software.
All the CSV files must be included in a ZIP file and placed on your FTP server. For more info, see the see the Connect YayPay to your FTP Server article.
YayPay requires the following entities in the CSV files:
- Customers
- Customers' contact details
- Invoices
- Invoice Items
- Payments, Credit Memos, and other documents that impact AR ledger.
- Transaction allocation information - what documents are allocated to what Invoices.
- Sales order (Optional)
The diagram below displays the relationships between the data objects listed above.
CSV files can be loaded either manually or automatically via the customer-configured FTP server.
There are two modes for uploading CSV data to YayPay:
Snapshot – Each CSV upload loads the entire snapshot of AR data from the ERP. This ensures that your data remains consistent, but it may take longer due to file size.
-
Incremental – After the initial data load, only updates to the documents are uploaded. However, if an upload fails and the subsequent one doesn't include the updated documents, they will remain in an incorrect state in YayPay.
We recommend using an incremental approach with a floating window for the updated documents. For example, you can send all documents updated within the last 7 days on a daily basis. This allows the synchronization process to correct any errors that may occur.
CSV integration is similar to regular integration, but with the added requirement of regularly uploading CSV files to YayPay. This ensures that the system remains updated with the client's AR data from their ERP. Regular CSV updates facilitate workflow collection and enable reminders to be sent to end-customers using the latest information. It is recommended to upload updated CSVs on a daily basis.
This following sections explain CSV format requirements and each CSV file in more detail.
CSV Format Requirements
YayPay requires CSVs to be in a specific format in order to process them correctly and to ensure that the values correspond to what is expected.
The following applies:
- All CSV files must be in the same zip file. The ZIP file must contain:
- customer.csv
- contact.csv
- invoice.csv
- invoiceLines.csv
- transaction.csv or transactionFull.csv
- transactionAllocations.csv
- salesOrder.csv (not obligatory)
-
The first row of the CSV files must always contain column names.
-
We recommend using quotation marks to enclose text so any data that includes a comma in the system doesn't shift the output.
- You can use the following data types:
Double – Represents any number with a decimal point (.) as a separator.
Boolean – Represents a string with the value true or false. The value is case-sensitive and must be in lowercase only.
String – Represents any string value.
-
Date – Represents a date in the format yyyy-MM-dd'T'HH:mm:ss. For example, a valid date would be 2017-08-13T11:05:19.
- The coding of the CSV file uploaded must be UTF-8. Other coding may bring the wrong display of symbols.
Customers
This CSV file should include information about all of the customers in the system, including ones that are not currently active.
Download customer.csv template
Filename MUST be: customer.csv
Name | Type | Accepted Values | Required | Description |
---|---|---|---|---|
internalId | String | yes |
This is the ID of the Customer in the ERP/internal system. The value will be shown as the ERP ID column in YayPay’s Aging Report (after the file import). The value is case sensitive. If you need this value to be also included in YayPay’s Email Templates (Subject line or the message body), or to be shown in YayPay’s Statement page, represent the value as a custom field column (see notes later). The custom field will be available as a data tag when configuring the Email Template. |
|
companyName |
String |
yes | Company name | |
String |
no | Main company email address. This is not the billing contact email. See Contacts Table. | ||
phone |
String |
no | Main company phone number. This is not the billing contact phone number. See Contacts Table. | |
altPhone |
String |
no | Alternative phone number | |
webAddress |
String |
no | Customer company page URL | |
creditLimit | Double | no | Credit Limit of the company | |
terms |
String |
Any relevant string - examples: Net 30, Net 60, etc. | no | Customer Terms as maintained in the ERP. This field is not shown in the YayPay Application by default. Represent it as a Custom Field again if needed |
parentId |
String |
no | Internal ID of the parent company if available. | |
balance | Double | no | Current AR balance of this company. | |
currency |
String |
USD, EUR, GBP, etc. | yes | ISO 4217 Currency Codes |
country |
String |
Germany, France, Dubai, etc. |
no |
Customer's country name. For the country name to be synchronized correctly, specify values for both the country_iso_code and state columns. |
city |
String |
no | Customer's city | |
state |
String |
AE-DU, SS-EC, GB-LND, AD-02 etc. |
no |
Customer's state ID. Standard country ISO 3166-1 code. For the country name to be synchronized correctly, specify values for both the country_iso_code and state columns. Optionally, you can use this column to specify counties or provinces instead of states, following the ISO 3166-2 standard. |
zip |
String |
no | Customer's zip code | |
line_1 |
String |
no | Customer's address line 1 | |
line_2 |
String |
no | Customer's address line 2 | |
is_deleted | Boolean | true or false | no | This is to represent that the record was de-activated /deleted from the source ERP system, and therefore also to be removed from YayPay if set to true. |
cf_* |
String |
no | Custom field columns. The value from these columns will be used if "customFields" column not exist. Examples: cf_field_1, cf_field_2,cf_field_3. | |
salesRepEmail |
String |
no |
Sales Representative email. The respective User type has to be created in YayPay first (under User Management), or already exist prior to the CSV file import. The value is CASE SENSITIVE. |
|
customerSuccessEmail |
String |
no |
Customer Success Specialist email The respective User type has to be created in YayPay first (under User Management), or already exist prior to the CSV file import. The value is CASE SENSITIVE. |
|
arManagerEmail | String | no |
AR Specialist email The respective User type has to be created in YayPay first (under User Management), or already exist prior to the CSV file import. The value is CASE SENSITIVE. |
|
dunsNumber | String | no | Customer's DUNS number | |
country_iso_code | String | CA, GB, LK, etc. | no |
Standard country ISO 3166-2 code. For the country name to be synchronized correctly, specify values for both the country_iso_code and state columns. If the country_iso_code column is left blank in the customer.csv file, the system will only show the state in the address field if it is a US state. If the state is located outside the US, it will not be recognized by the system and the address field will be empty on the Statement page. |
entityId | String | no |
The trigger to sync AR document by the entity ID (company). Do not fill this field without consulting your YayPay onboarding specialist. |
Contacts
This CSV should include contact details of the customer and/or invoice that will be part of the recipients used in the collection workflows.
Filename MUST be: contact.csv
Name | Type | Accepted Values | Required | Description |
---|---|---|---|---|
internalId | String | yes |
ID of this contact in the ERP/internal system CASE SENSITIVE |
|
customerId | String | yes |
ID of the customer in the ERP/internal system CASE SENSITIVE |
|
firstName | String | no | First name of the contact | |
lastName | String | no | Last Name of the contact | |
String | no | The email address of the contact | ||
phone | String | no | Phone number of the contact | |
mobilePhone | String | no | Mobile phone number of contact | |
note | String | no | Any additional information. Max 200 characters. | |
primary | Boolean | true or false | no | If the value is 'true', contacts will be regarded and marked as a 'Billing Contact' in YayPay - Only Billing Contacts are used by YayPay's Collection Workflows. This field is case-sensitive, this means that TRUE and FALSE are not correct values, it must be in lower case. |
is_deleted | Boolean | true or false | no | This is to represent that the record was de-activated /deleted from the source ERP system, and therefore also to be removed from YayPay if set to true. |
Transactions
This CSV should include all the transactions that influence customer's AR balance, such as:
- Payment
- CreditMemo
- JournalEntry
- Adjustment
Download transaction.csv template
Filename MUST be: transaction.csv
Name | Type | Accepted Values | Required | Description |
---|---|---|---|---|
txId | String | yes |
ID of this transaction in the ERP/internal system. Note, that this ID must be unique in this one CSV file. CASE SENSITIVE |
|
txType | String |
CreditMemo, Payment, JournalEntry, Adjustment
|
yes |
Defines the type of transaction record in the ERP/internal system. CreditMemo/Payment transactions will credit the customer's balance (amount must be positive otherwise the negative amount will have the opposite effect - the balance will be debited). Adjustment/JournalEntry transactions will debit the customer's balance (amount must be positive otherwise the negative amount will have the opposite effect - the balance will be credited). |
customerId | String |
yes |
ID of the customer this transaction associated with. This must match exactly "internalId" field of one of the customers from the customer CSV file. CASE SENSITIVE |
|
externalId | String | no | ID used for payment synchronization purposes, i.e. for transactions with the type Payment that is set using the txType field. | |
amount | Double |
yes |
This is the amount of the document. Note, that the Adjustment document type is interpreted as a Debit document, while Payment and Credit Memo are Credit documents. This means that if you pass over $50 as an amount for Payment or Credit Memo, it will credit the balance for this amount, but if you do the same for Adjustment - it will debit the balance (add to it). |
|
amountApplied | Double |
yes |
The total amount of payment applied to invoices or other entities. Note, that this field must match the sum of this transaction's allocations listed in the transactionAllocations.csv file. If they don't match, the total customer balance will be calculated correctly, but it will not match with the allocation information on the Statement page Payments tab in YayPay. |
|
currency | String | USD, EUR, GBP, etc. |
yes |
|
txDate | Date |
yes |
Date of the transaction |
|
exchangeRate | Double |
yes |
The rate for converting currency of document to biz currency. If no value is provided for this field, it is set to 1. |
|
refNum | String | no | Payment reference number |
|
is_deleted | Boolean | true or false | no | This is to represent that the record was de-activated/deleted from the source ERP system, and therefore also to be removed from YayPay if set to true |
paymentType | String | no |
Type of payment. Free-form, but can take values like "ACH", "Credit Card", "Wire", "Check", "Writeoff', "Sales Order #", etc. If txType = CreditMemo or txType = Payment, the "paymentType" field will display the value entered in the "paymentType" field. If "txType" takes values other than CreditMemo or Payment, the "paymentType" field displays the value of the "txType" field. |
|
entityId | String | no |
The trigger to sync AR documents by the entity ID (company). Do not fill this field without consulting your YayPay onboarding specialist. |
Download transactionFull.csv template
This file supports invoices along with credit memos, payments, journal entries, and adjustments.
Filename MUST be: transactionFull.csv
Name | Type | Accepted Values | Required | Description |
---|---|---|---|---|
txId | String | yes |
ID of this transaction in the ERP/internal system. Note, that this ID must be unique in this one CSV file. CASE SENSITIVE |
|
txType | String | CreditMemo, Payment, JournalEntry, Adjustment, Invoice | yes |
Defines the type of transaction record in the ERP/internal system. CreditMemo/Payment transactions will credit the customer's balance (amount must be positive otherwise the negative amount will have the opposite effect - the balance will be debited). Adjustment/JournalEntry transactions will debit the customer's balance (amount must be positive otherwise the negative amount will have the opposite effect - the balance will be credited). |
customerId | String | yes |
ID of the customer this transaction associated with. This must match exactly "internalId" field of one of the customers from the customer CSV file. CASE SENSITIVE |
|
amount | Double | yes |
This is the amount of the document. Note, that the Adjustment document type is interpreted as a Debit document, while Payment and Credit Memo are Credit documents. This means that if you pass over $50 as an amount for Payment or Credit Memo, it will credit the balance for this amount, but if you do the same for Adjustment - it will debit the balance (add to it). |
|
amountApplied | String | yes |
The total amount of payment applied to invoices or other entities. Note, that this field must match the sum of this transaction's allocations listed in the transactionAllocations.csv file. If they don't match, the total customer balance will be calculated correctly, but it will not match with the allocation information on the Statement page Payments tab in YayPay. |
|
dueDate | Date | no | Due date of the Invoice |
|
currency | String | USD, EUR, GBP, etc. | yes | |
txDate | Date | yes | Date of the transaction |
|
exchangeRate | Double | yes |
The rate for converting currency of document to biz currency. If no value is provided for this field, it is set to 1. |
|
refNum | String | no | Payment reference number |
|
is_deleted | true or false | no | This is to represent that the record was de-activated/deleted from the source ERP system, and therefore also to be removed from YayPay if set to true |
|
paymentType | ACH, credit card, Wire, Check, etc. | no |
Type of payment. Free-form, but can take values like "ACH", "Credit Card", "Wire", "Check", "Writeoff', "Sales Order #", etc. If txType = CreditMemo or txType = Payment, the "paymentType" field will display the value entered in the paymentType field. If "txType" takes values other than CreditMemo or Payment, the "paymentType" field displays the value of the "txType" field. |
|
entityId | String | no |
The trigger to sync AR documents by the entity ID (company). Do not fill this field without consulting your YayPay onboarding specialist. |
Transaction Allocations
This document would represent the relations between applied transactions and invoices.
Download transactionAllocations.csv template
Note, if you send an invoice allocation information, and invoice Open amount or invoice status changed - this invoice must be listed in the invoice.csv file. It is not enough to just list it in transaction allocations.
Filename MUST be: transactionAllocations.csv
Name | Type | Accepted Values | Required | Description |
---|---|---|---|---|
txId | String | yes |
ID of this transaction in the ERP/internal system. Note, this ID must exactly match the "txId" field of the associated transaction from the transaction.csv file. This field can have duplicates in this file, for example in case if one payment is allocated to multiple invoices. CASE SENSITIVE |
|
invoiceId | String | yes |
ID of the invoice this transaction is associated with. Note, this is the internal ID of the invoice, not Invoice Number and it must exactly match "invoiceId" field from the invoice.csv file. Also, this invoice itself has to either be already present in YayPay or must be included in the invoice.csv file. This like will be ignored if the invoice was not found by this ID. A combination of the "txId" and "invoiceId" fields in this file must be unique in this file. CASE SENSITIVE |
|
amount | Double | yes |
The total amount of this transaction applied to invoices or other entities. This does not have to match a full transaction amount that must is listed in the transaction.csv file. This field only indicates how much of this transaction (Payment, Credit Memo or other transaction) is allocated to this specific invoice. |
|
date | Date | yes | Date of the transaction allocation. The field is not used for sync with YayPay. | |
entityId | String | no |
The trigger to sync AR documents by the entity ID (company). Do not fill this field without consulting your YayPay onboarding specialist. |
Invoices
This document should have a list of open and closed invoices.
The filename MUST be: invoice.csv
Name | Type | Accepted Values | Required | Description |
---|---|---|---|---|
invoiceId | String | yes |
ID of this invoice in the ERP/internal system. It must be unique in this CSV file and across all the data send to YayPay. CASE SENSITIVE |
|
customerId | String | yes |
ID of the customer who was issued the invoice. This must match exactly "internalId" field of one of the customers from the customer CSV file. CASE SENSITIVE |
|
invoiceNumber | String | yes | Invoice Number |
|
dateCreated | Date | yes | The date the invoice was created in the ERP/internal system |
|
dueDate | Date | yes | Due date of the Invoice |
|
terms | String | e.g. Net30, Net60 |
no |
Invoice Terms maintained in the ERP system. By default, this field is not displayed in YayPay. To display it in YayPay, configure it as a custom field on the Settings | ERP/CRM Custom Fields page and enter TERMNAME in the Source Field Name column. |
poNumber | String | no |
PO number associated with this invoice, if available. By default, this field is not displayed in YayPay. To display it in YayPay, configure it as a custom field on the Settings | ERP/CRM Custom Fields page and enter PO_NUMBER in the Source Field Name column. |
|
amount | Double | yes |
The Total Amount of the invoice. YayPay stores it as a decimal with 2 decimal places. More precise values are rounded to two decimal characters. |
|
discountAmount | String | no |
The amount of the discount your customer will receive if (s)he pays this invoice according to the terms you have set |
|
discountDate | Date | no |
The date your customer must pay this invoice by in order to receive a discount. The discount your customer receives is based on the terms you have set for the customer |
|
paid | Double | yes |
The amount paid for the invoice. YayPay stores it as a decimal with 2 decimal places. More precise values are rounded to two decimal characters. (If the Invoice is fully paid, ensure that paid equals to amount. The Invoice will be regarded as a Closed Invoice in YayPay by the use of rounded values.*) |
|
currency | String | USD, EUR, GBP, etc. |
yes | Invoice currency. ISO 4217 Currency Codes |
exchangeRate | Double | no |
The currency exchange rate for this invoice. YayPay stores it as a decimal with 6 decimal places. More precise values are rounded to six decimal characters. If no value is provided for this field, it is set to 1. |
|
taxTotal | Double | no |
The absolute monetary value of the tax in the invoice currency. The provided numeric value will be reflected on the invoice as VAT if there's no value in "taxAmount" field |
|
notes | String | no | Memo to the customer, or a short Invoice note. |
|
billingEmail | String | no |
For the purposes of creating an Invoice level billing contact - this will be matched with the email in the contact.csv file. If there is a match, the import will create an Invoice Billing contact. Several email addresses can be contained in one comma-separated string. Email addresses imported this way will belong to one contact. For example: "first@example.com,second@example.com". |
|
subTotal | Double | no | Sub-total of the invoice before tax, usually a sum of the invoice items in the invoice currency. |
|
taxAmount | Double | no | Tax amount in the invoice currency. |
|
cf_* | String | no | Custom field columns. The value from these columns will be used if 'customFields' column does not exist. Examples: cf_field_1, cf_field_2,cf_field_3. |
|
is_deleted | Boolean | true or false | no | This is to represent that the record was de-activated /deleted from the source ERP system, and therefore also to be removed from YayPay if set to true. |
entityId | String | no |
The trigger to sync AR documents by the entity ID (company). Do not fill this field without consulting your YayPay onboarding specialist. |
*Example:
natural value amount | natural value paid | paid value stored in YayPay | YayPay Invoice status | Invoice displayed in YayPay as |
100.00 | 100.0000001 | 100.00 | PAID | Closed |
100.10 | 100.099999999 | 100.10 | PAID | Closed |
In YayPay, the invoices can be unpaid, partially paid, and paid.
On the Statement page, paid invoices are found in the CLOSED INVOICES tab, and unpaid and partially paid invoices are found in the OPEN INVOICES tab.
Consider the following rules regarding the “paid” field:
- IF "paid" = 0 THEN the invoice is unpaid
- IF "paid" > 0 AND paid < "amount" THEN the invoice is partially paid
- IF "paid" >= "amount" THEN the invoice is paid
Invoice Lines
Download invoiceLines.csv template
Filename MUST be: invoiceLines.csv
Name | Type | Accepted Values | Required | Description |
---|---|---|---|---|
itemId | String | yes |
ID of this item in the ERP/internal system CASE SENSITIVE |
|
invoiceId | String | yes |
ID of the invoice the item is associated with CASE SENSITIVE |
|
name | String | no | Item name |
|
description | String | no | Description of Item |
|
rate | Double | yes | The rate for one item |
|
quantity | Double | no | Quantity of the item ordered |
|
amount | Double | yes | The total amount of the line item ordered (rate x quantity) |
|
entityId | String | no |
The trigger to sync AR documents by the entity ID (company). Do not fill this field without consulting your YayPay onboarding specialist. |
Sales Order
Download salesOrder.csv template
Filename MUST be: salesOrder.csv
Name | Type | Accepted Values | Required | Description |
---|---|---|---|---|
customerId | String | yes |
ID of the customer who was issued the sales order. This must match exactly "internalId" field of one of the customers from the customer CSV file. CASE SENSITIVE |
|
internalId |
String |
yes |
ID of this sales order in the ERP/internal system CASE SENSITIVE |
|
externalId |
String |
no | Additional sales order ID, for instance, if it created in other system. |
|
orderNumber |
String |
yes | Order number that will be displayed on YayPay User Interface. |
|
poNumber |
String |
no | PO number associated with this sales order, if available. It will be displayed on YayPay User Interface. |
|
orderStatus |
String |
yes | Order status that will be displayed on YayPay User Interface. |
|
orderDate | Date | yes | Order date that will be displayed on YayPay User Interface. |
|
shipDate | Date | yes | Ship date that will be displayed on YayPay User Interface. |
|
total | Double | yes | Order amount that will be displayed on YayPay User Interface. |
|
subTotal | Double | yes | Sub-total of the sales order before tax. |
|
taxAmount | Double | yes | Tax amount in the sales order currency. |
|
currency | String | USD, EUR, GBP, etc. |
yes | Sales order currency. ISO 4217 Currency Codes, it will be displayed on YayPay User Interface. |
exchangeRate | Double | yes |
The currency exchange rate for this sales order. YayPay stores it as a decimal with 6 decimal places. More precise values are rounded to six decimal characters. If no value is provided for this field, it is set to 1. |
|
terms |
String |
no | Terms of the Sales order. Free-form, it will be displayed on YayPay User Interface. |
|
memo |
String |
no | A free-form memo, will be displayed on YayPay User Interface. |
|
salesRepresentative |
String |
no | Must be valid email address. |
|
billingContact |
String |
no | ||
is_deleted | Boolean | true or false | no | This is to represent that the record was deactivated /deleted from the source ERP system, and therefore also to be removed from YayPay if set to true. |
entityId | String | no |
The trigger to sync AR documents by the entity ID (company). Do not fill this field without consulting your YayPay onboarding specialist. |
Delivery of files to YayPay
You should upload zip file with content to YayPay. Zip archive structure is as follows:
/customer.csv
/contact.csv
/invoice.csv
/invoiceLines.csv
/transaction.csv or /transactionFull.csv
/transactionAllocations.csv
/salesOrder.csv (not obligatory)
Transaction File Mode with Invoices
The CSV Connector provides the ability to upload the transaction file that includes ALL the open documents that impact AR balances, including invoices.
The new CSV file has the name transactionFull.csv. Besides, the CSV Connector supports processing the ‘old’ transaction.csv file.
How the CSV Connector works if your ZIP archive includes a transactionFull.csv file:
1. Regardless of the fact that you can upload a new file transactionFull.csv with open entities, the CSV Connector proceeds to support the sync process for the ‘old’ transaction.csv file. The CSV Connector can switch the sync process in a new way to sync the ZIP archive with the transactionFull.csv file:
a) If the ZIP archive includes the transactionFull.csv file, the Connector handles the ZIP archive using new sync.
b) If the ZIP archive includes the transaction.csv file, the Connector handles the ZIP archive using old sync.
c) If the ZIP archive includes both files (transactionFull.csv and transaction.csv), the Connector fails the sync process with the error message.
2. The peculiarity of the new transactionFull.csv file is to support the new document type - Invoice. Thus, the new transactionFull.csv file combines the following AR documents:
- CreditMemo
- Payment
- JournalEntry
- Adjustment
- Invoice → NEW
3. Due to the new logic of processing the transactionFull.csv file, to sync Invoices to YayPay, you can fill in the required fields for Invoices in the transactionFull.csv file. Additional fields for Invoices can be filled in the invoice.csv file. The transactionFull.csv file structure requirements are given above.
By default, the "dueDate" field is optional for Credit Memo, Payments, JournalEntry, and Adjustments because these types of documents don’t use Due Date. The "dueDate" is required only for Invoices. Thus, during the validation process, the CSV Connector checks if the "txType" is equal to Invoices. If txType = Invoices, the "dueDate" field must be filled in.
So, the invoice.csv file is an optional file during the sync process.
User scenario | Result during the sync process |
---|---|
You fill in data incorrectly in the transactionFull.csv file not observing the rules of field mapping. |
The CSV Connector validates data quality. Thus, if data is incorrect, the ERP Connector returns an error during the sync process. For example, the "amount" field includes text. In this case, the CSV Connector returns the error: columnName has the wrong date format. |
You can add additional fields from the invoice.csv file to the transactionFull.csv file so that you can sync invoices using one file. |
The CSV Connector checks only the completion of required fields and validates data quality. Thus, if you add the field that is not supported via the transactionFull.csv file, the CSV Connector will not sync this field. Also, if you don’t specify the required field, the CSV Connector returns an error.
|
You fill in completely both files: invoice.csv and transactionFull.csv. Also, you want to sync both files to YayPay. | During synchronization, the CSV connector ignores data from the invoice.csv file that is represented in transactionFull.csv. The only additional Invoice information will be pulled from invoice.csv |
You fill in the invoice.csv file completely. However, you don't specify the required fields (or rows) in the transactionFull.csv file. | During synchronization, the CSV connector returns an error stating that the transactionFull.csv file lacks the required fields. |
4. The CSV Connector uses the invoice.csv file as a complementary file with additional data for Invoices that the CSV Connector will sync from the transactionFull.csv file.
The transactionFull.csv file prevails over the invoice.csv file. If during the sync process the CSV Connector doesn’t detect a connection for Invoices between the transactionFull.csv file and invoice.csv file, the CSV Connector doesn’t proceed with the sync process to sync Invoices from the transactionFull.csv file.
User Scenario | Result during the sync process |
---|---|
You create the ZIP archive that doesn’t include the invoice.csv file. | During the sync process, the CSV Connector returns an error due to the invoice.csv file being required. |
You create the ZIP archive that doesn’t include the transactionFull.csv file. But your ZIP archive includes transaction.csv file |
During the sync process, the CSV Connector updates/creates Invoices from the invoice.csv file due to the Connector using the old logic during the sync process (works with the transaction.csv file). |
You create both invoice.csv and transactionFull.csv files, but the CSV Connector cannot detect the connection between Invoices by txId==InvoiceId. | The CSV Connector syncs Invoices to YayPay from the transactionFull.csv file without additional data from the invoice.csv file. |
You create both invoice.csv and transactionFull.csv files, and the CSV Connector detects the connection between Invoices by txId==InvoiceId. Also, the invoice.csv and transactionFull.csv files include the "dueDate" field. | The CSV Connector always uses the "dueDate" field from the transactionFull.csv file. If the transactionFull.csv doesn’t include dueDate for Invoices, the sync process finishes with an error. |
You want to delete the Invoice from YayPay that was synced previously. |
1. The CSV Connector always uses the "is_deleted" field from the transactionFull.csv file. If the transactionFull.csv file doesn’t include the "is_deleted" field OR the field is not filled or set to "false", the CSV Connector doesn’t remove the record. 2. If the "is_deleted" field is set to “true”, during the sync process the CSV Connector removes Invoices that are presented in the file and were synced previously with YayPay. |
You repeatedly synchronize both invoice.csv and transactionFull.csv files with the same data, but without any fields or with changed values. |
1. The CSV Connector overwrites only open documents in YayPay using the transactionFull.csv file. Closed documents are loaded and updated as they become available. 2. If the transactionFull.csv file doesn’t include the available Invoice in YayPay, it means the invoice is closed (paid) in the ERP system. 3. The CSV Connector erases data that was synced previously but is not presented in the transactionFull.csv file. The reason, the CSV Connector will upload empty fields via the upload API. |
5. Connection of the transactionFull.csv file with the invoiceLines.csv file.
The "invoiceId" field from the invoiceLines.csv file should exactly match the "txId" field of the associated invoice from the transactionFull.csv file.
User scenario | Result during the sync process |
---|---|
You upload the ZIP archive that includes the transactionFull.csv file. Also, the ZIP archive doesn’t include the invoice.csv file. | During the sync process, the CSV Connector returns an error due to the invoice.csv file being required. As an alternative, you can leave it blank. |
You create the ZIP archive that includes the following files: invoice.csv, invoiceLines.csv, and transactionFull.csv. The InvoiceId value matches only between transactionFull.csv and invoiceLines.csv files. | In this case, the CSV Connector retrieves data from the transactionFull.csv, matches them with the invoiceLines.csv file, and sync Invoices to YayPay. |
You ignore filling required fields in the transactionFull.csv. | During the sync process, the CSV Connector will not sync items from the invoiceLines.csv file due to the transactionFull.csv file doesn’t include the required field such as "InvoiceID". Connector will stop the sync process and return error. |
6. Connection of the transactionFull.csv file with the transactionAllocations.csv file.
The "invoiceId" field from the transactionFull.csv file should exactly match the "invoiceId" field of the associated Invoice from the transactionAllocations.csv file.
User scenario | Result during the sync process |
---|---|
You create the ZIP archive that doesn’t include the transactionFull.csv file. | In this case, the CSV Connector cannot determine the connection between the files highlighted in red to sync Invoices and allocated transactions to YayPay. The Connector has to return an error. |
You create the ZIP archive that includes files: transactionAllocations.csv, and transactionFull.csv. The InvoiceId value matches between transactionFull.csv, and transactionAllocations.csv files. |
In this case, the CSV Connector retrieves data from the transactionFull.csv and syncs Invoices to YayPay. Items from transactionAllocations.csv will be synced for Invoices from the transactionFull.csv. |
You ignore filling in the required fields in the transactionFull.csv file. | During the sync process, the CSV Connector will not sync items from the transactionAllocations.csv file due to the fact that transactionFull.csv file doesn’t include the required fields. |
7. Determining a Positive or Negative Amount in the transactionFull.csv file.
In the transactionFull.csv, the "amount" field defines if this is a Credit or a Debit document.
Therefore, in the transactionFull.csv field "amount" is UNIFIED. This means that the sign of the "amount" field should define if this is a Credit or a Debit document.
Example:
Invoice: $ 800
Payment: -$300
CreditMemo: -$100
Adjustment 1: -$50
Adjustment 2: $150
Total Balance: $500
Thus, if you fill in the Payment amount -$300 or $300, and Credit Memo amount -$200 or $200 in the CSV file, the CSV Connector will use the opposite value.
Example:
-$300 → invert to $300
$300 → invert to -$300
The Connector applies the amount inversion for the following fields in the transactionFull.csv file:
- "amount"
- "amountApplied"