Skip to main content
Sienge is a comprehensive ERP platform for the construction industry, offering a suite of tools for managing projects, financials, supplies, and more. It helps streamline operations and provides valuable insights for construction companies.

API Types: Bulk vs Transactional

Sienge provides two types of APIs with different capabilities and permission requirements:
Bulk API - Used for extracting large volumes of historical data. Requires enabling Massive endpoints in your API token configuration.Transactional API - Used for extracting master data and transactional records. Requires standard API permissions for each resource.
Make sure your API token has the appropriate permissions enabled for the streams you want to extract. See the Sienge API documentation for details on configuring API permissions.

1. Add your Sienge access

  1. In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Sienge option from the list of connectors.
  2. Click Next and you’ll be prompted to fill the configuration.
    • API User: The user to authenticate against the API service. Check this documentation on how to create it.
    • API Password: The password to authenticate against the API service.
    • Company Domain: The domain identifier for your company account. For example, if your Sienge workspace URL is https://mycompany.sienge.com.br, then your company subdomain would be mycompany.
    • Company ID: The ID of the company to sync (use 1 if you don’t know).
    • Building IDs: The IDs of the buildings you want to extract data, used in the Building Resources stream.
    • Enterprise IDs: The IDs of the enterprises you want to extract sales data from.
    • Start date: The earliest record date to sync.
    For Bulk streams, you must enable permission to extract bulk data from the API, usually referred to as Massive in the token configuration. You have to enable all Massive endpoints. Check the official documentation for guidance.
  3. Click Next.

2. Select your Sienge streams

  1. The next step is letting us know which streams you want to bring. The streams available are related to the different modules in Sienge. You can select entire groups of streams or only a subset of them.
    Tip: The stream can be found more easily by typing its name.
  2. Click Next.

3. Configure your Sienge data streams

  1. Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
    • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
    • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
    • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
    • Sync Type: depending on the data you are bringing to the lake, you can choose between INCREMENTAL and FULL_TABLE. Read more about Sync Types here.
  2. Click Next.

4. Configure your Sienge data source

  1. Describe your data source for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc.
  2. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).
  3. Optionally, you can define some additional settings (if available).
    • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
    • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.

Check your new source!

  1. Click Next to finalize the setup. Once completed, you’ll receive confirmation that your new source is set up!
  2. You can view your new source on the Sources page. Now, for you to be able to see it on your Catalog, you have to wait for the pipeline to run. You can now monitor it on the Sources page to see its execution and completion. If needed, manually trigger the pipeline by clicking on the refresh icon. Once executed, your new table will appear in the Catalog section.
If you encounter any issues, reach out to us, and we’ll gladly assist you!

Streams and Fields

Below you’ll find all available data streams from Sienge, organized by API type.

Transactional Streams

These streams use the Transactional API and require standard API permissions for each resource. They are typically used for master data and reference tables.
Stream containing chart of accounts information.Fields:
  • id: Integer - Account ID
  • companyId: Integer - Company ID
  • uniqueNumber: String - Unique account number
  • name: String - Account name
  • accountType: String - Account type
Stream containing daily account balance information.Fields:
  • balanceDate: DateTime - Balance date
  • accountNumber: String - Account number
  • accountStatus: String - Account status
  • companyId: Integer - Company ID
  • amount: Number - Balance amount
  • reconciledAmount: Number - Reconciled balance amount
  • links: Array of Objects - Related links
    • href: String - Link URL
    • rel: String - Link relation
Stream containing checking account information.Fields:
  • accountNumber: String - Account number (primary key)
  • accountName: String - Account name
  • agencyNumber: String - Bank agency number
  • bankNumber: String - Bank number
  • bankName: String - Bank name
  • companyId: Integer - Company ID
  • companyName: String - Company name
  • accountStatus: String - Account status
  • accountType: Object - Account type details
    • id: String - Account type ID
    • description: String - Account type description
Stream containing company information.Fields:
  • id: Integer - Company ID
  • name: String - Company name
  • tradeName: String - Trade name
  • cnpj: String - CNPJ number
Stream containing cost center information.Fields:
  • id: Integer - Cost center ID
  • name: String - Cost center name
  • idCompany: Integer - Company ID
  • cnpj: String - CNPJ number
