---
title: "Text the public pay-online link for a payable invoice"
method: POST
path: "/invoices/{id}/text-payment-link"
tags: ["Invoicing"]
---

# Text the public pay-online link for a payable invoice

`POST /invoices/{id}/text-payment-link`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/invoices/{id}/text-payment-link`
- Auth: one of:
  - HTTP bearer and API key in header `x-organization-id`
  - HTTP bearer and API key in header `x-organization-id`

Sends an SMS with the invoice payment URL via Twilio. Requires an open balance, active Stripe Connect, and a usable contact phone (or body.phone override). Does not mark the invoice paid. Opted-out numbers are rejected.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `phone` string: Optional one-off mobile number; defaults to the customer contact phone

## Response `200`

SMS accepted for delivery; returns phone, url, token

## Other responses

- `400`: Not payable, missing/invalid phone, or zero balance
- `422`: Twilio unconfigured, Stripe not connected, or SMS skipped (e.g. opt-out)
- `default`: Error response

---

[API](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api.md) · [All operations](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/revisions/9a8269f0a586?raw)
