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

# Merchant Settlement

> Intelligent and transparent global fund settlement service that automatically converts multi-currency transactions and optimizes merchants' cash flow via flexible settlement strategies.

export const SettlementCheckIcon = () => {
  const [isDark, setIsDark] = useState(false);
  useEffect(() => {
    const check = () => setIsDark(document.documentElement.classList.contains("dark"));
    check();
    const observer = new MutationObserver(check);
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => observer.disconnect();
  }, []);
  return <svg width="16" height="16" viewBox="-0.5 2 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" style={{
    flexShrink: 0,
    borderRadius: "50%",
    border: `1px solid ${isDark ? "#64748b" : "#000000"}`,
    marginTop: "4px"
  }}>
      <circle cx="9.14453" cy="12" r="8.57143" stroke={isDark ? "#475569" : "#CBD5E1"} strokeWidth="1.14286" />
      <path d="M13.21 9.4224L8.51895 14.1135L5.82848 11.423" stroke={isDark ? "#4D7CFF" : "#0F172A"} strokeWidth="1.56098" strokeLinejoin="round" />
    </svg>;
};

export const FeatureShowcase = ({features = [], imageSrc, imageAlt}) => {
  const [isDark, setIsDark] = useState(false);
  const checkIconSrc = "/images/essentials/merchant-settlement/check-icon.svg";
  useEffect(() => {
    const check = () => setIsDark(document.documentElement.classList.contains("dark"));
    check();
    const observer = new MutationObserver(check);
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ["class"]
    });
    return () => observer.disconnect();
  }, []);
  return <div className="flex flex-col md:flex-row items-center gap-10 my-8 not-prose">
      <div className="flex-1 flex flex-col gap-8 w-full">
        {features.map((feature, i) => <div key={i} className="flex items-start gap-4">
            <span className="inline-flex shrink-0 mt-0.5" aria-hidden="true" style={{
    width: "16px",
    height: "20px",
    backgroundColor: isDark ? "#4D7CFF" : "#071f66",
    WebkitMask: `url("${checkIconSrc}") center / contain no-repeat`,
    mask: `url("${checkIconSrc}") center / contain no-repeat`
  }} />
            <div className="flex flex-col gap-1.5">
              <div style={{
    fontSize: "1rem",
    fontWeight: 600,
    color: isDark ? "#f1f5f9" : "#0f172a"
  }}>
                {feature.title}
              </div>
              <div style={{
    fontSize: "0.875rem",
    color: isDark ? "#94a3b8" : "#475569",
    lineHeight: 1.6
  }}>
                {feature.description}
              </div>
            </div>
          </div>)}
      </div>
      <div className="flex-1 w-full">
        <div className="waffo-hover-card" style={{
    borderRadius: "0.75rem",
    border: `1px solid ${isDark ? "#3f3f46" : "rgba(226,232,240,0.8)"}`,
    background: isDark ? "#18181b" : "#ffffff",
    overflow: "hidden",
    boxShadow: "0 1px 3px rgba(0,0,0,0.1)"
  }}>
          <img src={imageSrc} alt={imageAlt} className="w-full h-auto block m-0" />
        </div>
      </div>
    </div>;
};

export const CardGroup = ({children, cols = 2}) => {
  const items = Array.isArray(children) ? children.filter(Boolean) : [children];
  const layoutColumns = items.length === 3 ? 3 : cols === 1 ? 1 : 2;
  return <div className="waffo-guide-cards not-prose my-4 grid gap-4" data-columns={layoutColumns}>
      <style>{`
        .waffo-guide-cards {
          grid-template-columns: minmax(0, 1fr) !important;
        }
        .waffo-guide-cards .waffo-clickable-card {
          transition:
            transform 180ms ease,
            border-color 180ms ease,
            box-shadow 180ms ease,
            background 180ms ease !important;
        }
        html:not(.dark) .waffo-guide-cards .waffo-clickable-card:hover {
          border-color: rgba(109, 145, 245, 0.45) !important;
        }
        html.dark .waffo-guide-cards .waffo-clickable-card:hover,
        .dark .waffo-guide-cards .waffo-clickable-card:hover {
          border-color: rgba(109, 145, 245, 0.45) !important;
        }
        @media (min-width: 768px) {
          .waffo-guide-cards[data-columns="2"],
          .waffo-guide-cards[data-columns="3"] {
            grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
          }
          .waffo-guide-cards[data-columns="3"] .waffo-guide-card:nth-of-type(3) {
            grid-column: 1 / -1 !important;
          }
        }
      `}</style>
      {items}
    </div>;
};

