{"templateId":"../../../@theme/Templates/StepByStep.tsx","sharedDataIds":{"sidebar":"sidebar-introduction/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["implementationExample","restVersion","split","sdkVersion"]},"type":"markdown"},"seo":{"title":"Implementation example","description":"Pigello API documentation for integrations, property management, and real estate services.","keywords":["Pigello","API","Documentation","Integration","Proptech Integration","Docs MCP","MCP","OpenAPI","Swagger"]},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"implementation-example","__idx":0},"children":["Implementation example"]},{"$$mdtype":"Tag","name":"ImplementationExampleWithToggle","attributes":{},"children":[{"$$mdtype":"Tag","name":"RestVersionSlot","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This section gives a step-by-step example for fetching bookkeeping data and optionally marking verifications as synced. It assumes activation level ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/organization"},"children":["organization.company"]}," (API calls are then scoped to that company)."]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-confirmed-verification-groups","__idx":1},"children":["Step 1: Confirmed verification groups"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fetch confirmed verification groups after a given date (e.g. 30 days before the run)."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Unconfirmed groups have no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmation_date"]}," and are excluded."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["For minimal payload, add ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["_slim=true"]}," to return only ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]},"."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/accounting"},"children":["GET /accounting/bookkeeping/verificationgroup/list/"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"GET .../accounting/bookkeeping/verificationgroup/list/?_page=1&_page_size=500&confirmation_date__gte=2024-01-15\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Query parameters:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page"]}," — Page number (e.g. 1)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page_size"]}," — Page size (e.g. 500)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["confirmation_date__gte"]}," — Only groups confirmed on or after this date (e.g. 2024-01-15)"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-verifications-in-those-groups","__idx":2},"children":["Step 2: Verifications in those groups"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fetch ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/accounting"},"children":["accounting.verification"]}," items in the groups from step 1, with a registration date filter (e.g. same 30-day window) to avoid re-syncing old data."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Filtering on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["registration_date"]}," is recommended to avoid duplicate syncs."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/accounting"},"children":["GET /accounting/bookkeeping/verification/list/"]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"GET .../accounting/bookkeeping/verification/list/?_page=1&_page_size=500&registration_date__gte=2024-01-15&verification_group__in=<group-id-1>,<group-id-2>\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Query parameters:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page"]}," — Page number (e.g. 1)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page_size"]}," — Page size (e.g. 500)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["registration_date__gte"]}," — Only verifications registered on or after this date (e.g. 2024-01-15)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["verification_group__in"]}," — Comma-separated IDs from step 1"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-transactions-for-those-verifications","__idx":3},"children":["Step 3: Transactions for those verifications"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fetch ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/accounting"},"children":["accounting.transaction"]}," items for the verifications from step 2."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/accounting"},"children":["GET /accounting/bookkeeping/transaction/list/"]}," (or equivalent transaction list in the API)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"GET .../accounting/bookkeeping/transaction/list/?_page=1&_page_size=500&verification__in=<verification-id-1>,<verification-id-2>\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Query parameters:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page"]}," — Page number (e.g. 1)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page_size"]}," — Page size (e.g. 500)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["verification__in"]}," — Comma-separated verification IDs from step 2"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-4-optional-invoice-pdf-files","__idx":4},"children":["Step 4 (optional): Invoice PDF files"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Collect the set of invoice IDs from the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["invoice"]}," field on the verifications from step 2."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Fetch ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/accounting"},"children":["accounting.invoicerelatedpdffile"]}," items."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," List endpoint for invoice-related PDF files (see API Reference)."]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"GET .../accounting/invoicerelatedpdffile/list/?_page=1&_page_size=500&invoice__in=<invoice-id-1>,<invoice-id-2>\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Query parameters:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page"]}," — Page number (e.g. 1)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page_size"]}," — Page size (e.g. 500)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["invoice__in"]}," — Comma-separated invoice IDs from verifications (step 2)"]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-5-optional-mark-verifications-as-synced","__idx":5},"children":["Step 5 (optional): Mark verifications as synced"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can record that a verification has been synced/processed. This reduces duplicate syncs and allows Pigello UI to show sync status."]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["POST"]}," to the list endpoint for ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/integrations"},"children":["integrations.integrationserviceidconnection"]}," with a list of items."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["content_type"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{\"id\":\"accounting.verification\"}"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["object_id"]}," to the verification ID."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["external_id"]}," to the ID in your external system."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Endpoint:"]}," List endpoint for ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/integrations"},"children":["integrations.integrationserviceidconnection"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To list connections for verifications:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"header":{"controls":{"copy":{}}},"source":"GET .../integrations/integrationserviceidconnection/list/accounting.verification/?_page=1&_page_size=500\n"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Query parameters:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page"]}," — Page number (e.g. 1)"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["_page_size"]}," — Page size (e.g. 500)"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Notes:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["All activations of your integration can read each other's integration-service-id connections (e.g. Company A can see connections for Company B)."]}]}]}]},{"$$mdtype":"Tag","name":"SdkVersionSlot","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This section gives the same bookkeeping flow using the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Pigello Python SDK"]},". It assumes activation level ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/organization"},"children":["organization.company"]}," (list calls are then scoped to that company)."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You need a session for integration (user-agent) access. Use ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["APIUserAgentSession"]}]}," from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["pigello_sdk.session"]}," with your application ID, service ID, target customer, content type, target object ID, client secret, and optionally service version ID. See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/tools/sdks/#session-authentication"},"children":["Python SDK — Session"]}," for details."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-confirmed-verification-groups-1","__idx":6},"children":["Step 1: Confirmed verification groups"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fetch confirmed verification groups after a given date (e.g. 30 days before the run). Unconfirmed groups have no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmation_date"]}," and are excluded by the filter."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"from pigello_sdk.entities.accounting.verificationgroup import Verificationgroup\n\nsince_date = date.today() - timedelta(days=30)\n\nvg_query = Verificationgroup.get_query_helper(session)\nvg_query.add_filters([\n    FilterInstruction(\"confirmation_date\", FILTER_OPERATIONS.GTE, since_date),\n    FilterInstruction(\"_slim\", FILTER_OPERATIONS.EQ, True), # if you don't need the rest of the attributes for the verification-groups\n])\nvg_query.set_pagination(page_size=500, page=1)\n\nvg_result = vg_query.collect_query()\nverification_groups = vg_result.instances  # EntitiesList[Verificationgroup]\n\ngroup_ids = [vg.id for vg in verification_groups if vg.id]\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-verifications-in-those-groups-1","__idx":7},"children":["Step 2: Verifications in those groups"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fetch ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/accounting"},"children":["accounting.verification"]}," items in the groups from step 1, with a registration date filter (e.g. same 30-day window) to avoid re-syncing old data."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"from pigello_sdk.entities.accounting.verification import Verification\n\nv_query = Verification.get_query_helper(session)\nv_query.add_filters([\n    FilterInstruction(\"registration_date\", FILTER_OPERATIONS.GTE, since_date),\n    FilterInstruction(\"verification_group\", FILTER_OPERATIONS.IN, group_ids),\n])\nv_query.set_pagination(page_size=500, page=1)\n\nv_result = v_query.collect_query()\nverifications = v_result.instances  # EntitiesList[Verification]\n\nverification_ids = [v.id for v in verifications if v.id]\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-transactions-for-those-verifications-1","__idx":8},"children":["Step 3: Transactions for those verifications"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Fetch ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/accounting"},"children":["accounting.transaction"]}," items for the verifications from step 2."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"from pigello_sdk.entities.accounting.transaction import Transaction\n\nt_query = Transaction.get_query_helper(session)\nt_query.add_filters([\n    FilterInstruction(\"verification\", FILTER_OPERATIONS.IN, verification_ids),\n])\nt_query.set_pagination(page_size=500, page=1)\n\nt_result = t_query.collect_query()\ntransactions = t_result.instances  # EntitiesList[Transaction]\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-4-optional-invoice-pdf-files-1","__idx":9},"children":["Step 4 (optional): Invoice PDF files"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Collect the set of invoice IDs from the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["invoice"]}," field on the verifications from step 2, then fetch ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/accounting"},"children":["accounting.invoicerelatedpdffile"]}," items."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"from pigello_sdk.entities.accounting.invoicerelatedpdffile import Invoicerelatedpdffile\n\n# Collect invoice IDs from verifications (resolve invoice if needed)\ninvoice_ids = list({v.invoice.id for v in verifications if v.invoice and v.invoice.id})\n\nif invoice_ids:\n    pdf_query = Invoicerelatedpdffile.get_query_helper(session)\n    pdf_query.add_filters([\n        FilterInstruction(\"invoice\", FILTER_OPERATIONS.IN, invoice_ids),\n    ])\n    pdf_query.set_pagination(page_size=500, page=1)\n    pdf_result = pdf_query.collect_query()\n    pdf_files = pdf_result.instances  # EntitiesList[Invoicerelatedpdffile]\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Split","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-5-optional-mark-verifications-as-synced-1","__idx":10},"children":["Step 5 (optional): Mark verifications as synced"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Record that a verification has been synced/processed by creating ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/apis/integrations"},"children":["integrations.integrationserviceidconnection"]}," rows. Set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["content_type"]}," to the content type for verification, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["object_id"]}," to the verification ID, and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["external_id"]}," to the ID in your external system."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Notes:"]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["All activations of your integration can read each other's integration-service-id connections (e.g. Company A can see connections for Company B)."]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"from pigello_sdk.entities.integrations.integrationserviceidconnection import Integrationserviceidconnection\nfrom pigello_sdk.entities.contenttypes.contenttype import Contenttype\n\nVERIFICATION_CONTENT_TYPE = \"accounting.verification\"\n\n# Example: (verification_id, external_system_id) for each synced verification\nsync_map = [\n    (some_verification_id, \"external-id-1\"),\n    (another_verification_id, \"external-id-2\"),\n]\n\nconnections = []\nfor object_id, external_id in sync_map:\n    conn = Integrationserviceidconnection(\n        session=session,\n        content_type=Contenttype(id=VERIFICATION_CONTENT_TYPE),\n        object_id=object_id,\n        external_id=external_id,\n    )\n    connections.append(conn)\n\nif connections:\n    list_to_save = bulk.EntitiesList(session, connections)\n    list_to_save.save()\n","lang":"python"},"children":[]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"summary","__idx":11},"children":["Summary"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Step"},"children":["Step"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"SDK entities"},"children":["SDK entities"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Action"},"children":["Action"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["1"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Verificationgroup"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Filter ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["confirmation_date__gte"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["collect_query()"]},", collect group IDs."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["2"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Verification"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Filter ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["registration_date__gte"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification_group__in"]},", collect verification IDs."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["3"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Transaction"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Filter ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification__in"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["4 (optional)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Invoicerelatedpdffile"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Filter ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["invoice__in"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["5 (optional)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Integrationserviceidconnection"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Build instances with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Contenttype(id=\"accounting.verification\")"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["object_id"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["external_id"]},"; put in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["EntitiesList(session, list)"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".save()"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For more on the SDK (session types, filters, resolving relations), see the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/tools/sdks/"},"children":["Python SDK"]}," documentation."]}]}]}]},"headings":[{"value":"Implementation example","id":"implementation-example","depth":1},{"value":"Step 1: Confirmed verification groups","id":"step-1-confirmed-verification-groups","depth":3},{"value":"Step 2: Verifications in those groups","id":"step-2-verifications-in-those-groups","depth":3},{"value":"Step 3: Transactions for those verifications","id":"step-3-transactions-for-those-verifications","depth":3},{"value":"Step 4 (optional): Invoice PDF files","id":"step-4-optional-invoice-pdf-files","depth":3},{"value":"Step 5 (optional): Mark verifications as synced","id":"step-5-optional-mark-verifications-as-synced","depth":3},{"value":"Step 1: Confirmed verification groups","id":"step-1-confirmed-verification-groups-1","depth":3},{"value":"Step 2: Verifications in those groups","id":"step-2-verifications-in-those-groups-1","depth":3},{"value":"Step 3: Transactions for those verifications","id":"step-3-transactions-for-those-verifications-1","depth":3},{"value":"Step 4 (optional): Invoice PDF files","id":"step-4-optional-invoice-pdf-files-1","depth":3},{"value":"Step 5 (optional): Mark verifications as synced","id":"step-5-optional-mark-verifications-as-synced-1","depth":3},{"value":"Summary","id":"summary","depth":2}],"frontmatter":{"template":"../../../@theme/Templates/StepByStep.tsx","title":"Implementation example","seo":{"title":"Implementation example"}},"lastModified":"2026-02-26T12:35:56.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/introduction/cases/bookkeeping-data/implementation-example","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}