---
title: "A payment link"
method: POST
path: "/v1/bookings/{bookingId}/pay"
tags: ["Booking"]
---

# A payment link

`POST /v1/bookings/{bookingId}/pay`

## Request

- Base URL: `https://api.nogpets.com`
- URL: `https://api.nogpets.com/v1/bookings/{bookingId}/pay`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://api.nogpets.com/oauth/authorize`, token URL `https://api.nogpets.com/oauth/token`, scopes: `bookings:write`)
  - HTTP bearer

A fresh Payfast link (48 hours) for an unpaid card booking, for the person to open. No card data passes through here.

## Path parameters

- `bookingId` string, required

## Response `200`

The link

- object
  - `bookingId` string, required
  - `totalCents` integer, required
  - `total` string, required
  - `payUrl` string, uri, required
  - `expiresAt` string, date-time, required
  - `next` string

## Other responses

- `401`: No token, or it's expired or revoked. The `WWW-Authenticate` header points at the resource metadata.
- `403`: The token lacks a scope (`INSUFFICIENT_SCOPE`, with `details.scope`).
- `404`: Not found, or not the person's.
- `409`: A rule said no: `NO_COVERAGE`, `NO_AVAILABILITY`, `SLOT_TAKEN`, `TOO_LATE`, `CONFIRM_REQUIRED` (with `details.summary`), `NOTHING_TO_PAY`, `SHOP_OFF`, `STOCK`, `SHIPPING`, `DISCOUNT`, `CASH`, `FAILED_PRECONDITION`; business sign-up: `UNDER_REVIEW`, `APPROVED`, `NOT_READY`, `TOO_MANY`, `LISTING_TAKEN`, `PAYFAST_ZA_ONLY`. `NO_COVERAGE` carries `details.leadId`, `details.message` (tell the person) and `details.next`.

---

[API](https://skmtc.dev/nogpets/apis/nogpets-api.md) · [All operations](https://skmtc.dev/nogpets/apis/nogpets-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nogpets/apis/nogpets-api/revisions/a202c1012173?raw)