export const Card = ({title, icon, href, children}) => {
  const resolvedHref = (() => {
    if (!href || typeof href !== "string") return href;
    if (!href.startsWith("/") || href.startsWith("//")) return href;
    if (typeof window === "undefined") return href;
    const docsPrefixMatch = window.location.pathname.match(/^\/docs(?=\/|$)/);
    const docsPrefix = docsPrefixMatch ? docsPrefixMatch[0] : "";
    if (!docsPrefix) {
      return href.startsWith("/docs/") ? href.slice(5) : href;
    }
    return href.startsWith(`${docsPrefix}/`) ? href : `${docsPrefix}${href}`;
  })();
  const Wrapper = resolvedHref ? "a" : "div";
  const interactiveClass = resolvedHref ? "waffo-clickable-card" : "";
  return <Wrapper href={resolvedHref} className={`waffo-guide-card waffo-hover-card block rounded-xl border border-slate-200 dark:border-neutral-700 bg-gradient-to-b from-slate-50 to-white dark:from-neutral-900 dark:to-neutral-950 p-6 no-underline ${interactiveClass}`}>
      <div className="flex flex-col items-start gap-3">
        <span className="inline-flex h-10 w-10 items-center justify-center rounded-lg border border-slate-200 dark:border-neutral-700 bg-white dark:bg-neutral-900 text-blue-700 dark:text-[#4D7CFF]">
          <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
            {icon === "arrow-right" && <path d="M5 12h14M13 5l7 7-7 7" />}
            {icon === "bell" && <path d="M10 21h4M18 8a6 6 0 0 0-12 0c0 7-3 7-3 9h18c0-2-3-2-3-9" />}
            {icon === "code" && <>
                <path d="m16 18 6-6-6-6" />
                <path d="m8 6-6 6 6 6" />
              </>}
            {icon === "globe" && <>
                <circle cx="12" cy="12" r="10" />
                <path d="M2 12h20" />
                <path d="M12 2a15.3 15.3 0 0 1 0 20" />
                <path d="M12 2a15.3 15.3 0 0 0 0 20" />
              </>}
            {icon === "gear" && <>
                <circle cx="12" cy="12" r="3" />
                <path d="M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.9 1.7 1.7 0 0 0-1.6-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.6-1 1.7 1.7 0 0 0-.3-1.9l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.9.3H9a1.7 1.7 0 0 0 1-1.6V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.9v.1a1.7 1.7 0 0 0 1.6 1h.1a2 2 0 1 1 0 4H21a1.7 1.7 0 0 0-1.6 1Z" />
              </>}
            {icon === "shield-check" && <>
                <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z" />
                <path d="m9 12 2 2 4-4" />
              </>}
            {icon === "circle-check" && <>
                <circle cx="12" cy="12" r="10" />
                <path d="m9 12 2 2 4-4" />
              </>}
            {icon === "arrow-trend-up" && <path d="m3 17 6-6 4 4 8-8M14 7h7v7" />}
            {icon === "arrows-rotate" && <>
                <path d="M21 12a9 9 0 0 1-15.5 6.2" />
                <path d="M3 12A9 9 0 0 1 18.5 5.8" />
                <path d="M21 3v6h-6" />
                <path d="M3 21v-6h6" />
              </>}
            {icon === "calendar" && <>
                <rect x="3" y="4" width="18" height="17" rx="2" />
                <path d="M16 2v4M8 2v4M3 10h18" />
              </>}
            {icon === "clock" && <>
                <circle cx="12" cy="12" r="10" />
                <path d="M12 6v6l4 2" />
              </>}
            {icon === "desktop" && <>
                <rect x="3" y="4" width="18" height="12" rx="2" />
                <path d="M8 20h8M12 16v4" />
              </>}
            {icon === "calculator" && <>
                <rect x="5" y="2" width="14" height="20" rx="2" />
                <path d="M8 6h8M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01" />
              </>}
            {icon === "plug" && <>
                <path d="M12 22v-5" />
                <path d="M9 8V2" />
                <path d="M15 8V2" />
                <path d="M18 8v5a6 6 0 0 1-12 0V8Z" />
              </>}
            {icon === "gauge" && <>
                <path d="M12 14l4-4" />
                <path d="M3.3 19a10 10 0 1 1 17.4 0" />
              </>}
            {icon === "layer-group" && <>
                <path d="m12 3 9 5-9 5-9-5 9-5Z" />
                <path d="m3 12 9 5 9-5" />
                <path d="m3 16 9 5 9-5" />
              </>}
            {icon === "laptop-mobile" && <>
                <rect x="3" y="4" width="13" height="10" rx="2" />
                <path d="M2 18h12" />
                <rect x="17" y="8" width="5" height="12" rx="1" />
              </>}
            {icon === "paintbrush" && <>
                <path d="m14 5 5 5" />
                <path d="M4 20c2 0 4-1 4-3 0-1.1-.9-2-2-2-2 0-3 2-3 4 0 .6.4 1 1 1Z" />
                <path d="m6 15 9-9a2.1 2.1 0 0 1 3 3l-9 9" />
              </>}
            {icon === "key" && <>
                <circle cx="7.5" cy="14.5" r="4.5" />
                <path d="m11 11 8-8" />
                <path d="m15 7 2 2" />
              </>}
            {icon === "circle-minus" && <>
                <circle cx="12" cy="12" r="10" />
                <path d="M8 12h8" />
              </>}
            {icon === "wallet" && <>
                <path d="M3 7h15a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H3Z" />
                <path d="M3 7V5a2 2 0 0 1 2-2h11" />
                <path d="M16 14h.01" />
              </>}
            {icon === "users" && <>
                <path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" />
                <circle cx="9" cy="7" r="4" />
                <path d="M22 21v-2a4 4 0 0 0-3-3.9" />
                <path d="M16 3.1a4 4 0 0 1 0 7.8" />
              </>}
            {icon === "link" && <>
                <path d="M10 13a5 5 0 0 0 7.1 0l2-2a5 5 0 0 0-7.1-7.1l-1.1 1.1" />
                <path d="M14 11a5 5 0 0 0-7.1 0l-2 2a5 5 0 0 0 7.1 7.1l1.1-1.1" />
              </>}
            {icon === "eye" && <>
                <path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z" />
                <circle cx="12" cy="12" r="3" />
              </>}
            {icon === "file-lines" && <>
                <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z" />
                <path d="M14 2v6h6" />
                <path d="M8 13h8M8 17h6" />
              </>}
            {icon === "sliders" && <>
                <path d="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3" />
                <path d="M2 14h4M10 8h4M18 16h4" />
              </>}
            {icon === "folder" && <path d="M3 6a2 2 0 0 1 2-2h5l2 2h7a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z" />}
            {icon === "dollar-sign" && <>
                <path d="M12 2v20" />
                <path d="M17 5H9.5a3.5 3.5 0 0 0 0 7H14a3.5 3.5 0 0 1 0 7H6" />
              </>}
            {icon === "toggle-on" && <>
                <rect x="2" y="7" width="20" height="10" rx="5" />
                <circle cx="16" cy="12" r="3" />
              </>}
            {icon === "infinity" && <path d="M18.2 8.2c2.1 0 3.8 1.7 3.8 3.8s-1.7 3.8-3.8 3.8c-4.2 0-8.2-7.6-12.4-7.6C3.7 8.2 2 9.9 2 12s1.7 3.8 3.8 3.8c4.2 0 8.2-7.6 12.4-7.6Z" />}
            {icon === "book-open" && <>
                <path d="M2 4h7a3 3 0 0 1 3 3v14a3 3 0 0 0-3-3H2Z" />
                <path d="M22 4h-7a3 3 0 0 0-3 3v14a3 3 0 0 1 3-3h7Z" />
              </>}
            {icon === "circle-play" && <>
                <circle cx="12" cy="12" r="10" />
                <path d="m10 8 6 4-6 4Z" />
              </>}
            {icon === "gamepad" && <>
                <rect x="3" y="8" width="18" height="10" rx="5" />
                <path d="M8 13h3M9.5 11.5v3M16 13h.01M18 11h.01" />
              </>}
            {icon === "rocket" && <>
                <path d="M4.5 16.5c-1.5 1.3-2 3.5-2 5 1.5 0 3.7-.5 5-2" />
                <path d="M9 15 4 10l6-6c4-4 9-2 10-1 1 1 3 6-1 10l-6 6-5-5Z" />
                <path d="M15 9h.01" />
              </>}
            {(icon === "flask" || icon === "flask-vial") && <>
                <path d="M9 2v6L4 20a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2L15 8V2" />
                <path d="M8 2h8" />
                <path d="M7 16h10" />
              </>}
            {icon === "credit-card" && <>
                <rect x="3" y="5" width="18" height="14" rx="2" />
                <path d="M3 10h18" />
                <path d="M7 15h4" />
              </>}
            {icon === "puzzle-piece" && <path d="M14 7V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v3H3a1 1 0 0 0-1 1v4a2 2 0 0 0 2 2h2v3a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-3h3a2 2 0 0 0 2-2V8a1 1 0 0 0-1-1Z" />}
            {(icon === "arrows-spin" || icon === "repeat") && <>
                <path d="M17 2l4 4-4 4" />
                <path d="M3 11V9a4 4 0 0 1 4-4h14" />
                <path d="M7 22l-4-4 4-4" />
                <path d="M21 13v2a4 4 0 0 1-4 4H3" />
              </>}
            {icon === "coins" && <>
                <ellipse cx="8" cy="7" rx="5" ry="3" />
                <path d="M3 7v6c0 1.7 2.2 3 5 3s5-1.3 5-3V7" />
                <path d="M13 10c2.8 0 5 1.3 5 3v4c0 1.7-2.2 3-5 3-1.2 0-2.3-.2-3.1-.7" />
              </>}
            {icon === "triangle-exclamation" && <>
                <path d="m21.7 18-8-14a2 2 0 0 0-3.4 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.7-3Z" />
                <path d="M12 9v4M12 17h.01" />
              </>}
            {icon === "list" && <>
                <path d="M8 6h13M8 12h13M8 18h13" />
                <path d="M3 6h.01M3 12h.01M3 18h.01" />
              </>}
            {icon === "star" && <path d="m12 2 3.1 6.3 6.9 1-5 4.9 1.2 6.8-6.2-3.3L5.8 21 7 14.2 2 9.3l6.9-1Z" />}
            {(icon === "rotate" || icon === "arrow-rotate-left") && <>
                <path d="M3 12a9 9 0 1 0 3-6.7" />
                <path d="M3 4v6h6" />
              </>}
            {icon === "clock-rotate-left" && <>
                <path d="M3 12a9 9 0 1 0 3-6.7" />
                <path d="M3 4v6h6" />
                <path d="M12 7v5l3 2" />
              </>}
            {icon === "circle-xmark" && <>
                <circle cx="12" cy="12" r="10" />
                <path d="m15 9-6 6M9 9l6 6" />
              </>}
            {icon === "paper-plane" && <path d="m22 2-7 20-4-9-9-4Z" />}
            {icon === "signal" && <>
                <path d="M2 20h.01M7 20v-4M12 20v-8M17 20V8M22 20V4" />
              </>}
            {icon === "circle-question" && <>
                <circle cx="12" cy="12" r="10" />
                <path d="M9.1 9a3 3 0 1 1 5.8 1c0 2-3 2-3 4" />
                <path d="M12 17h.01" />
              </>}
            {icon === "palette" && <>
                <path d="M12 22a10 10 0 1 1 7.5-3.4c-.9 1-2.4.4-2.4-.9 0-1.1-.9-2-2-2h-1.4c-1.2 0-2.2 1-2.2 2.2 0 1.1.9 2.1 2.1 2.1" />
                <circle cx="7.5" cy="10.5" r=".8" />
                <circle cx="12" cy="7.5" r=".8" />
                <circle cx="16.5" cy="10.5" r=".8" />
              </>}
            {(!icon || !["arrow-right", "bell", "code", "globe", "gear", "shield-check", "circle-check", "arrow-trend-up", "arrows-rotate", "calendar", "clock", "desktop", "calculator", "plug", "gauge", "layer-group", "laptop-mobile", "paintbrush", "key", "circle-minus", "wallet", "users", "link", "eye", "file-lines", "sliders", "folder", "dollar-sign", "toggle-on", "infinity", "book-open", "circle-play", "gamepad", "rocket", "flask", "flask-vial", "credit-card", "puzzle-piece", "arrows-spin", "repeat", "coins", "triangle-exclamation", "list", "star", "rotate", "arrow-rotate-left", "clock-rotate-left", "circle-xmark", "paper-plane", "signal", "circle-question", "palette"].includes(icon)) && <path d="M13 2 4 14h7l-1 8 9-12h-7l1-8Z" />}
          </svg>
        </span>
        <div className="flex flex-col gap-2">
          <h4 className="m-0 text-base font-semibold text-slate-900 dark:text-slate-100">
            {title}
          </h4>
          <div className="m-0 text-sm leading-6 text-slate-600 dark:text-slate-300">
            {children}
          </div>
        </div>
      </div>
    </Wrapper>;
};

