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
amount
field for line amounts - Tax Inclusive: Uses
grossAmt
field 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 |