SDK Setup

Official SDKs for the Receiptrail API. Get started with Node.js or Python to integrate receipt processing into your application.

Installation

npm install @receiptrail/sdk

Quick Start

import { ReceiptrailClient } from '@receiptrail/sdk';

const client = new ReceiptrailClient({
  accessToken: 'your-logto-personal-access-token',
});

// Ingest a receipt
const response = await client.ingestor.ingestReceipt(
  {
    merchant_code: 'SQUARE_US',
    location_id: 'LOC_123',
    source_type: 'api',
    format_type: 'json',
    receipts: [
      {
        transaction_id: 'txn_001',
        payload: {
          merchant_name: 'Coffee Shop',
          total_amount: 15.99,
          currency: 'USD',
          transaction_date: '2025-01-15T10:30:00Z',
          line_items: [
            {
              name: 'Latte',
              quantity: 1,
              unit_price: 5.99,
              total_price: 5.99,
            },
          ],
        },
      },
    ],
  },
  'unique-idempotency-key-123'
);

// Process a receipt image
const normalized = await client.normalizer.processImage({
  image_url: 'https://example.com/receipt.jpg',
  merchant_code: 'MERCHANT_123',
});

Configuration Options

const client = new ReceiptrailClient({
  // Required: Your Logto Personal Access Token
  accessToken: 'your-pat-token',

  // Optional: Custom Logto endpoint
  // Default: 'https://dtoqr1.logto.app'
  logtoEndpoint: 'https://your-logto-instance.app',

  // Optional: Custom API base URL
  // Default: 'https://api.receiptrail.ai'
  baseUrl: 'https://api.receiptrail.ai',

  // Optional: Request timeout in milliseconds
  // Default: 30000 (30 seconds)
  timeout: 60000,
});

Available Methods

Ingestor Client

  • client.ingestor.ingestReceipt(request, idempotencyKey)
  • client.ingestor.getReceiptValue(startDate?, endDate?)
  • client.ingestor.getReceiptCount(startDate?, endDate?)
  • client.ingestor.getReceiptChart(startDate?, endDate?)
  • client.ingestor.getIngestionSuccessRate(startDate?, endDate?)

Normalizer Client

  • client.normalizer.processImage(request)
  • client.normalizer.processJson(request)
  • client.normalizer.processBulkJson(request)
  • client.normalizer.listReceipts(skip?, limit?)
  • client.normalizer.getReceipt(receiptId)

Next Steps

Get Your Access Token

Learn how to obtain a Personal Access Token (PAT) from Logto to authenticate your SDK requests.

Authentication Guide

Try the Playground

Test our receipt transformation engine live. Extract structured data from receipts instantly.

Try it now