## Overview

Provide cross-border merchants with intelligent and transparent global fund settlement solutions. Leveraging flexible and efficient settlement mechanisms, we consolidate merchants' multi-currency transactions into designated unified currencies for settlement. We standardize settlement procedures and billing statements, simplify complicated overseas settlement rules, greatly reduce difficulties in financial management and account reconciliation, and help merchants efficiently manage global capital and streamline cross-border business income and expenditure.

## Core pain points solved

<CardGroup cols={2}>
  <Card title="Cash Flow Gaps" icon="clock">
    Traditional methods often require merchants to wait 7–30 days to receive cross-border funds, severely impacting capital turnover efficiency.
  </Card>

  <Card title="FX Black Box" icon="arrows-left-right">
    Lack of visibility into the actual exchange rates used during conversion makes it impossible to accurately predict payout amounts, hindering financial planning.
  </Card>
</CardGroup>

<CardGroup cols={1}>
  <Card title="Simplify Complex Fund Reconciliation" icon="layer-group">
    We integrate global multi-currency transaction data in one stop and deliver standardized unified settlement statements. It eliminates accounting troubles caused by differentiated settlement rules across regions, greatly streamlines reconciliation procedures and improves financial verification efficiency.
  </Card>
</CardGroup>

## Use cases

<div className="grid grid-cols-1 gap-4 mb-6">
  <div className="waffo-hover-card border border-slate-200 dark:border-neutral-700 rounded-xl overflow-hidden flex flex-row h-[220px]">
    <div className="flex-1 dark:bg-neutral-800 flex flex-col justify-center p-5">
      <p className="font-semibold text-slate-900 dark:text-slate-100 text-lg mt-0 mb-3">Cross-border E-commerce</p>
      <p className="text-slate-600 dark:text-slate-300 text-base my-0">Selling in multiple global markets and needing to aggregate revenue from various regions into a headquarters account.</p>
    </div>

    <div className="flex-1 relative">
      <img src="https://mintcdn.com/waffo-docs/Pi4mlrktV3FjQDJZ/images/essentials/merchant-settlement/use-case-ecommerce.png?fit=max&auto=format&n=Pi4mlrktV3FjQDJZ&q=85&s=2cf11da4a9b3b819d92eafefa3638510" alt="Cross-border e-commerce use case" className="absolute inset-0 w-full h-full object-cover m-0" width="712" height="516" data-path="images/essentials/merchant-settlement/use-case-ecommerce.png" />
    </div>
  </div>