Stream containing creditor/supplier information.Fields:
  • id: Integer - Creditor ID
  • name: String - Creditor name
  • tradeName: String - Trade name
  • cpf: String - CPF number
  • cnpj: String - CNPJ number
  • supplier: String - Supplier flag
  • broker: String - Broker flag
  • employee: String - Employee flag
  • active: Boolean - Active status
  • stateRegistrationNumber: String - State registration number
  • stateRegistrationType: String - State registration type
  • paymentTypeId: Integer - Payment type ID
  • creationDate: DateTime - Creation date
  • lastModificationDate: DateTime - Last modification date
  • address: Object - Address details
    • cityId: Integer - City ID
    • cityName: String - City name
    • streetName: String - Street name
    • number: String - Street number
    • complement: String - Address complement
    • neighborhood: String - Neighborhood
    • zipCode: String - ZIP code
    • state: String - State
  • phones: Array of Objects - Phone numbers
    • ddd: String - Area code
    • number: String - Phone number
    • main: Boolean - Main phone flag
    • type: Integer - Phone type
    • extension: String - Extension
    • observation: String - Observation
  • contacts: Array of Objects - Contact information
    • name: String - Contact name
    • ddd: String - Area code
    • number: String - Phone number
    • extension: String - Extension
    • email: String - Email
    • skype: String - Skype
    • msn: String - MSN
  • otherContactMethods: Array of Objects - Other contact methods
    • type: String - Contact type
    • address: String - Contact address
    • observation: String - Observation
Stream containing customer information with detailed personal and company data.Fields:
  • id: String - Customer ID
  • modifiedAt: DateTime - Last modification date
  • createdAt: DateTime - Creation date
  • personType: String - Person type (individual/company)
  • foreigner: String - Foreigner flag
  • internationalId: String - International ID
  • name: String - Customer name
  • email: String - Email address
  • birthDate: String - Birth date
  • birthPlace: String - Birth place
  • civilStatus: String - Civil status
  • cpf: String - CPF number
  • cnpj: String - CNPJ number
  • fatherName: String - Father’s name
  • motherName: String - Mother’s name
  • sex: String - Gender
  • nationality: String - Nationality
  • numberIdentityCard: String - Identity card number
  • issuingBody: String - ID issuing body
  • issueDateIdentityCard: String - ID issue date
  • profession: String - Profession
  • matrimonialRegime: String - Matrimonial regime
  • marriageDate: String - Marriage date
  • mailingAddress: String - Mailing address type
  • licenseNumber: String - License number
  • licenseIssuingBody: String - License issuing body
  • licenseIssueDate: String - License issue date
  • cityRegistrationNumber: String - City registration
  • cnaeNumber: String - CNAE number
  • contactName: String - Contact name
  • creaNumber: String - CREA number
  • establishmentDate: String - Establishment date
  • fantasyName: String - Fantasy/trade name
  • note: String - Notes
  • site: String - Website
  • shareCapital: Number - Share capital
  • stateRegistrationNumber: String - State registration
  • technicalManager: String - Technical manager
  • clientType: String - Client type
  • activityId: Integer - Activity ID
  • activityDescription: String - Activity description
  • governmentEntityId: Integer - Government entity ID
  • governmentEntityDescription: String - Government entity description
  • subTypes: Array of Objects - Customer subtypes
    • id: Integer - Subtype ID
    • description: String - Subtype description
  • phones: Array of Objects - Phone numbers
    • number: String - Phone number
    • main: Boolean - Main phone flag
    • type: String - Phone type
    • note: String - Note
    • idd: String - International code
  • addresses: Array of Objects - Addresses
    • type: String - Address type
    • streetName: String - Street name
    • number: String - Number
    • complement: String - Complement
    • neighborhood: String - Neighborhood
    • cityId: Integer - City ID
    • city: String - City name
    • state: String - State
    • zipCode: String - ZIP code
    • mail: Boolean - Mailing address flag
  • agents: Array of Objects - Associated agents
    • id: Integer - Agent ID
  • procurators: Object - Procurator information
  • spouse: Object - Spouse information
  • familyIncome: Array of Objects - Family income details
    • kinsName: String - Kin’s name
    • kinship: String - Kinship relationship
    • incomeValue: Number - Income value
    • observation: String - Observation
Stream containing enterprise/project information.Fields:
  • id: Integer - Enterprise ID
  • name: String - Enterprise name
  • commercialName: String - Commercial name
  • enterpriseObservation: String - Observation
  • cnpj: String - CNPJ number
  • type: String - Enterprise type
  • adress: String - Address
  • creationDate: DateTime - Creation date
  • modificationDate: DateTime - Modification date
  • createdBy: String - Created by user
  • modifiedBy: String - Modified by user
  • companyId: Integer - Company ID
  • companyName: String - Company name
  • costDatabaseId: Integer - Cost database ID
  • costDatabaseDescription: String - Cost database description
  • buildingTypeId: Integer - Building type ID
  • buildingTypeDescription: String - Building type description
