Skip to content

docs(kyt): document KYT-screened payments as a use case + payee-destination field - #94

Merged
rodrigopavezi merged 1 commit into
mainfrom
docs/revamp-kyt
May 12, 2026
Merged

docs(kyt): document KYT-screened payments as a use case + payee-destination field#94
rodrigopavezi merged 1 commit into
mainfrom
docs/revamp-kyt

Conversation

@rodrigopavezi

Copy link
Copy Markdown
Contributor

Adds end-to-end coverage of the KYT (Know Your Transaction) compliance
feature available today on payee destinations via the Auth API. Frames it
for merchants without naming the third-party screening provider.

New page: use-cases/compliance-gated-payments.mdx

  • Explains what KYT is and isn't (transaction screening, not KYC)
  • Audience: regulated fintech, marketplaces, B2B platforms
  • Configure call (POST /v1/payee-destination with accessPolicy)
  • Privacy options: hideUntilApproved + hidePayeeAddress
  • Payer-side experience matrix (passes / fails / in-progress)
  • Update/remove policy
  • Honest "what KYT does not cover" section so merchants don't treat
    it as a complete compliance program

Touched:

  • docs.json: added the new page to the Use Cases group
  • api-features/payee-destinations.mdx: documented the optional
    accessPolicy ParamField on POST /v1/payee-destination, with the
    three sub-fields (mode, hideUntilApproved, hidePayeeAddress) and a
    link into the new use case page. Response example also includes the
    policy when set.
  • tools/secure-payments.mdx: short payer-side note describing the
    compliance gate and the policy-failure outcome, with a pointer to
    the merchant-side guide.
  • use-cases/welcome.mdx: KYT-screened payments added to the Use Cases
    card description.

Deliberately not mentioned: the third-party screening service we
integrate with — that's an internal implementation detail that
shouldn't appear in customer-facing docs.

This was referenced May 8, 2026
@rodrigopavezi
rodrigopavezi marked this pull request as ready for review May 8, 2026 14:54
@rodrigopaveziGraphite App

rodrigopavezi commented May 8, 2026

Copy link
Copy Markdown
ContributorAuthor

This stack of pull requests is managed by Graphite. Learn more about stacking.

@greptile-apps

greptile-appsBot commented May 8, 2026

Copy link
Copy Markdown

Greptile Summary

This PR adds end-to-end documentation for the KYT (Know Your Transaction) compliance feature: a new use-case guide, accessPolicy coverage on the POST payee-destination endpoint, a payer-side note in the secure-payments tool page, and nav wiring.

  • New page (use-cases/compliance-gated-payments.mdx): covers what KYT is, how to configure a gated destination, privacy options, the payer experience matrix, and the "what KYT doesn't cover" disclaimer.
  • API reference update (api-features/payee-destinations.mdx): adds accessPolicy as an optional body parameter with sub-field descriptions and an updated response example; the PUT endpoint remains missing the accessPolicy parameter (noted in a previous review).
  • Nav + cross-links: docs.json, use-cases/welcome.mdx, and tools/secure-payments.mdx all updated with appropriate pointers.

Confidence Score: 4/5

The documentation is largely accurate and well-structured, but two unresolved gaps need to be reconciled before merchants in regulated environments act on this page.

The new compliance guide's 'How it works' section and 'What payers experience' table give merchants contradictory information about which wallet is the connected one versus the additionally screened one for smart-account payments. The PUT endpoint gap — no accessPolicy parameter documented — is also still open.

use-cases/compliance-gated-payments.mdx (smart-account screening terminology at lines 19 and 73) and api-features/payee-destinations.mdx (PUT endpoint missing accessPolicy documentation)

Important Files Changed

FilenameOverview
use-cases/compliance-gated-payments.mdxNew use-case guide for KYT-gated payments; smart-account screening terminology is inconsistent between the 'How it works' step 2 and the 'What payers experience' table note (lines 19 vs 73)
api-features/payee-destinations.mdxAdds accessPolicy to POST /v1/payee-destination; PUT endpoint still does not document accessPolicy, leaving merchants without a reference for how to update or remove a policy via PUT
tools/secure-payments.mdxAdds a short payer-side note on compliance-gated payments with a pointer to the merchant guide; change is accurate and self-contained
docs.jsonAdds the new compliance-gated-payments page to the Use Cases nav group; no issues
use-cases/welcome.mdxAppends KYT-screened payments to the Use Cases card description; clean one-line change

Sequence Diagram