</div>

<div className="grid grid-cols-1 md:grid-cols-2 gap-4 mb-6">
  <div className="waffo-hover-card border border-slate-200 dark:border-neutral-700 rounded-xl overflow-hidden flex flex-col">
    <div className="h-[200px]">
      <img src="https://mintcdn.com/waffo-docs/Pi4mlrktV3FjQDJZ/images/essentials/merchant-settlement/use-case-saas.jpg?fit=max&auto=format&n=Pi4mlrktV3FjQDJZ&q=85&s=2e3cbb33dc803fe5df5356b1c7db7616" alt="SaaS and digital services use case" className="w-full h-full object-cover m-0" width="696" height="464" data-path="images/essentials/merchant-settlement/use-case-saas.jpg" />
    </div>

    <div className="dark:bg-neutral-800 flex flex-col justify-center p-4 flex-1">
      <p className="font-semibold text-slate-900 dark:text-slate-100 text-lg mt-0 mb-3">SaaS & Digital Services</p>
      <p className="text-slate-600 dark:text-slate-300 text-base my-0">Providing software subscriptions to global users requiring stable cash flow to support business expansion.</p>
    </div>
  </div>

  <div className="waffo-hover-card border border-slate-200 dark:border-neutral-700 rounded-xl overflow-hidden flex flex-col">
    <div className="h-[200px]">
      <img src="https://mintcdn.com/waffo-docs/Pi4mlrktV3FjQDJZ/images/essentials/merchant-settlement/use-case-content-platform.png?fit=max&auto=format&n=Pi4mlrktV3FjQDJZ&q=85&s=e98b823f1ef0ded1ee467aeab9eb3866" alt="Content platforms use case" className="w-full h-full object-cover m-0" width="688" height="428" data-path="images/essentials/merchant-settlement/use-case-content-platform.png" />
    </div>

    <div className="dark:bg-neutral-800 flex flex-col justify-center p-4 flex-1">
      <p className="font-semibold text-slate-900 dark:text-slate-100 text-lg mt-0 mb-3">Content Platforms</p>
      <p className="text-slate-600 dark:text-slate-300 text-base my-0">Managing ad revenue and paid memberships involving multiple currencies, requiring transparent exchange rate conversion.</p>
    </div>
  </div>
