Products
MaxaFiCashaFiCredaFiVendaFiTaxaFiFiskl AIStrataFi
Platform
Card processingInstant paymentsTap to pay and SDKPoint of saleResidual engineRisk, KYC and AMLLedger and wallet
Solutions
ISOs and agentsSoftware vendorsOEMs and devicesBanks and networksMerchantsAdvisory firms
Company
AboutLeadershipCareersNewsroomDevelopersPartner programTrust and securityContact
Get started
Apply as a merchantApply as a partnerBizBoxMerchant sign-inSales rep sign-inConsumer sign-inMaxaFi platformAll entry points
DDevelopers

Six calls to run a transaction.

Nineteen SDK calls in total, more than 140 REST endpoints, and a sandbox that behaves like production. Documentation is written for the engineer doing the integration, not for the person approving it.

TaxaFi API

Ask what tax is due. Get an answer with its work shown.

A scoped tx_ key in a header, the consumer address in the body, and a response that names the jurisdictions it resolved and the rate applied at each level. Money is expressed in dollars to two decimals; rates come back as decimals.

// What tax is due, at this address, on this category.
const res = await fetch("https://maxafi.com/taxafi/v1/calculate", {
  method:  "POST",
  headers: {
    "X-Api-Key":         "tx_...",
    "X-Idempotency-Key": "txn_88231",
    "Content-Type":     "application/json"
  },
  body: JSON.stringify({
    amount:        100.00,     // decimal dollars
    category_code: "GEN",
    ship_to: {                // the CONSUMER address, not the merchant
      street: "1100 Congress Ave",
      city:   "Austin",
      state:  "TX",
      zip:    "78701"
    }
  })
});

// response
{
  "combined_rate": 0.0825,
  "tax_total": 8.25, "total": 108.25,
  "resolution": { "confidence": "zip", "resolver": "zip5" },
  "breakdown": [
    { "name": "Texas",  "level": "state", "rate": 0.0625, "tax": 6.25 },
    { "name": "Austin", "level": "city",  "rate": 0.02,   "tax": 2.00 }
  ],
  "data_verified": true
}
TaxaFi API

Filing is four calls

01

calculate

Price each sale. Send the amount, the category and the consumer ship-to address. Returns the combined rate, the per-jurisdiction breakdown and the tax, recorded immutably.

02

filing_form

Find the return. Send the merchant address or state. Returns which form applies for that registration and frequency, its channel, and its field list.

03

prepare_return

Prepare the figures. Send state and period. Returns period totals, a per-category breakdown and a per-jurisdiction rollup, keyed to match form fields.

04

assemble_filing

Build the filing. Returns the ready-to-submit payload and a name-to-value field map, with figures auto-derived from the recorded calculations when you do not supply them.

TaxaFi API · calculation

Working out what is owed

CA

calculate

The core call. Amount, category and consumer address in; combined rate, per-jurisdiction breakdown, tax and a resolution confidence out. Recorded immutably.

RT

rates

A rate lookup without a dollar amount: the resolved jurisdiction stack and the rate at each level.

JU

jurisdictions

Resolve the stack for an address, or list every active jurisdiction in a state from state down to special district.

CT

categories

The category taxonomy, with default taxability on each code.

CL

classify

Maps free text to a category code using AI. Advisory only, meant for review rather than unattended filing.

HL

health

Unauthenticated liveness and engine version, so monitoring does not need a key.

TaxaFi API · filing

Turning that into a return

OB

obligations

The merchant filing calendar: every registration with its closed and in-progress period, form, due date and status, sorted by what is due next.

DD

due_date

The due date for one return, with the rule that produced it and whether it came from a per-state rule or the national default.

PR

prepare_return

Rolls recorded calculations into period figures: totals, per-category and per-jurisdiction, keyed to form fields.

FF

filing_form

Which form the merchant files, its channel and its full field list, chosen from frequency, filer variant and Streamlined status.

AF

assemble_filing

The submittable payload plus a name-to-value field map. A positional line for CSV states, a field map for the rest.

PD

assemble_pdf

Applies the field map to the state blank PDF, filling real form fields or drawing at spec coordinates on flat forms.

SE

assemble_ser

Builds the Streamlined Simplified Electronic Return XML. One call covers the Streamlined member states.

IG

ingest

Lands externally computed figures straight into the tax ledger as signed entries.

LD

ledger

Net position per authority and period: collected, expensed, adjusted and due.

TaxaFi API

It tells you when not to trust it

Every calculation carries a resolution confidence, from ZIP+4 down to state-only, and a data_verified flag that goes false when any applied rate is still unverified sample data. A tax engine that quietly returns a plausible number is worse than one that says it is unsure, so ours says.

✓Resolution confidence: zip4, zip, county FIPS, state or none
✓data_verified false when a rate is not yet verified
✓Warnings naming the specific problem
✓Largest-remainder rounding, so the breakdown sums exactly to the total
✓Effective-dated rates, so a back-dated calculation stays correct
TaxaFi API

Built for someone else to file

The API was designed so a partner can own the submission while TaxaFi owns the computation, the rates and the form definitions. You send the figures and the addresses; you get back the resolved form and the assembled payload. Nobody on your side touches a PDF or a line number.

✓Scoped tx_ keys: calculate, ingest and filing
✓Every key bound to one merchant, no cross-merchant access
✓A consistent envelope with success, payload and meta
✓Idempotency on calculate, so retries never double-record
✓Money as decimal dollars, rates as decimal fractions
Quickstart

What an integration looks like

Authentication is a key in a header, money is expressed in minor units, and every response carries a request identifier you can quote back to support.

// Take a payment. Six calls, this is the middle one.
const res = await fetch("https://api.dapit.com/v1/payments", {
  method:  "POST",
  headers: {
    "X-Api-Key":         key,
    "X-Idempotency-Key": crypto.randomUUID(),
    "Content-Type":     "application/json"
  },
  body: JSON.stringify({
    amount:    4250,          // minor units
    currency:  "USD",
    capture:   true,
    reference: "job-10482"
  })
});

const { success, payment, meta } = await res.json();
// meta.request_id is what support will ask you for
Conventions

How the APIs behave

AU

Authentication

A scoped API key per merchant in a header. Keys carry scopes; an empty scope set means unrestricted.

ID

Idempotency

Send an idempotency key on anything that moves money. Retries are safe by design.

EN

Envelopes

A consistent response envelope with a success flag, the payload and metadata including response time and API version.

WH

Webhooks

Signed callbacks with replay handling, so a missed delivery is recoverable rather than lost.

VR

Versioning

Versioned endpoints; breaking changes get a new version rather than a surprise.

SB

Sandbox

A sandbox with the same envelope, the same errors and the same webhooks as production.

SDK

Nineteen calls, three platforms

The device SDK ships as installable dynamic libraries for Android, Windows and Linux, compatible with Visual Studio and MinGW64, with React, Flutter, Xamarin, Unity and Android Studio supported.

✓PCI MPoC and CPoC certified
✓EMV L2 and L3
✓No key injection required
✓PC/SC reader support on Windows
✓L2 kernel to TLS to cloud to TLS to acquirer

Building something specific?

Integration questions reach the people who wrote the endpoint.