Stream containing payment category/financial category information.Fields:
  • id: Integer - Category ID
  • name: String - Category name
  • tpConta: String - Account type
  • flRedutora: String - Reducing account flag
  • flAtiva: String - Active flag
  • flAdiantamento: String - Advance payment flag
  • flImposto: String - Tax flag

Bulk Streams

These streams use the Bulk API and require Massive endpoint permissions in your API token configuration. They are designed for extracting large volumes of data efficiently.
Stream for managing sales information and customer relationships. Requires enterprise_ids configuration.Fields:
  • id: Integer
  • enterpriseId: Integer
  • receivableBillId: Integer
  • refundBillId: Integer
  • proRataIndexer: Number
  • number: String
  • situation: String
  • externalId: String
  • note: String
  • cancellationReason: String
  • interestType: String
  • lateInterestCalculationType: String
  • financialInstitutionNumber: String
  • discountType: String
  • correctionType: String
  • anualCorrectionType: String
  • associativeCredit: String
  • discountPercentage: Number
  • value: Number
  • totalSellingValue: Number
  • interestPercentage: Number
  • fineRate: Number
  • dailyLateInterestValue: Number
  • creationDate: DateTime
  • contractDate: DateTime
  • issueDate: DateTime
  • cancellationDate: DateTime
  • financialInstitutionDate: DateTime
  • customers: Array of Objects
    • id: Integer
    • main: Boolean
    • spouse: Boolean
    • participationPercentage: Number
    • personType: String
    • cpf: String
    • name: String
    • email: String
    • birthDate: Date
    • marriageDate: Date
    • civilStatus: String
    • fatherName: String
    • motherName: String
    • sex: String
    • cnpj: String
    • nationality: String
    • numberIdentityCard: String
    • profession: String
    • contactName: String
    • fantasyName: String
    • spouseData: Object
    • phones: Array of Objects
    • addresses: Array of Objects
  • units: Array of Objects
    • id: Integer
    • main: Boolean
    • participationPercentage: Number
    • name: String
    • propertyType: String
    • note: String
    • commercialStock: String
    • legalRegistrationNumber: String
    • deliveryDate: DateTime
    • privateArea: Number
    • commonArea: Number
    • terrainArea: Number
    • idealFraction: Number
    • idealFractionSquareMeter: Number
    • indexedQuantity: Number
    • childUnits: Array of Objects
    • groupings: Array of Objects
  • paymentConditions: Array of Objects
  • brokers: Array of Objects
Stream containing income and receipt information.Fields:
  • companyId: Integer
  • companyName: String
  • businessAreaId: Integer
  • businessAreaName: String
  • projectId: Integer
  • projectName: String
  • groupCompanyId: Integer
  • groupCompanyName: String
  • holdingId: Integer
  • holdingName: String
  • subsidiaryId: Integer
  • subsidiaryName: String
  • businessTypeId: Integer
  • businessTypeName: String
  • clientId: Integer
  • clientName: String
  • billId: Integer
  • installmentId: Integer
  • documentIdentificationId: String
  • documentIdentificationName: String
  • documentNumber: String
  • documentForecast: String
  • originId: String
  • originalAmount: Number
  • discountAmount: Number
  • taxAmount: Number
  • indexerId: Integer
  • indexerName: String
  • dueDate: Date
  • issueDate: Date
  • billDate: Date
  • installmentBaseDate: Date
  • balanceAmount: Number
  • correctedBalanceAmount: Number
  • periodicityType: String
  • embeddedInterestAmount: Number
  • interestType: String
  • interestRate: Number
  • correctionType: String
  • interestBaseDate: String
  • defaulterSituation: String
  • subJudicie: String
  • mainUnit: String
  • installmentNumber: String
  • bearerId: Integer
  • paymentTerm: Object
  • receiptsCategories: Array of Objects
  • receipts: Array of Objects
Stream for managing business budget information.Fields:
  • id: Integer
  • startDate: Date
  • endDate: Date
  • baseDate: Date
  • description: String
  • budgetType: String
  • vision: String
  • companyId: Integer
  • companyName: String
  • costCenterId: Integer
  • costCenterName: String
  • departmentId: Integer
  • departmentName: String
  • versionNumber: Integer
  • versionDescription: String
  • paymentCategories: Array of Objects
    • id: String
    • description: String
    • type: String
    • notes: String
    • interval: Array of Objects
      • monthYear: String
      • totalPrice: Number