</div>

***

## Smart settlement strategy

### Flexible settlement cycles

We provide differentiated settlement rhythms based on the specific funding needs of different merchants:

<div className="flex flex-col gap-3 mb-4">
  <div className="waffo-hover-card border border-slate-200 dark:border-neutral-700 rounded-xl bg-gradient-to-b from-slate-50 to-white dark:from-neutral-800 dark:to-neutral-900 overflow-hidden">
    <div className="p-6 flex flex-col gap-4">
      <div className="flex flex-col gap-3">
        <p className="font-medium text-slate-900 dark:text-slate-100 text-base m-0">T+1 Express Settlement</p>
        <span className="inline-flex self-start items-center px-3 py-1 rounded bg-[#edf1fe] dark:bg-blue-950/60 text-[#071f66] dark:text-blue-200 border border-transparent dark:border-blue-800/60 text-xs font-medium">Ideal for merchants with high capital turnover requirements</span>
      </div>

      <div className="border border-slate-200 dark:border-neutral-700 rounded-xl bg-white dark:bg-neutral-900 p-4">
        <div className="flex items-start gap-3">
          <SettlementCheckIcon />

          <p className="text-slate-900 dark:text-slate-200 text-sm m-0">Funds arrive 1 business day after the transaction.</p>
        </div>
      </div>
    </div>
  </div>

  <div className="grid grid-cols-1 md:grid-cols-2 gap-3">
    <div className="waffo-hover-card border border-slate-200 dark:border-neutral-700 rounded-xl bg-gradient-to-b from-slate-50 to-white dark:from-neutral-800 dark:to-neutral-900 overflow-hidden">
      <div className="p-6 flex flex-col gap-4">
        <div className="flex flex-col gap-3">
          <p className="font-medium text-slate-900 dark:text-slate-100 text-base m-0">T+10 Standard Settlement</p>
          <span className="inline-flex items-center px-3 py-1 rounded bg-[#edf1fe] dark:bg-blue-950/60 text-[#071f66] dark:text-blue-200 border border-transparent dark:border-blue-800/60 text-xs font-medium">Suitable for most cross-border merchants</span>
        </div>

        <div className="border border-slate-200 dark:border-neutral-700 rounded-xl bg-white dark:bg-neutral-900 p-4 min-h-[96px] flex items-center">
          <div className="flex items-start gap-3">
            <SettlementCheckIcon />

            <p className="text-slate-900 dark:text-slate-200 text-sm m-0">Balancing capital efficiency with risk control requirements.</p>
          </div>
        </div>
      </div>
    </div>

    <div className="waffo-hover-card border border-slate-200 dark:border-neutral-700 rounded-xl bg-gradient-to-b from-slate-50 to-white dark:from-neutral-800 dark:to-neutral-900 overflow-hidden">
      <div className="p-6 flex flex-col gap-4">
        <div className="flex flex-col gap-3">
          <p className="font-medium text-slate-900 dark:text-slate-100 text-base m-0">Weekly Settlement</p>
          <span className="inline-flex items-center px-3 py-1 rounded bg-[#edf1fe] dark:bg-blue-950/60 text-[#071f66] dark:text-blue-200 border border-transparent dark:border-blue-800/60 text-xs font-medium">Designed for large enterprises</span>
        </div>

        <div className="border border-slate-200 dark:border-neutral-700 rounded-xl bg-white dark:bg-neutral-900 p-4 min-h-[96px] flex items-center">
          <div className="flex items-start gap-3">
            <SettlementCheckIcon />

            <p className="text-slate-900 dark:text-slate-200 text-sm m-0">Unifying settlement on a weekly basis to facilitate financial reconciliation.</p>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<Note>
  *Settlement cycles can be personalized based on merchant credit ratings, transaction history, and other factors.*