sequenceDiagram
participant M as Merchant
participant API as Auth API
participant P as Payer
participant Gate as KYT Compliance Gate
M->>API: POST /v1/payee-destination (accessPolicy: kyt_all_wallets)
API-->>M: destinationId + accessPolicy
P->>Gate: Open payment link (wallet connects)
Gate->>Gate: Screen wallet address
alt Passes screening
Gate-->>P: Show payment options
P->>Gate: Sign and submit payment
else Fails screening
Gate-->>P: Policy-failure view (sign disabled)
else In progress
Gate-->>P: Loading state
end
M->>API: PUT /v1/payee-destination (accessPolicy mode off)
API-->>M: Updated destination (policy removed)
Loading

Reviews (2): Last reviewed commit: "docs(kyt): document KYT-screened payment..." | Re-trigger Greptile

Comment threadapi-features/payee-destinations.mdx
Comment threaduse-cases/compliance-gated-payments.mdx
@rodrigopaveziGraphite App

rodrigopavezi commented May 12, 2026

Copy link
Copy Markdown
ContributorAuthor

Merge activity

  • May 12, 4:02 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • May 12, 5:18 PM UTC: Graphite rebased this pull request as part of a merge.
  • May 12, 5:18 PM UTC: @rodrigopavezi merged this pull request with Graphite.