Stream containing accounting balances for cost centers.Fields:
  • costCenterId: Integer
  • companyId: Integer
  • entryId: Integer
  • batchId: Integer
  • id: Integer
  • accountId: String
  • previousBalance: Number
  • previousBalanceType: String
  • debitBalance: Number
  • creditBalance: Number
  • balanceCarriedForward: Number
  • balanceCarriedForwardType: String
  • monthYear: String
Stream with detailed information about invoice items.Fields:
  • entryExitType: Integer
  • itemType: String
  • entryExitDate: Date
  • costCenterId: Integer
  • documentNumber: String
  • documenCode: String
  • seriesType: String
  • issueDate: Date
  • participantCode: Integer
  • participantName: String
  • participantFederatedUnit: String
  • participantStateRegistration: String
  • participantCpfCnpj: String
  • productCode: Integer
  • productDescription: String
  • unitOfMeasureSymbol: String
  • ncm: String
  • operationTaxCode: String
  • productOriginCode: String
  • quantity: Number
  • unitPriceValue: Number
  • freightValue: Number
  • insuranceValue: Number
  • ipiExpensesValue: Number
  • ancillaryExpensesValue: Number
  • discountValue: Number
  • totalItemValue: Number
  • pisTaxSituation: String
  • pisCalculationBasis: Number
  • pisRate: Number
  • pisValue: Number
  • cofinsTaxSituation: String
  • cofinsCalculationBasis: Number
  • cofinsRate: Number
  • cofinsValue: Number
  • icmsTaxSituation: String
  • icmsCalculationBasis: Number
  • icmsRate: Number
  • icmsValue: Number
  • icmsStCalculationBasis: Number
  • icmsStRate: Number
  • icmsStValue: Number
  • icmsExoneratedValue: Number
  • icmsExemptValue: Number
  • icmsOtherValue: Number
  • ipiTaxSituation: String
  • ipiCalculationBasis: Number
  • ipiRate: Number
  • ipiValue: Number
  • ipiExemptValue: Number
  • ipiOtherValue: Number
Stream for managing bills from defaulter customers.Fields:
  • companyId: Integer
  • clientId: Integer
  • clientName: String
  • receivableBillId: String
  • issueDate: Date
  • documentNumber: String
  • costCentersId: Array of Integers
  • units: String
  • receivableBillValue: Number
  • defaulterInstallments: Array of Objects
    • installmentId: String
    • conditionType: String
    • dueDate: Date
    • daysOfDelay: Integer
    • correctedValueWithoutAdditions: Number
    • proRata: Number
    • interest: Number
    • fine: Number
    • totalAdditions: Number
    • correctedValueWithAdditions: Number
    • installmentNumber: String
    • installmentSentToSPCSerasa: String
  • defaulterJudicialActivities: Array of Objects
    • recordDate: Date
    • situation: String
    • concluded: String
    • observation: String
Stream containing bank movement and transaction data.Fields:
  • bankMovementId: Integer
  • billId: Integer
  • installmentId: Integer
  • bankMovementAmount: Number
  • documentIdentificationId: String
  • documentIdentificationName: String
  • documentIdentificationNumber: String
  • bankMovementOriginId: String
  • bankMovementHistoricId: Integer
  • bankMovementHistoricName: String
  • bankMovementOperationId: Integer
  • bankMovementOperationName: String
  • bankMovementOperationType: String
  • bankMovementReconcile: String
  • bankMovementDate: Date
  • billDate: Date
  • accountNumber: String
  • companyId: Integer
  • companyName: String
  • groupCompanyId: Integer
  • groupCompanyName: String
  • holdingId: Integer
  • holdingName: String
  • subsidiaryId: Integer
  • subsidiaryName: String
  • creditorId: Integer
  • creditorName: String
  • clientId: Integer
  • clientName: String
  • financialCategories: Array of Objects
  • departamentCosts: Array of Objects
  • buldingCosts: Array of Objects
Stream for customer debt balance information.Fields:
  • billReceivableId: Integer
  • company: Object
    • id: Integer
    • name: String
  • costCenter: Object
    • id: Integer
    • name: String
  • customer: Object
    • id: Integer
    • name: String
    • document: String
  • secondaryCustomers: Array of Objects
  • emissionDate: Date
  • accountingDate: Date
  • totalValue: Number
  • lastRenegotiationDate: Date
  • correctionDate: Date
  • document: String
  • cancellationDate: Date
  • units: Array of Objects
  • installments: Array of Objects
