# Download CSV export with filtering
curl -X GET "https://api.contazen.ro/v1/expenses/export?format=csv&start_date=2024-01-01&end_date=2024-01-31&status=paid" \
-H "Authorization: Bearer YOUR_API_KEY" \
--output expenses_january_2024.csv
# Download all unpaid expenses
curl -X GET "https://api.contazen.ro/v1/expenses/export?format=csv&status=unpaid" \
-H "Authorization: Bearer YOUR_API_KEY" \
--output unpaid_expenses.csv
const exportExpenses = async (filters = {}) => {
// Build query parameters
const params = new URLSearchParams({
format: 'csv',
...filters
});
const response = await fetch(`https://api.contazen.ro/v1/expenses/export?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
if (response.ok) {
// Get filename from Content-Disposition header
const contentDisposition = response.headers.get('Content-Disposition');
const filename = contentDisposition
? contentDisposition.split('filename=')[1].replace(/"/g, '')
: 'expenses_export.csv';
// Get the CSV content
const csvContent = await response.text();
// Create download link (browser environment)
const blob = new Blob([csvContent], { type: 'text/csv' });
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
} else {
const error = await response.json();
throw new Error(error.error.message);
}
};
// Usage examples
exportExpenses({ start_date: '2024-01-01', end_date: '2024-01-31' });
exportExpenses({ status: 'unpaid', currency: 'RON' });
exportExpenses({ supplier_id: 'sup_abc123' });
$filters = [
'format' => 'csv',
'start_date' => '2024-01-01',
'end_date' => '2024-01-31',
'status' => 'paid'
];
$url = 'https://api.contazen.ro/v1/expenses/export?' . http_build_query($filters);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY'
]
]);
$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
if ($httpCode == 200 && strpos($contentType, 'text/csv') !== false) {
// Success - save CSV file
$filename = 'expenses_export_' . date('Y-m-d') . '.csv';
file_put_contents($filename, $response);
echo "Export saved to: {$filename}";
} else {
// Error response
$error = json_decode($response, true);
echo "Export failed: " . $error['error']['message'];
}
curl_close($curl);
Reference,Date,Due Date,Supplier,Category,Description,Amount,Currency,VAT %,Amount without VAT,VAT Amount,Status,Payment Date,Payment Type
INV-2024-001,2024-01-15,2024-02-15,Office Depot SRL,Office Expenses,Office supplies purchase,238.00,RON,19,200.00,38.00,Paid,2024-01-20,Bank transfer
INV-2024-002,2024-01-16,2024-02-16,Marketing Pro,Marketing & Advertising,Social media campaign,1190.00,RON,19,1000.00,190.00,Unpaid,,
EXP-2024-003,2024-01-17,2024-02-17,Travel Agency,Travel & Transportation,Business trip accommodation,595.00,RON,9,545.87,49.13,Paid,2024-01-25,Card
{
"success": false,
"error": {
"message": "Invalid format. Use csv or pdf",
"type": "invalid_request_error",
"code": "invalid_format"
}
}
{
"success": false,
"error": {
"message": "PDF export not yet implemented",
"type": "not_implemented",
"code": "feature_not_available"
}
}
Expenses
Export Expenses
Export expense data to CSV or PDF format with all filtering options available
GET
/
expenses
/
export
# Download CSV export with filtering
curl -X GET "https://api.contazen.ro/v1/expenses/export?format=csv&start_date=2024-01-01&end_date=2024-01-31&status=paid" \
-H "Authorization: Bearer YOUR_API_KEY" \
--output expenses_january_2024.csv
# Download all unpaid expenses
curl -X GET "https://api.contazen.ro/v1/expenses/export?format=csv&status=unpaid" \
-H "Authorization: Bearer YOUR_API_KEY" \
--output unpaid_expenses.csv
const exportExpenses = async (filters = {}) => {
// Build query parameters
const params = new URLSearchParams({
format: 'csv',
...filters
});
const response = await fetch(`https://api.contazen.ro/v1/expenses/export?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
if (response.ok) {
// Get filename from Content-Disposition header
const contentDisposition = response.headers.get('Content-Disposition');
const filename = contentDisposition
? contentDisposition.split('filename=')[1].replace(/"/g, '')
: 'expenses_export.csv';
// Get the CSV content
const csvContent = await response.text();
// Create download link (browser environment)
const blob = new Blob([csvContent], { type: 'text/csv' });
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
} else {
const error = await response.json();
throw new Error(error.error.message);
}
};
// Usage examples
exportExpenses({ start_date: '2024-01-01', end_date: '2024-01-31' });
exportExpenses({ status: 'unpaid', currency: 'RON' });
exportExpenses({ supplier_id: 'sup_abc123' });
$filters = [
'format' => 'csv',
'start_date' => '2024-01-01',
'end_date' => '2024-01-31',
'status' => 'paid'
];
$url = 'https://api.contazen.ro/v1/expenses/export?' . http_build_query($filters);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY'
]
]);
$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
if ($httpCode == 200 && strpos($contentType, 'text/csv') !== false) {
// Success - save CSV file
$filename = 'expenses_export_' . date('Y-m-d') . '.csv';
file_put_contents($filename, $response);
echo "Export saved to: {$filename}";
} else {
// Error response
$error = json_decode($response, true);
echo "Export failed: " . $error['error']['message'];
}
curl_close($curl);
Reference,Date,Due Date,Supplier,Category,Description,Amount,Currency,VAT %,Amount without VAT,VAT Amount,Status,Payment Date,Payment Type
INV-2024-001,2024-01-15,2024-02-15,Office Depot SRL,Office Expenses,Office supplies purchase,238.00,RON,19,200.00,38.00,Paid,2024-01-20,Bank transfer
INV-2024-002,2024-01-16,2024-02-16,Marketing Pro,Marketing & Advertising,Social media campaign,1190.00,RON,19,1000.00,190.00,Unpaid,,
EXP-2024-003,2024-01-17,2024-02-17,Travel Agency,Travel & Transportation,Business trip accommodation,595.00,RON,9,545.87,49.13,Paid,2024-01-25,Card
{
"success": false,
"error": {
"message": "Invalid format. Use csv or pdf",
"type": "invalid_request_error",
"code": "invalid_format"
}
}
{
"success": false,
"error": {
"message": "PDF export not yet implemented",
"type": "not_implemented",
"code": "feature_not_available"
}
}
Overview
The Export Expenses endpoint allows you to download your expense data in structured formats for external analysis, reporting, or archival purposes. You can export all expenses or use the same filtering options available in the List Expenses endpoint.This endpoint returns file data directly rather than JSON, so the response format differs from other API endpoints.
Query Parameters
string
default:"csv"
Export format:
csv- Comma-separated values file (Excel compatible)pdf- Portable Document Format (currently not implemented)
Filtering Parameters
All filtering parameters from the List Expenses endpoint are supported:string
Filter by supplier CzUid
integer
Filter by expense category ID
string
Filter by payment status (paid, unpaid, overdue, registered)
string
Filter by currency code
integer
Filter by payment type ID (1-7)
string
Start date for filtering expenses
string
End date for filtering expenses
string
default:"created_at"
Sort field (created_at, date, due_date, amount)
string
default:"desc"
Sort order (asc, desc)
Response Formats
CSV Export (format=csv)
The CSV export includes the following columns:
| Column | Description |
|---|---|
| Reference | Reference number or invoice number |
| Date | Expense date |
| Due Date | Payment due date |
| Supplier | Supplier name |
| Category | Expense category name |
| Description | Expense description |
| Amount | Total amount |
| Currency | Currency code |
| VAT % | VAT percentage |
| Amount without VAT | Amount excluding VAT |
| VAT Amount | VAT amount |
| Status | Payment status (Paid/Unpaid) |
| Payment Date | Date when expense was paid (if applicable) |
| Payment Type | Payment method name (if paid) |
- UTF-8 encoding with BOM for Excel compatibility
- Comma-separated values
- Headers included in first row
- Filename format:
expenses_YYYY-MM-DD.csv
PDF Export (format=pdf)
PDF export is currently not implemented. The endpoint will return a JSON error message indicating this feature is not yet available.
Response Headers
CSV Export
Content-Type: text/csv; charset=utf-8
Content-Disposition: attachment; filename="expenses_2024-01-20.csv"
Error Responses
Content-Type: application/json
Pagination Behavior
Unlike the List Expenses endpoint, the export endpoint does not use pagination. It will export all expenses matching your filter criteria in a single file. Be mindful when exporting large datasets.Use Cases
Accounting Integration
Export expenses for import into accounting software:const exportUrl = 'https://api.contazen.ro/v1/expenses/export?format=csv&start_date=2024-01-01&end_date=2024-01-31';
// Download and import into accounting system
Monthly Reporting
Generate monthly expense reports:const currentMonth = new Date().toISOString().slice(0, 7); // YYYY-MM
const exportUrl = `https://api.contazen.ro/v1/expenses/export?format=csv&start_date=${currentMonth}-01&end_date=${currentMonth}-31`;
Audit Preparation
Export all expenses for a specific period for auditing:const auditExport = 'https://api.contazen.ro/v1/expenses/export?format=csv&start_date=2024-01-01&end_date=2024-12-31&sort=date&order=asc';
Category Analysis
Export expenses by category for detailed analysis:const categoryExport = 'https://api.contazen.ro/v1/expenses/export?format=csv&category_id=1';
# Download CSV export with filtering
curl -X GET "https://api.contazen.ro/v1/expenses/export?format=csv&start_date=2024-01-01&end_date=2024-01-31&status=paid" \
-H "Authorization: Bearer YOUR_API_KEY" \
--output expenses_january_2024.csv
# Download all unpaid expenses
curl -X GET "https://api.contazen.ro/v1/expenses/export?format=csv&status=unpaid" \
-H "Authorization: Bearer YOUR_API_KEY" \
--output unpaid_expenses.csv
const exportExpenses = async (filters = {}) => {
// Build query parameters
const params = new URLSearchParams({
format: 'csv',
...filters
});
const response = await fetch(`https://api.contazen.ro/v1/expenses/export?${params}`, {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY'
}
});
if (response.ok) {
// Get filename from Content-Disposition header
const contentDisposition = response.headers.get('Content-Disposition');
const filename = contentDisposition
? contentDisposition.split('filename=')[1].replace(/"/g, '')
: 'expenses_export.csv';
// Get the CSV content
const csvContent = await response.text();
// Create download link (browser environment)
const blob = new Blob([csvContent], { type: 'text/csv' });
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
} else {
const error = await response.json();
throw new Error(error.error.message);
}
};
// Usage examples
exportExpenses({ start_date: '2024-01-01', end_date: '2024-01-31' });
exportExpenses({ status: 'unpaid', currency: 'RON' });
exportExpenses({ supplier_id: 'sup_abc123' });
$filters = [
'format' => 'csv',
'start_date' => '2024-01-01',
'end_date' => '2024-01-31',
'status' => 'paid'
];
$url = 'https://api.contazen.ro/v1/expenses/export?' . http_build_query($filters);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY'
]
]);
$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
$contentType = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
if ($httpCode == 200 && strpos($contentType, 'text/csv') !== false) {
// Success - save CSV file
$filename = 'expenses_export_' . date('Y-m-d') . '.csv';
file_put_contents($filename, $response);
echo "Export saved to: {$filename}";
} else {
// Error response
$error = json_decode($response, true);
echo "Export failed: " . $error['error']['message'];
}
curl_close($curl);
Reference,Date,Due Date,Supplier,Category,Description,Amount,Currency,VAT %,Amount without VAT,VAT Amount,Status,Payment Date,Payment Type
INV-2024-001,2024-01-15,2024-02-15,Office Depot SRL,Office Expenses,Office supplies purchase,238.00,RON,19,200.00,38.00,Paid,2024-01-20,Bank transfer
INV-2024-002,2024-01-16,2024-02-16,Marketing Pro,Marketing & Advertising,Social media campaign,1190.00,RON,19,1000.00,190.00,Unpaid,,
EXP-2024-003,2024-01-17,2024-02-17,Travel Agency,Travel & Transportation,Business trip accommodation,595.00,RON,9,545.87,49.13,Paid,2024-01-25,Card
{
"success": false,
"error": {
"message": "Invalid format. Use csv or pdf",
"type": "invalid_request_error",
"code": "invalid_format"
}
}
{
"success": false,
"error": {
"message": "PDF export not yet implemented",
"type": "not_implemented",
"code": "feature_not_available"
}
}
Best Practices
File Management
- Naming conventions: Use descriptive filenames with dates
- Storage: Store exported files securely with appropriate access controls
- Cleanup: Regularly clean up old export files to save storage space
Data Integrity
- Filtering: Use appropriate filters to export only needed data
- Sorting: Sort by relevant fields for easier analysis
- Validation: Verify exported data matches your expectations
Performance Considerations
- Large exports: For very large datasets, consider using date ranges to split exports
- Scheduling: Schedule exports during off-peak hours for better performance
- Monitoring: Monitor export file sizes and processing times
Security
- Access control: Ensure only authorized users can export sensitive financial data
- Audit logging: Log export activities for security auditing
- Data handling: Follow your organization’s data protection policies for exported files
Integration Tips
- Automation: Automate regular exports for recurring reporting needs
- File processing: Build workflows to automatically process exported CSV files
- Error handling: Implement proper error handling for failed exports
- Notifications: Set up notifications for successful or failed export operations
Authorizations
Use your API key (sk_live_xxx or sk_test_xxx)
Query Parameters
Filter by supplier CzUid
Filter by category ID
Start date (Y-m-d format)
End date (Y-m-d format)
Filter by payment status
Available options:
paid, unpaid, overdue Response
CSV export file
The response is of type file.
Was this page helpful?