Vendor Bills
Overview
The Vendor Bills integration creates vendor bill records in NetSuite from Zudello invoice data.
Direction: 📤 Zudello → NetSuite
Type: Real-time sync
API: NetSuite SOAP API
Frequency: On-demand processing
Key Benefits
- Real-time vendor bill creation
- Automatic tax handling with gross amount support
- Custom field mapping capabilities
- Support for both item and expense lines
- Amortization schedule support
Header Field Mappings
The following fields are mapped from Zudello to NetSuite vendor bill headers:
| Zudello Field | NetSuite Field | Description |
|---|---|---|
| InvoiceNumber | tranId | Transaction reference number |
| VendorCode | entity | Vendor reference |
| InvoiceDate | tranDate | Transaction date |
| DueDate | dueDate | Payment due date |
| Currency | currency | Transaction currency |
| Memo | memo | Transaction memo/description |
| Location | location | Location reference |
| Department | department | Department reference |
| Class | class | Class reference |
| Subsidiary | subsidiary | Subsidiary reference |
| Account | account | AP account reference |
| Terms | terms | Payment terms reference |
| ApprovalStatus | approvalStatus | Approval workflow status |
Line Processing
Item Lines
Item-based vendor bill lines are created when the line contains item information:
| Zudello Field | NetSuite Field | Description |
|---|---|---|
| ItemCode | item | Item reference |
| Description | description | Line description |
| Quantity | quantity | Item quantity |
| Rate | rate | Unit price |
| Amount | amount/grossAmt | Line amount (based on tax config) |
| Location | location | Line-level location |
| Department | department | Line-level department |
| Class | class | Line-level class |
| TaxCode | taxCode | Tax code reference |
| Customer | customer | Customer reference |
| IsBillable | isBillable | Billable flag |
| AmortizationSched | amortizationSched | Amortization schedule reference |
| AmortizStartDate | amortizStartDate | Amortization start date |
| AmortizationEndDate | amortizationEndDate | Amortization end date |
Expense Lines
Expense-based vendor bill lines are created when no item is specified:
| Zudello Field | NetSuite Field | Description |
|---|---|---|
| Account | account | Expense account reference |
| Description | memo | Line description |
| Amount | amount/grossAmt | Line amount (based on tax config) |
| Location | location | Line-level location |
| Department | department | Line-level department |
| Class | class | Line-level class |
| TaxCode | taxCode | Tax code reference |
| Customer | customer | Customer reference |
| IsBillable | isBillable | Billable flag |
| AmortizationSched | amortizationSched | Amortization schedule reference |
| AmortizStartDate | amortizStartDate | Amortization start date |
| AmortizationEndDate | amortizationEndDate | Amortization end date |
API Configuration
SOAP API Method
The integration uses the add operation with the following configuration:
- Record Type: VendorBill
- Operation: add
- Response Handling: Captures internal ID on success
Authentication
Uses token-based authentication with:
- Account ID
- Consumer Key
- Consumer Secret
- Token ID
- Token Secret
Special Processing
Tax Handling
The integration supports two tax handling modes:
- Tax Exclusive (Default): Uses
amountfield for line amounts - Tax Inclusive: Uses
grossAmtfield when tax codes are marked as inclusive
Custom Fields
Custom fields are mapped using the following structure:
- Script ID mapping from Zudello to NetSuite
- Support for all custom field data types
- Array-based field collection
Line Type Detection
Lines are automatically classified as:
- Item Lines: When ItemCode is provided
- Expense Lines: When no ItemCode but Account is provided
Processing Logic
Vendor Bill Creation Flow
-
Header Preparation
- Map standard fields
- Add custom fields
- Set approval status
-
Line Processing
- Determine line type (item/expense)
- Apply tax handling rules
- Add amortization if configured
-
API Submission
- Submit via SOAP API
- Capture response
- Store internal ID
Amount Calculations
- Tax Exclusive: Line amounts exclude tax
- Tax Inclusive: Line amounts include tax (using grossAmt)
- Multi-currency: Amounts in transaction currency
Error Handling
Common Errors
| Error Type | Description | Resolution |
|---|---|---|
| INVALID_REF | Invalid vendor reference | Verify vendor exists in NetSuite |
| INVALID_FLD | Invalid field value | Check field mappings and data types |
| INSUFFICIENT_PERMISSION | User lacks permission | Review user role permissions |
| UNIQUE_CUST_ID | Duplicate transaction | Check for existing transactions |
| INVALID_ITEM_REF | Invalid item reference | Verify item exists and is active |
| INVALID_ACCT | Invalid account | Verify account is active |
Retry Logic
- Automatic retry for transient errors
- Maximum 3 retry attempts
- Exponential backoff strategy
Troubleshooting
| Issue | Possible Cause | Solution |
|---|---|---|
| Bill not created | Authentication failure | Verify API credentials |
| Missing vendor | Vendor not synced | Ensure vendor exists in NetSuite |
| Tax calculation errors | Incorrect tax setup | Review tax code configuration |
| Custom fields not mapping | Script ID mismatch | Verify custom field script IDs |
| Approval workflow issues | Workflow not configured | Check approval workflow setup |