Skip to content

Italy Quickstart

This quickstart covers the essential steps to get started with the SIGN IT API, from authentication to creating your first fiscal record. For a more detailed walkthrough, refer to our integration guide.

We prepared a Postman collection that allows you to step through the most important functions of this API. You can download it by following these instructions.

  • A fiskaly account (sign up at hub.fiskaly.com)
  • An API Key and Secret for an Organization GROUP in the TEST environment
  • Fisconline credentials for the taxpayer (real credentials required in LIVE only)
  1. Authenticate

    curl -X POST https://test.api.fiskaly.com/tokens \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -d '{
        "content": {
          "type": "API_KEY",
          "key": "YOUR_API_KEY",
          "secret": "YOUR_API_SECRET"
        }
      }'
  2. Create an Organization UNIT

    curl -X POST https://test.api.fiskaly.com/organizations \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -d '{
        "content": {
          "type": "UNIT",
          "name": "My Italian Merchant"
        }
      }'
  3. Create a Subject API Key and authenticate

    Create an API key for the UNIT, then authenticate with it:

    # Create Subject API Key (scoped to the `UNIT`)
    curl -X POST https://test.api.fiskaly.com/subjects \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -H "X-Scope-Identifier: ${ORG_ID}" \
      -d '{"content": {"type": "API_KEY"}}'
    
    # Authenticate with the new API Key
    curl -X POST https://test.api.fiskaly.com/tokens \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -d '{"content": {"type": "API_KEY", "key": "NEW_KEY", "secret": "NEW_SECRET"}}'
  4. Create Taxpayer, Location, and System

    # Create Taxpayer
    curl -X POST https://test.api.fiskaly.com/taxpayers \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -d '{
        "content": {
          "type": "COMPANY",
          "name": {
            "legal": "La Pizzeria di Mario S.r.l.",
            "trade": "La Pizzeria di Mario"
          },
          "address": {
            "line": {
              "type": "STREET_NUMBER",
              "street": "Via Roma",
              "number": "123"
            },
            "code": "00100",
            "city": "Rome",
            "country": "IT"
          },
          "fiscalization": {
            "type": "IT",
            "tax_id_number": "12345678901",
            "vat_id_number": "12345678901",
            "credentials": {
              "type": "FISCONLINE",
              "pin": "1234567890",
              "password": "MySecurePassword123",
              "tax_id_number": "RSSMRA85M01H501Z"
            }
          }
        }
      }'
    
    # Commission Taxpayer
    curl -X PATCH "https://test.api.fiskaly.com/taxpayers/${TAXPAYER_ID}" \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -d '{"content": {"state": "COMMISSIONED"}}'
  5. Create your first Record

    Records require two calls: an INTENTION followed by a TRANSACTION.

    # Part A: Intention
    curl -X POST https://test.api.fiskaly.com/records \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -d '{
        "content": {
          "type": "INTENTION",
          "system": {"id": "YOUR_SYSTEM_ID"},
          "operation": {"type": "TRANSACTION"}
        }
      }'
    
    # Part B: Transaction
    curl -X POST https://test.api.fiskaly.com/records \
      -H "Authorization: Bearer ${ACCESS_TOKEN}" \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -d '{
        "content": {
          "type": "TRANSACTION",
          "record": {
            "id": "your_intention_id"
          },
          "operation": {
            "type": "RECEIPT",
            "document": {
              "number": "1",
              "total_vat": {
                "amount": "2.20",
                "exclusive": "10.00",
                "inclusive": "12.20"
              }
            },
            "entries": [
              {
                "type": "SALE",
                "details": {
                  "concept": "GOOD"
                },
                "data": {
                  "type": "ITEM",
                  "text": "Margherita Pizza",
                  "unit": {
                    "quantity": "1",
                    "price": "12.20"
                  },
                  "value": {
                    "base": "10.00",
                    "discount": "0.00"
                  },
                  "vat": {
                    "type": "VAT_RATE",
                    "code": "STANDARD",
                    "percentage": "22.00",
                    "exclusive": "10.00",
                    "inclusive": "12.20",
                    "amount": "2.20"
                  }
                }
              }
            ],
            "payments": [
              {
                "type": "CASH",
                "details": {
                  "amount": "12.20"
                }
              }
            ]
          }
        }
      }'

    If the record reaches COMPLETED state with FINISHED mode, the commercial document has been transmitted to AdE.

Want to run through all the steps automatically? Download and run our quickstart script:

# Download and run
curl -O https://workspace.fiskaly.com/scripts/sign-it-quickstart.sh
export API_KEY="your_api_key"
export API_SECRET="your_api_secret"
export GROUP_ORG_ID="your_group_org_id"
bash sign-it-quickstart.sh

Was this page helpful?