@rodrigopavezi
rodrigopavezi changed the base branch from docs/revamp-redirect-url to graphite-base/94May 12, 2026 17:15
@rodrigopavezi
rodrigopavezi changed the base branch from graphite-base/94 to mainMay 12, 2026 17:16
…nation field
Adds end-to-end coverage of the KYT (Know Your Transaction) compliance
feature available today on payee destinations via the Auth API. Frames it
for merchants without naming the third-party screening provider.
New page: use-cases/compliance-gated-payments.mdx
- Explains what KYT is and isn't (transaction screening, not KYC)
- Audience: regulated fintech, marketplaces, B2B platforms
- Configure call (POST /v1/payee-destination with accessPolicy)
- Privacy options: hideUntilApproved + hidePayeeAddress
- Payer-side experience matrix (passes / fails / in-progress)
- Update/remove policy
- Honest "what KYT does not cover" section so merchants don't treat
it as a complete compliance program
Touched:
- docs.json: added the new page to the Use Cases group
- api-features/payee-destinations.mdx: documented the optional
accessPolicy ParamField on POST /v1/payee-destination, with the
three sub-fields (mode, hideUntilApproved, hidePayeeAddress) and a
link into the new use case page. Response example also includes the
policy when set.
- tools/secure-payments.mdx: short payer-side note describing the
compliance gate and the policy-failure outcome, with a pointer to
the merchant-side guide.
- use-cases/welcome.mdx: KYT-screened payments added to the Use Cases
card description.
Deliberately not mentioned: the third-party screening service we
integrate with — that's an internal implementation detail that
shouldn't appear in customer-facing docs.
@rodrigopavezi
rodrigopavezi merged commit a77a458 into mainMay 12, 2026
3 checks passed
@rodrigopavezi
rodrigopavezi deleted the docs/revamp-kyt branch May 12, 2026 17:18
When you create a payment destination via the [Auth API](https://auth.request.network/open-api/#tag/payee-destination), you can attach a **payment access policy** that turns KYT screening on for that destination:

1. Payer opens your payment link.
2. Before the payment options view loads, Request Network's compliance gate screens the connected wallet (and, for smart-account payments, the parent EOA as well).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1Smart-account screening terminology contradicts the later description

Line 19 says the gate screens "the connected wallet (and, for smart-account payments, the parent EOA as well)" — framing the smart account as the connected wallet and the EOA as an additional screen. Line 73, however, says "the gate screens both the connected EOA and the smart-account wallet." These two framings are directly inconsistent about which wallet the payer "connects" with. Merchants building compliance workflows for EVM smart-account payments need an unambiguous answer: which addresses are checked, and which one is the one the user authenticates with?

rodrigopavezi added a commit that referenced this pull request May 12, 2026
Applies 16 of 18 Greptile review comments from PRs #88-95. Skipped:
- PR #88 forward-links comment (resolved by Phase B in #90 — pages now
exist)
- PR #91 lockfile exclusion (P2 opinion; team has chosen to gitignore)
PR #88
- getting-started.mdx: replaced the "API Key Generation" steps with the
Client ID flow on the Dashboard.
PR #89
- secure-payment-supported-networks-and-currencies.mdx: qualified the
cross-chain note — Tron payments are same-chain; Li.Fi swap-to-pay
is EVM-source only.
- release-notes/request-api.mdx: distinguished the four "2026-Q1"
Update blocks with topical sub-labels (Payouts, Tron, Accounting,
Calldata).
PR #90
- docs.json: removed the duplicate tools/dashboard entry from the API
Setup group. The Tools group in Resources is the canonical home.
- programmatic-payment-links.mdx: TS/Python/cURL switched from <Tabs>
to <CodeGroup> per AGENTS.md style. Other Tabs blocks (EVM-vs-Tron
variants) stay as Tabs since they are alternative content.
- programmatic-payment-links.mdx: fixed the timingSafeEqual signature
check to compare decoded buffer lengths instead of raw hex string
lengths.
PR #91
- package.json: dropped @playwright/test (only `playwright` is used).
- scripts/capture-screenshots.ts: switched waitUntil from "networkidle"
to "load". Vite HMR keeps a persistent WebSocket open so networkidle
always timed out against dev servers.
PR #92
- integration-tutorial.mdx: changed the webhook-section .env placeholder
from <YOUR_API_KEY> to <YOUR_CLIENT_ID> for consistency.
PR #93
- secure-payments.mdx: rewrote the redirectUrl description to remove
the self-contradiction ("redirected" vs "no auto-redirect").
- programmatic-payment-links.mdx: the "send back to your site" code
example now captures the response and uses securePaymentUrl.
PR #94
- payee-destinations.mdx: accessPolicy sub-fields restructured from a
Markdown table to <Expandable> with nested <ParamField> entries.
- compliance-gated-payments.mdx: "How it works" numbered list switched
to <Steps> with <Step> components.
PR #95
- multi-chain-checkout.mdx: "you decide of the destination" →
"you decide on the destination" (grammar).
- batch-payouts.mdx: removed the duplicate "hosted" in the Mode 1
description.
- welcome.mdx: dropped the SDK framing — the Dashboard and Secure
Payment Page are no-code hosted tools, not SDK consumers.
rodrigopavezi added a commit that referenced this pull request May 12, 2026
Applies 16 of 18 Greptile review comments from PRs #88-95. Skipped:
- PR #88 forward-links comment (resolved by Phase B in #90 — pages now
exist)
- PR #91 lockfile exclusion (P2 opinion; team has chosen to gitignore)
PR #88
- getting-started.mdx: replaced the "API Key Generation" steps with the
Client ID flow on the Dashboard.
PR #89
- secure-payment-supported-networks-and-currencies.mdx: qualified the
cross-chain note — Tron payments are same-chain; Li.Fi swap-to-pay
is EVM-source only.
- release-notes/request-api.mdx: distinguished the four "2026-Q1"
Update blocks with topical sub-labels (Payouts, Tron, Accounting,
Calldata).
PR #90
- docs.json: removed the duplicate tools/dashboard entry from the API
Setup group. The Tools group in Resources is the canonical home.
- programmatic-payment-links.mdx: TS/Python/cURL switched from <Tabs>
to <CodeGroup> per AGENTS.md style. Other Tabs blocks (EVM-vs-Tron
variants) stay as Tabs since they are alternative content.
- programmatic-payment-links.mdx: fixed the timingSafeEqual signature
check to compare decoded buffer lengths instead of raw hex string
lengths.
PR #91
- package.json: dropped @playwright/test (only `playwright` is used).
- scripts/capture-screenshots.ts: switched waitUntil from "networkidle"
to "load". Vite HMR keeps a persistent WebSocket open so networkidle
always timed out against dev servers.
PR #92
- integration-tutorial.mdx: changed the webhook-section .env placeholder
from <YOUR_API_KEY> to <YOUR_CLIENT_ID> for consistency.
PR #93
- secure-payments.mdx: rewrote the redirectUrl description to remove
the self-contradiction ("redirected" vs "no auto-redirect").
- programmatic-payment-links.mdx: the "send back to your site" code
example now captures the response and uses securePaymentUrl.
PR #94
- payee-destinations.mdx: accessPolicy sub-fields restructured from a
Markdown table to <Expandable> with nested <ParamField> entries.
- compliance-gated-payments.mdx: "How it works" numbered list switched
to <Steps> with <Step> components.
PR #95
- multi-chain-checkout.mdx: "you decide of the destination" →
"you decide on the destination" (grammar).
- batch-payouts.mdx: removed the duplicate "hosted" in the Mode 1
description.
- welcome.mdx: dropped the SDK framing — the Dashboard and Secure
Payment Page are no-code hosted tools, not SDK consumers.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@rodrigopavezi