</Note>

### Multi-currency unified management (aggregation)

Whether your customers pay in USD, IDR, JPY, or other currencies, we aggregate and convert them into your designated settlement currency.

* **Smart Currency Matching:** Based on merchants' preset pricing currency and customers' actual transaction regions, the system automatically matches local currencies for collection conversion to accommodate payment habits across different regions.
* **Unified Settlement Statement:** The settlement statement displays amounts in both original transaction currency and final settlement currency, clearly presenting dual-currency data to fully meet merchants’ daily financial bookkeeping and business analysis needs.

<Frame>
  <img src="https://mintcdn.com/waffo-docs/Pi4mlrktV3FjQDJZ/images/essentials/merchant-settlement/fx-aggregation-diagram.png?fit=max&auto=format&n=Pi4mlrktV3FjQDJZ&q=85&s=b1d1d1f8362d52f24ed9775f40ca03c6" alt="Multi-currency aggregation flow: local currencies (USD, IDR, JPY) converted through Waffo to merchant's settlement currency" width="1424" height="850" data-path="images/essentials/merchant-settlement/fx-aggregation-diagram.png" />
</Frame>

***

## FX services & transparent pricing

### Real-time transparent FX

* **FX Benchmarking:** We use market rates from multiple mainstream banks and professional FX providers as our pricing benchmark to ensure fairness and timeliness.
* **Rate Transparency:** Merchants can query the actual exchange rate used for every transaction in the **Settlement Bills** section of the Dashboard, ensuring complete transparency.

