CORD ELEMENTS · EMBEDDABLE QUOTE BUILDER

Your quote builder, inside your client's site.

Cord Elements brings your quotes and invoices into your clients' portal with one line of code. They see your brand, review every line item, approve with a signature, negotiate and pay, and your page receives every step as a typed event.

$npm install @flouviahq/elements

On every plan, including Free. From Starter you remove Cord branding in Settings › Brand appearance. The domains where clients can approve and pay are set in Settings › Embeddable quote builder.

Works wherever your clients already are

Pick your stack. The result is the same.

Only how you load the quote builder changes. The quote, your brand and the events are identical across all of them.

  1. 01
    Copy your snippet

    embed.js for any site, or npm install @flouviahq/elements if you use React, Vue, Framer or Webflow.

  2. 02
    Authorize your domain

    In Settings › Embeddable quote builder add your site's domain so the client can approve and pay there.

  3. 03
    Pass the token

    The quote's public token. Your brand and your details come from your Cord account.

  4. 04
    Listen to events

    onApproved, onPay and the rest to redirect, collect or sync your CRM in real time.

index.html
1<!-- WordPress, Shopify, PHP or plain HTML -->
2<script src="https://cordhq.app/embed.js" async></script>
3<div data-cord-token="YOUR_TOKEN"></div>

ONE LINE OF CODE

Paste. Done. No backend.

A script and a <div>. The quote appears in an iframe served by Cord that measures its content and adjusts its height on its own. There is no server to maintain and no data to sync: the public token is all you need. With data-cord-document="invoice" the same script shows an invoice.

  • WordPress, Webflow, Shopify or plain HTML: any site that accepts a script
  • Automatic height: no scrollbars, no empty boxes
  • Approve, sign and pay only on the domains you authorize; read-only anywhere else

EVENTS

Your page hears about every step your client takes.

When the client opens, approves, rejects, writes or pays, the iframe tells your page with a typed event and its detail. If the seller changes the quote or an invoice gets paid, you hear about it too. With React or Vue they arrive as callbacks; with the Web Component, as DOM events.

  • onApproved carries signed_by and the signature hash
  • onUpdated and onStatusChanged keep your page current; onPaid fires when an invoice is settled
  • Events go only to your site's origin; an unauthorized site gets them without data

HEADLESS

Or build your own interface on top of our state.

If you don't want our design, the headless core gives you the full state to put together a quote from your own UI: line items, client, per-line tax, withholdings and total, with the same engine as the server. Currencies and rates come from your Cord account. You bring the markup; Cord creates the quote and returns its link.

  • A pk_ publishable key in the browser, or your own proxy with an sk_
  • useQuoteBuilder in React, useCordQuoteBuilder in Vue or createQuoteBuilder with no framework
  • baseTheme: "none" to inject no CSS at all

Make it yours without writing CSS.

One theme, 22 variables, per-component rules and layout options. Cord validates every value on its server, with no url() and no !important, and applies it inside the iframe: the quote looks native to your site without touching a single stylesheet.

Themetheme
Primary colorcolorPrimary
#0D1B33
CornersborderRadius
TypefacefontFamily
Buttonrules.Button
Layoutlayout
Live preview
Materiales LevanteCOT-0187 · For Construcciones Turia
Open
Total due6.178,26 €Valid until Oct 18, 2026 · Marta Soler
ItemQtyAmount
Gray cement 25 kgCEM-025 · 6,85 € each2401.644,00 €
B500S rebar Ø10 × 6 mCOR-010 · 9,40 € each1801.692,00 €
Concrete block 40×20×20BLQ-402 · 1,18 € each1.5001.770,00 €
Tax base
5.106,00 €
IVA 21%
1.072,26 €
Total
6.178,26 €
Notes

Freight to the Valencia job site included. Delivery in 3 to 5 business days after the deposit.

Approve quoteDownload PDF

Legally binding signature · Secure payment by Cord

Messages2
You · 10:42

Can you deliver to the job site on Thursday?

Materiales Levante · 10:44

Yes, Thursday before 10:00. Freight is already included.

Write a message
Cotizacion.jsx
1<CordCotizador2  token={token}3  appearance={{4    theme: 'light',5    variables: {6      colorPrimary: '#0D1B33',7      borderRadius: '8px',8    },9  }}10/>

It adapts to your business's country.

The same embed shows the currency, taxes, tax ID and payment rails that match your account, in any of the 12 countries where Cord operates. You write nothing per country.

  • Currency and amount format
  • Per-line tax with its local name
  • Withholdings where they apply: IRPF, ReteFuente
  • Tax ID: EIN, NIF, NIT, RFC
  • Dates in your account's time zone
  • The country's payment methods: card, bank transfer, Mercado Pago
  • Spanish or English, per your account
  • Each country's document when you invoice: European e-invoice, CFDI 4.0 in Mexico
