Skip to main content

Square

Square for fancy-flow — as four imported, versioned packages, one per runtime. Not vendored source: a copy cannot be upgraded, and third-party APIs change.

Runtime Package Install
Authoring surface (every host) @particle-academy/square-ui npm install @particle-academy/square-ui
Node @particle-academy/square-js npm install @particle-academy/square-js
PHP 8.4+ particle-academy/square-php composer require particle-academy/square-php
Python 3.11+ fancy-square pip install fancy-square

The ui package is the editor surface and is React on every host — a PHP or Python project installs it and its own runtime package, and never the js one.

What it costs you

One dependency: @particle-academy/fancy-connector-core (or particle-academy/fancy-connector-core on Composer), which the js and php packages pull in themselves. The Python package has zero runtime dependencies.

No Square SDK. Plain HTTP, deliberately: a vendor SDK is third-party code subject to the kit's full approval bar, and one per provider is hundreds of dependencies nobody is tracking.

Setting it up

Everything below is generated from provider/manifest.json, so it cannot disagree with what the packages do.

Credentials

A Square connection holds 1 value.

Every value here is account scope: one per connected account, not one per installation.

Field Scope Secret Where it comes from
Access token per connected account secret From the Square developer dashboard. SANDBOX and PRODUCTION tokens are different values for different hosts -- a sandbox token is refused by the production host rather than accepted, which is the whole reason this provider's estates cannot be confused.

The estate

Square has a separate test host. Selecting sandbox mode changes the base URL.

The one sandbox kind that is genuinely a DIFFERENT PLACE. Stripe's estate is chosen by the key, Telegram's and HubSpot's by the account, SES's not at all -- Square's is another host, with its own data and its own credentials. A sandbox access token sent to the production host is refused rather than silently reaching the real ledger, which makes this the SAFEST of the four kinds and worth saying so: the failure mode is a 401, not a charge.

What it can do

Actions

payment_create — Take payment

Take a payment through Square.

POST /v2/payments · unsafe to replay — a retried durable run does it TWICE

Input Required What it is
sourceId yes A payment token from the Web Payments SDK, a saved card id, or CASH / EXTERNAL. Square calls it source_id.
amount yes In the currency's smallest unit — 1000 is $10.00. Square has no decimal amounts, exactly like Stripe.
currency no Three-letter ISO code. Square wants it UPPERCASE, where Stripe wants it lowercase — the same field, opposite conventions.
locationId no Which of the seller's locations the payment belongs to. Square scopes almost everything by location.
customerId no Customer
referenceId no Your own id for this payment. The usual way to find it again later.
note no Note

Run it before you have credentials

Every operation ships a faker, whether or not Square has a sandbox. Set a node's mode to fake and it returns the shape Square actually publishes — the same field names, deterministically — so you can wire the downstream nodes before touching an account, a key, or a network.

This repository is generated

provider/ is the source. Everything under packages/ is emitted from it and must not be hand-edited — CI regenerates and diffs on every push, and the next protocol sync destroys anything it finds. See AGENTS.md.

Two namespaces, which do not match on purpose

The repo is github.com/Fancy-Friends/square; the packages publish under particle-academy. Nothing derives one from the other — the names come from weaver's friends.json and nowhere else.

Licence

MIT.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fancy_square-0.3.1.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fancy_square-0.3.1-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file fancy_square-0.3.1.tar.gz.

File metadata

  • Download URL: fancy_square-0.3.1.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.15

File hashes

Hashes for fancy_square-0.3.1.tar.gz
Algorithm Hash digest
SHA256 1ed91897dd862ed146eeec3d384bbe379617bac2936e787e4e3da67517db8a7f
MD5 02e4c9d69b367690118d74bbdf03e3ce
BLAKE2b-256 02b4250827696ff58a544f3e04db0576580cef229e65a574c0b64c85eff0cc5a

See more details on using hashes here.

File details

Details for the file fancy_square-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: fancy_square-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.15

File hashes

Hashes for fancy_square-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c82b49cd1eb4ff29ade82b81e4dcbceb92c2b921028e7248d7b82c8cc0bbafb3
MD5 6869ce6bc1790a5420ec4d06f45f2a7f
BLAKE2b-256 e37f4b4ca1249d7c7531f66cc2a33d559418914346d95a43e3dc3afda6a23b4e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 files

0.3.0

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page