Stream for items in building cost estimations.Fields:
  • buildingId: Integer
  • buildingName: String
  • buildingStatus: String
  • projects: Array of Objects
    • id: Integer
    • name: String
  • versionNumber: Integer
  • buildingUnitId: Integer
  • buildingUnitName: String
  • id: Integer
  • wbsCode: String
  • workItemId: Integer
  • description: String
  • unitOfMeasure: String
  • quantity: Number
  • unitPrice: Number
  • totalPrice: Number
  • baseTotalPrice: Number
  • scheduledPercentComplete: Number
  • percentComplete: Number
  • measuredQuantity: Number
  • pricesByCategory: Array of Objects
  • tasks: Array of Objects
Stream containing accounting balances for companies.Fields:
  • companyId: Integer
  • id: Integer
  • accountId: String
  • previousBalance: Number
  • previousBalanceType: String
  • debitBalance: Number
  • creditBalance: Number
  • balanceCarriedForward: Number
  • balanceCarriedForwardType: String
  • monthYear: String
Stream containing outcome and payment information.Fields:
  • companyId: Integer
  • companyName: String
  • businessAreaId: Integer
  • businessAreaName: String
  • projectId: Integer
  • projectName: String
  • groupCompanyId: Integer
  • groupCompanyName: String
  • holdingId: Integer
  • holdingName: String
  • subsidiaryId: Integer
  • subsidiaryName: String
  • businessTypeId: Integer
  • businessTypeName: String
  • creditorId: Integer
  • creditorName: String
  • billId: Integer
  • installmentId: Integer
  • documentIdentificationId: String
  • documentIdentificationName: String
  • documentNumber: String
  • forecastDocument: String
  • consistencyStatus: String
  • originId: String
  • originalAmount: Number
  • discountAmount: Number
  • taxAmount: Number
  • indexerId: Integer
  • indexerName: String
  • dueDate: Date
  • issueDate: Date
  • installmentBaseDate: Date
  • balanceAmount: Number
  • correctedBalanceAmount: Number
  • authorizationStatus: String
  • billDate: Date
  • registeredUserId: String
  • registeredBy: String
  • registeredDate: DateTime
  • paymentsCategories: Array of Objects
  • departamentsCosts: Array of Objects
  • buildingsCosts: Array of Objects
  • payments: Array of Objects
  • authorizations: Array of Objects
Stream for managing building resources. Requires building_ids configuration.Fields:
  • buildingResourceId: Integer
  • buildingId: Integer
  • buildingName: String
  • description: String
  • unitOfMeasure: String
  • unitPrice: Number
  • priceDate: Date
  • priceCategory: String
  • resourceCode: String
  • category: String
  • resourceGroup: String
  • synonym: String
  • financialCategory: String
  • taxClassification: String
  • productTax: String
  • isActive: Boolean
  • detailId: Integer
  • detailDescription: String
  • trademarkId: Integer
  • trademarkDescription: String
  • minimumStock: Integer
  • maximumStock: Integer
  • estimatedDeliveryTime: Integer
  • hasServiceFeature: Boolean
  • deliveryInterval: Integer
  • installments: Array of Objects
  • movementUnits: Array of Objects
  • notes: Array of Objects
  • buildingCostEstimationItems: Array of Objects
  • disbursements: Array of Objects
  • remainingDisbursement: Number
  • buildingAppropriations: Object
Stream for the history of customer extracts.Fields:
  • billReceivableId: Integer
  • company: Object
    • id: Integer
    • name: String
  • costCenter: Object
    • id: Integer
    • name: String
  • customer: Object
    • id: Integer
    • name: String
    • document: String
  • emissionDate: Date
  • lastRenegotiationDate: Date
  • correctionDate: Date
  • document: String
  • privateArea: Number
  • oldestInstallmentDate: Date
  • revokedBillReceivableDate: Date
  • units: Array of Objects
  • installments: Array of Objects
Stream for managing purchase quotations.Fields:
  • purchaseQuotationId: Integer
  • registeredDate: Date
  • lastModification: Date
  • purchaseQuotationDate: Date
  • sentDate: Date
  • responseDeadline: Date
  • notes: String
  • minNumberOfSuppliers: Integer
  • suggestedNumberOfSuppliers: Integer
  • buyerId: String
  • purchaseQuotationItems: Array of Objects
    • purchaseQuotationItemId: Integer
    • buildingId: Integer
    • productId: Integer
    • productDescription: String
    • detailId: Integer
    • detailDescription: String
    • trademarkId: Integer
    • trademarkDescription: String
    • quantity: Number
    • unitySimbol: String
    • notes: String
  • purchaseQuotationSuppliers: Array of Objects
    • supplierId: Integer
    • negotiations: Array of Objects