Q-0211Hill Country Builders
Sent
Lone Star Supply Co.EIN 74-3920158
IssuedOct 19, 2026
ItemQtyAmount
Steel rebar #4, 20 ftTX 6.25%× 200$12.50 ea
200$2,500.00
Ready-mix concrete, yd³TX 6.25%× 40$112.50 ea
40$4,500.00
Subtotal$7,000.00
Sales tax TX 6.25%$437.50
TotalUSD $7,437.50
Payment method
CardCredit or debit
Card number4242 4242 4242 4242
Expiration08 / 29
CVC•••
Pay USD $7,437.50
Valid until Nov 2, 2026
COT-0087Café Lumbre S.L.
Enviada
Lucía Ferrer EstudioNIF 12345678Z
Emitida19 oct 2026
ConceptoCant.Importe
Diseño de identidadIVA 21%× 14.800,00 € ud.
14.800,00 €
Sesión de fotografíaIVA 21%× 2800,00 € ud.
21.600,00 €
Base imponible6.400,00 €
IVA 21%1.344,00 €
Retención IRPF 15%−960,00 €
Total6.784,00 €
Método de pago
TarjetaCrédito o débito
Número de tarjeta4242 4242 4242 4242
Caducidad08 / 29
CVC•••
Pagar 6.784,00 €
Válida hasta 2 nov 2026
COT-0151Distribuidora El Zarco
Enviada
Materiales del ValleRFC MVA190312KT1
Emitida19 oct 2026
ConceptoCant.Importe
Cemento gris 50 kgIVA 16%× 340$182.00 c/u
340$61,880.00
Varilla corrugada 3/8IVA 16%× 120$198.50 c/u
120$23,820.00
Subtotal$85,700.00
IVA 16%$13,712.00
TotalMXN $99,412.00
Método de pago
TarjetaCrédito o débitoSPEITransferenciaMercado PagoPago externo
CLABE646 180 1572 0381 9264
ReferenciaCOT-0151

CLABE única para este cliente. El pago se concilia solo.

Pagar MXN $99,412.00
Vigente hasta 2 nov 2026Lista para CFDI 4.0
COT-0342Constructora Altos del Río
Enviada
Ferretería Andina S.A.S.NIT 901.482.367-3
Emitida19/10/2026
ConceptoCant.Importe
Cemento gris 50 kgIVA 19%× 200$ 34.500,00 c/u
200$ 6.900.000,00
Bloque de concreto N.º 5IVA 19%× 1.500$ 2.800,00 c/u
1.500$ 4.200.000,00
Subtotal$ 11.100.000,00
IVA 19%$ 2.109.000,00
ReteFuente 2,5%−$ 277.500,00
TotalCOP $ 12.931.500,00
Método de pago
Mercado PagoPago externo

Continúas en Mercado Pago para completar el pago y vuelves a esta cotización con el comprobante.

Pagar con Mercado Pago
Válida hasta 2/11/2026
Account profileCurrencyUSDTaxSales tax TXLocaleen-USTime zoneAmerica/ChicagoCurrencyEURTaxIVA · IRPFLocalees-ESTime zoneEurope/MadridCurrencyMXNTaxIVALocalees-MXTime zoneAmerica/Mexico_CityCurrencyCOPTaxIVA · ReteFuenteLocalees-COTime zoneAmerica/Bogota

More from Elements.

Everything inside @flouviahq/elements.

A headless core, components for React and Vue, Web Components, the embed.js loader and the same types across all of them. Pick a module to see every piece it exports.

@flouviahq/elements/reactComponents and hooks for React 17 or later and Next.js. The "use client" directive is already included.

  • <CordCotizador>Component

    Shows an existing quote so the client can view, approve, negotiate or pay. Typed callbacks for every event and onStateChange with the live state.

  • <CordInvoice>Component

    The invoice at /i/{token}: balance, status, line items and PDF. Payment opens in a Cord window and onPaid tells you when it is settled.

  • <CordBuilder>Component

    A ready-made form to build a new quote, with your account's currencies, per-line taxes and payment terms. Compound component: Header, Config, Items, Notes, Summary and SubmitButton.

  • <CordFiscalForm>Component

    Recipient tax details with the same validator as the server: the tax ID of all 12 Cord countries (EIN in the US, VAT number in the UK, Business Number in Canada…) in its official format and, where one exists, with its check digit, plus the extra fields some countries’ invoices require.

  • <CordProvider>Component

    Configure once: publishableKey or proxyUrl (never both), locale es, en, pt, fr or de, appearance and debug.

  • useQuoteBuilder()Hook

    The builder state with no UI: keyed line items, client, currency, totals with a per-rate breakdown and withholdings, validation and builder.submit().

  • useCreateQuote()Hook

    Creates a quote through your proxy or with your pk_ and returns its number, token and public link. A double click never duplicates it.

  • useCordCatalog()Hook

    Your product catalog. The server hides cost and margin from a publishable key.

  • useCordClients()Hook

    Your client directory, proxy mode only: with a pk_ it answers clients_require_proxy without touching the network.

FREQUENTLY ASKED QUESTIONS

What developers ask about Elements.

It's Cord's SDK for showing your quotes and invoices inside another site. It includes a one-line loader (embed.js), the , and Web Components, components for React, Vue, Framer and Webflow, and a headless core to build quotes with your own UI. For your server there is @flouviahq/node.

Not to show a quote: the iframe talks directly to Cord and the public token is enough. To create quotes from the browser you use a narrowly scoped publishable key (pk_); if you would rather expose no key at all, your backend acts as a proxy with a secret key (sk_).

Yes. useQuoteBuilder() in React or createQuoteBuilder() with no framework expose the quote builder state (line items, client, totals and submission) without rendering anything of ours, and with baseTheme: "none" the SDK injects no CSS.

You decide. In Settings › Embeddable quote builder you list the allowed domains and Cord enforces them with the frame-ancestors header, so no other site can show them inside an iframe. With no domains, any site can show the quote but read-only: approving, signing and paying happen on the public link, and events arrive without data.

Yes, from the Starter plan, in Settings › Brand appearance. On the Free plan the quote shows a discreet Cord notice at the bottom.

Yes, when Cord Payments is active and the domain is authorized. When the client hits pay, Cord opens the payment in its own window: payment details are never captured inside the iframe on your site. Your page receives the pay event with the URL, as a notice only.

Explore the rest of the developer platform.

Bring your quote builder to where your clients are.

Create your free account and embed your first quote today.

See what you'll pay

Published pricing, with the fee for every payment in plain view.

Pricing details →

Start building

Start operating and sending quotes on the Free plan.

Integration options →