### Smart FX execution

* **Automated Conversion:** The system automatically performs currency conversion at the prevailing rate during settlement, eliminating the need for manual merchant intervention.
* **Batch Optimization:** For multiple transactions in the same currency within a single settlement cycle, the system consolidates them for conversion to reduce spread costs.

***

## Fund security & smart monitoring

### Smart reserve management

To balance risk control with merchant cash flow needs, we employ a dynamic reserve strategy:

* **New Merchant Probation Period:** A rolling security deposit is automatically reserved during the initial settlement phase to maintain effective risk control.
* **Credit-based Adjustment：** The security deposit ratio will be gradually reduced as merchants build up their credit history.
* **Smart Release:** Once the reserve reaches the approved limit or the holding period expires, subsequent funds are settled without further holding, maximizing available capital.

### Automated exception handling

* **Refund Netting:** When a refund occurs, the system automatically deducts the corresponding amount from the pending settlement balance, avoiding cash flow confusion.
* **Chargeback Withholding:** In the event of a credit card chargeback, the system temporarily withholds settlement of the disputed funds until the dispute is resolved.
* **Risk Alerts:** Real-time monitoring of abnormal transaction patterns to provide early warnings of potential funding risks.

***

## Access & API integration

### Visual dashboard

The Merchant Portal provides an intuitive settlement management interface:

<FeatureShowcase
  features={[
{
title: "Settlement Calendar",
description: "Intuitively displays settlement cycles, holiday impacts, and estimated payout dates for different regions."
},
{
title: "Fund Monitoring",
description: "View real-time metrics such as Pending Settlement, Settled Funds, and Reserve Balance."
},
{
title: "FX Center",
description: "Query historical exchange rates, set rate alerts, and export conversion details."
}
]}
  imageSrc="/images/essentials/merchant-settlement/settlement-calendar-dashboard.png"
  imageAlt="Settlement Calendar Dashboard"
/>

### API integration

<FeatureShowcase
  features={[
{
title: "Settlement Query API",
description: "Retrieve settlement status, breakdown details, and fund balances."
},
{
title: "FX Query API",
description: "Get real-time current exchange rates to support dynamic pricing."
},
{
title: "Webhook Notifications",
description: "Real-time notifications for critical nodes such as Settlement Completed, Funds Arrived, and Exception Handling."
}
]}
  imageSrc="/images/essentials/merchant-settlement/api-integration.png"
  imageAlt="API Integration"
/>

[View API Documentation](/api-reference/introduction) for parameter examples and integration guides.

***

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Can multi-currency transactions be supported under single-currency pricing?">
    **Yes.** Based on the preset pricing currency set by merchants and the actual transaction regions of end users, the system automatically matches local currencies to complete collection conversion, adapting to payment habits in various regions.
  </Accordion>

  <Accordion title="Are exchange rates real-time? Can I lock in rates?">
    Our rates are based on real-time market rates from major financial institutions. For large-value transactions or FX-sensitive merchants, we offer an **"FX Locking"** service, allowing you to enjoy a fixed exchange rate within a specific time window.
  </Accordion>

  <Accordion title="When will the Rolling Reserve be released?">
    If you apply to terminate cooperation, the reserve will be returned merged with the final settlement payment, provided the following conditions are met:

    1. All transactions have been settled
    2. There are no pending disputes or chargebacks
    3. All fees have been cleared

    The entire return process is typically completed within **30 business days**.
  </Accordion>
</AccordionGroup>

***

Need help? [Contact support](mailto:support@waffo.com)
