Microsoft Dynamics NAV · Arazzo Workflow

Business Central Create a Sales Invoice for a Customer

Version 1.0.0

Resolve a customer by number, draft a sales invoice, and verify it by id.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Business ManagementDynamics NAVERPFinanceInventoryMicrosoftNavisionArazzoWorkflows

Provider

navision

Workflows

create-sales-invoice-for-customer
Resolve a customer, create a sales invoice, and confirm it via list filter.
Finds the customer by number, creates a draft sales invoice referencing the resolved customer id, and lists sales invoices filtered to the new invoice number to confirm it persisted.
3 steps inputs: companyId, currencyCode, customerNumber, externalDocumentNumber, invoiceDate outputs: confirmedTotalIncludingTax, invoiceId, invoiceNumber
1
findCustomer
Resolve the customer by number to obtain the id required to bind the sales invoice, returning at most one match.
2
createSalesInvoice
Create a draft sales invoice bound to the resolved customer id.
3
confirmInvoice
List sales invoices filtered to the newly created invoice number to confirm the draft persisted.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Business Central Create a Sales Invoice for a Customer
  summary: Resolve a customer by number, draft a sales invoice, and verify it by id.
  description: >-
    A billing entry flow for Business Central. The workflow resolves a customer
    by their number to obtain the customer id, creates a draft sales invoice
    bound to that customer, and then lists sales invoices filtered to the new
    invoice number to confirm the document landed. Every step spells out its
    request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-200.30
  - BC-420.10
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-200.30
      capability_name: Accounts Receivable Management
      spec: navision-sales-invoices-api-openapi.yml
      confidence: 0.85
    - capability_id: BC-420.10
      capability_name: Customer Data Management
      spec: navision-customers-api-openapi.yml
      confidence: 0.75
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: customersApi
  url: ../openapi/navision-customers-api-openapi.yml
  type: openapi
- name: salesInvoicesApi
  url: ../openapi/navision-sales-invoices-api-openapi.yml
  type: openapi
workflows:
- workflowId: create-sales-invoice-for-customer
  summary: Resolve a customer, create a sales invoice, and confirm it via list filter.
  description: >-
    Finds the customer by number, creates a draft sales invoice referencing the
    resolved customer id, and lists sales invoices filtered to the new invoice
    number to confirm it persisted.
  inputs:
    type: object
    required:
    - companyId
    - customerNumber
    properties:
      companyId:
        type: string
        description: The UUID of the Business Central company.
      customerNumber:
        type: string
        description: The number of the customer the invoice is for.
      externalDocumentNumber:
        type: string
        description: An external reference number for the invoice.
      invoiceDate:
        type: string
        description: The invoice date (YYYY-MM-DD).
      currencyCode:
        type: string
        description: The currency code for the invoice.
  steps:
  - stepId: findCustomer
    description: >-
      Resolve the customer by number to obtain the id required to bind the sales
      invoice, returning at most one match.
    operationId: listCustomers
    parameters:
    - name: company_id
      in: path
      value: $inputs.companyId
    - name: $filter
      in: query
      value: "number eq '$inputs.customerNumber'"
    - name: $top
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      customerId: $response.body#/value/0/id
      customerName: $response.body#/value/0/displayName
  - stepId: createSalesInvoice
    description: >-
      Create a draft sales invoice bound to the resolved customer id.
    operationId: createSalesInvoice
    parameters:
    - name: company_id
      in: path
      value: $inputs.companyId
    requestBody:
      contentType: application/json
      payload:
        externalDocumentNumber: $inputs.externalDocumentNumber
        invoiceDate: $inputs.invoiceDate
        customerId: $steps.findCustomer.outputs.customerId
        customerNumber: $inputs.customerNumber
        currencyCode: $inputs.currencyCode
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      invoiceId: $response.body#/id
      invoiceNumber: $response.body#/number
      status: $response.body#/status
  - stepId: confirmInvoice
    description: >-
      List sales invoices filtered to the newly created invoice number to
      confirm the draft persisted.
    operationId: listSalesInvoices
    parameters:
    - name: company_id
      in: path
      value: $inputs.companyId
    - name: $filter
      in: query
      value: "number eq '$steps.createSalesInvoice.outputs.invoiceNumber'"
    - name: $top
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      confirmedId: $response.body#/value/0/id
      confirmedTotalIncludingTax: $response.body#/value/0/totalAmountIncludingTax
  outputs:
    invoiceId: $steps.createSalesInvoice.outputs.invoiceId
    invoiceNumber: $steps.createSalesInvoice.outputs.invoiceNumber
    confirmedTotalIncludingTax: $steps.confirmInvoice.outputs.confirmedTotalIncludingTax

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/navision-create-sales-invoice-for-customer-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.