Skip to content

France Quickstart

This quickstart walks you through creating your first signed fiscal record with fiskaly SIGN FR, fulfilling the three key French fiscal obligations: signing, journaling, and archiving.

  • A fiskaly account (sign up at hub.fiskaly.com)
  • An API Key and Secret for a GROUP organization in the TEST environment
  • Taxpayer information: company name, SIREN number, address
  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 Organization, Taxpayer, Location, and System

    The setup follows the same pattern as SIGN IT — create a UNIT organization, then a Taxpayer, Location, and System, commissioning each resource:

    # Create 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 French Company"}}'
    
    # Create Subject API Key for the UNIT, re-authenticate, then:
    
    # Create Taxpayer
    curl -X POST https://test.api.fiskaly.com/taxpayers \
      -H "Authorization: Bearer ${UNIT_TOKEN}" \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -d '{
        "content": {
          "type": "COMPANY",
          "name": {"legal": "Ma Societe SARL"},
          "address": {"street": "1 Rue de Rivoli", "zip": "75001", "city": "Paris", "country_code": "FR"},
          "fiscalization": {
            "type": "FR",
            "tax_id_number": "123456789"
          }
        }
      }'
    
    # Commission Taxpayer, create + commission Location and System
    # (same pattern as SIGN IT — see full integration guide)
  3. Create your first Record

    # Part A: Intention
    curl -X POST https://test.api.fiskaly.com/records \
      -H "Authorization: Bearer ${UNIT_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 ${UNIT_TOKEN}" \
      -H "Content-Type: application/json" \
      -H "X-Api-Version: 2026-02-03" \
      -H "X-Idempotency-Key: $(uuidgen)" \
      -d '{
        "content": {
          "type": "TRANSACTION",
          "intention": {"id": "INTENTION_ID"},
          "operation": {
            "type": "RECEIPT",
            "document": {
              "number": "1",
              "date": "2026-02-27",
              "amounts": {
                "total_including_vat": "12.00",
                "total_excluding_vat": "10.00"
              }
            },
            "entries": [{
              "type": "SALE",
              "description": "Product A",
              "nature": "GOOD",
              "quantity": "1",
              "amounts": {
                "unit_including_vat": "12.00",
                "total_including_vat": "12.00",
                "total_excluding_vat": "10.00",
                "vat": {"rate": "20.00", "amount": "2.00"}
              }
            }]
          }
        }
      }'

    Once created, the data is automatically signed, journaled, and archived — fulfilling the three key NF525 fiscal obligations.

Was this page helpful?