> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notareum.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Payment requests

# Payment Requests

Notareum replaces ambiguous payment links with cryptographically verified payment requests. A merchant creates a `.nota` file that specifies the exact amount, token, and destination address. The customer's wallet parses the file, displays the verified merchant name and amount, and requires only a single confirmation.

## The problem with traditional payment links

Today's payment flows rely on user trust:

* The merchant publishes an address in plain text
* The customer copies it or scans a QR code
* There is no cryptographic link between the merchant identity and the address
* Phishing pages substitute attacker-controlled addresses with no detection

Billions of dollars are lost annually to address substitution attacks. Notareum eliminates this class of fraud by binding the merchant identity to the payment destination with a verified signature.

## The Notareum payment flow

```mermaid theme={"system"}
sequenceDiagram
    participant M as Merchant
    participant N as Notareum
    participant C as Customer wallet
    participant Chain as Blockchain

    M->>N: Create payment .nota (amount + token + address)
    M->>N: Sign with merchant key
    M->>C: Deliver .nota (QR, link, email)
    C->>N: Parse and verify signature
    C->>N: Check verification status
    N-->>C: Verified merchant identity
    C->>C: Display merchant name + amount
    C->>Chain: Submit transaction
    Chain-->>M: Payment confirmed
    M->>C: Issue receipt .nota
```

## Building a payment request

```typescript theme={"system"}
import { Notareum } from "@notareum/sdk";

const ntm = Notareum({ provider, signer, contracts });

// Merchant creates the payment request
const paymentRequest = await ntm.nota
  .create({
    type: "transaction",
    chainId: 1,
    chainName: "ethereum",
    identifier: "0xMerchantAddress",
    name: "Acme Coffee: Double espresso",
    description: "Order #12345",
    resourceMetadata: {
      amount: "5.50",
      currency: "USDC",
      tokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      orderRef: "12345",
      timestamp: Date.now(),
    },
    issuerName: "Acme Coffee",
    issuerEntityType: "organization",
  })
  .sign(merchantSigner);

// Customer parses and verifies
const parsed = ntm.nota.parse(paymentRequest.serialize());
ntm.nota.validate(parsed);
// Wallet now displays:
//   Pay: Acme Coffee (verified)
//   Amount: 5.50 USDC
//   Order: 12345
```

## Verification levels for payment requests

| Merchant type       | Recommended level | Fee    | Quorum             |
| ------------------- | ----------------- | ------ | ------------------ |
| Individual seller   | Basic             | Low    | 3 validators, 67%  |
| Registered business | Enhanced          | Medium | 7 validators, 75%  |
| Payment processor   | Institutional     | High   | 15 validators, 75% |

Higher levels give customers stronger guarantees that the merchant is who they claim. Payment processors serving high-value transactions should register as Institutional to command maximum trust.

## Receipts as .nota files

After payment, the merchant issues a receipt `.nota` containing the on-chain transaction hash, amount paid, and a signature. Customers can archive receipts as portable, cryptographically verifiable records. This replaces traditional email receipts with a machine-readable, tamper-evident alternative.

## Integration benefits

* **Fraud elimination**: no way to substitute the destination address without breaking the signature.
* **Unified UX**: a single file format works across any chain and wallet.
* **Audit trail**: receipts are self-contained and verifiable years later.
* **Compliance**: signed requests satisfy the FATF Travel Rule for covered transactions.

## Related pages

* [.nota File Format](../protocol/nota-file-format.md)
* [Verification Engine](../protocol/verification-engine.md)
* [Wallet Address Sharing](wallet-address-sharing.md)
* [Exchange Deposits](exchange-deposits.md)
