Skip to content

Affirm/ucp-extension

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Affirm UCP Extensions

This repository contains Affirm's proposed BNPL extensions to the Universal Commerce Protocol (UCP), an open standard proposed by Google for transport-agnostic, composable commerce flows.

What's Here

Affirm's BNPL extensions to UCP — three protocol extensions and one reference payment handler that enable Buy Now, Pay Later commerce flows within UCP. The extensions are designed to be BNPL-provider-agnostic; Affirm is the reference implementor.

Extension Namespace Purpose
Prequalification com.affirm.bnpl.prequalification Buyer pre-approved purchasing power, refreshable during shopping
Installment Pricing com.affirm.bnpl.lowest_installment_payment Attested "as low as" installment pricing for products and/or cart total
Checkout Mandates com.affirm.bnpl.checkout_mandates Cryptographic trust envelope: merchant, BNPL provider, and buyer each sign binding mandates over agreed installment terms
Payment Handler com.affirm.bnpl Affirm reference handler: converts BNPL mandates into payment credentials

See bnpl-extensions/README.md for full documentation including participant data flows, schema details, and an implementation guide.

Architecture & Dependencies

The BNPL extensions build on a proposed enhancement to the core UCP identity linking capability:

dev.ucp.common.identity_linking  (core UCP, proposed enhancement)
  └── Provider account linking + offer discovery
        ├── com.affirm.bnpl.prequalification     (Affirm: buying power signal)
        ├── com.affirm.bnpl.lowest_installment_payment  (Affirm: installment pricing)
        └── com.affirm.bnpl.checkout_mandates    (Affirm: checkout authorization)
              └── com.affirm.bnpl (handler)       (Affirm: payment credential issuance)

The identity linking enhancement introduces Provider as a fourth UCP participant type (alongside Buyer, Platform, and Business) and offer discovery as the mechanism by which a linked Provider publishes its shopping-phase benefits to the Platform. It is designed to be useful beyond BNPL — any Provider (loyalty program, rewards card, co-branded card issuer) can implement the Provider pattern. Affirm's BNPL extensions are the reference implementation.

Status: This enhancement has been submitted to the UCP Tech Council for review as a proposed core enhancement to dev.ucp.common.identity_linking. Until adopted, the schema is tracked in the UCP Enhancement Proposal. If adopted by UCP, the canonical schema URL will move to https://ucp.dev/schemas/common/identity_linking_enhancement.json.

UCP Enhancement Proposal: Universal-Commerce-Protocol/ucp#384

Schema URLs

Schemas in this repository are self-published and resolve via GitHub's raw content URLs:

https://raw.githubusercontent.com/Affirm/ucp-extension/main/
  bnpl-extensions/schemas/extensions/bnpl_prequalification.json
  bnpl-extensions/schemas/extensions/bnpl_lowest_installment_payment.json
  bnpl-extensions/schemas/extensions/bnpl_checkout_mandates.json
  bnpl-extensions/schemas/types/bnpl_attestation.json
  bnpl-extensions/schemas/types/installment_plan.json
  bnpl-extensions/schemas/types/lowest_installment.json
  bnpl-extensions/handlers/bnpl_handler.json

References to https://ucp.dev/ schemas (e.g., dev.ucp.shopping.checkout) point to the canonical UCP repository and are not hosted here.

License

BSD 3-Clause License — see LICENSE.

Contributing

This repository tracks Affirm's UCP proposals. For discussion of the protocol itself, see the UCP repository and its GitHub Discussions.

About

Affirm’s BNPL extensions to the Universal Commerce Protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors