# Pinme Uniwebpay

Use when generating, modifying, or reviewing PinMe Worker (Cloudflare Worker...

- Repository: https://github.com/glitternetwork/pinme (3753 stars)
- Category: DevOps
- License: MIT
- Last updated: 2026-09-12
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add glitternetwork/pinme --skill pinme-uniwebpay -g -a claude-code -y`
Codex: `npx skills add glitternetwork/pinme --skill pinme-uniwebpay -g -a codex -y`
Cursor: `npx skills add glitternetwork/pinme --skill pinme-uniwebpay -g -a cursor -y`
Gemini CLI: `npx skills add glitternetwork/pinme --skill pinme-uniwebpay -g -a gemini-cli -y`

## Description

Use when generating, modifying, or reviewing PinMe Worker (Cloudflare Worker TypeScript) code that accepts payments through UniwebPay, payment links, products/prices, checkout sessions, payment status reads, refunds, subscriptions, or handling UniwebPay webhooks with @uniwebpay/sdk in a PinMe project.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# PinMe UniwebPay Payment Integration

Guides writing payment services in a PinMe Worker (Cloudflare Worker TypeScript) that call UniwebPay directly through `@uniwebpay/sdk`.

Core model: PinMe provisions the UniwebPay wallet and keys per **PinMe user** (not per project) and injects `UNIWEB_*` environment bindings at Worker deploy time; Worker code calls UniwebPay **directly with the SDK**, it does not go through PinMe payment proxy routes, and it must not call the legacy VibeCash APIs.

## Environment Binding Contract

```typescript
export interface Env {
  UNIWEB_SECRET: string;           // PinMe-provisioned sk_server_ key (server-side only)
  UNIWEB_WEBHOOK_SECRET?: string;  // wallet-level whsec_, used to verify webhook signatures
  UNIWEB_API_URL?: string;         // UniwebPay API endpoint override (default https://apiskill.uniwebpay.com)
  UNIWEB_PAY_URL?: string;         // UniwebPay checkout host override (default https://skill.uniwebpay.com)
  UNIWEB_WALLET_ID?: string;       // user-level wallet id (wal_), diagnostics/reconciliation only
  WORKER_URL?: string;             // this project's public URL: https://{projectName}.{platform api domain}
  PROJECT_NAME?: string;           // PinMe project name
  DB?: D1Database;                 // project D1 (if enabled)
}
```

Injection rules (metadata is rebuilt server-side by PinMe at deploy time; client-supplied bindings are ignored):

The rest: https://github.com/glitternetwork/pinme/blob/HEAD/skills/pinme-uniwebpay/SKILL.md
