---
title: Payment Links
slug: datacap-api-overview/payment-links
docTags: 
createdAt: 2026-02-05T16:22:24.240Z
---

## What are Payment Links?

Payment Links allow Datacap partners to accept payments without building an additional standalone website or application. Send Payment Links via SMS, e-mail or both.

## URLs

| **Type**      | **URL**                                |
| ------------- | -------------------------------------- |
| Certification | https\://paylink-cert.dcap.com/api/v1/ |
| Production    | https\://paylink.dcap.com/api/v1/      |

## Authorization

For Payment Links the authorization is the same as `V2` Pay API. which consists of Basic Authorization on all endpoints as `Authorization: Basic BASE64(eCommerceMID:ApiKey)` API Key acquired via the endpoint [`/AcquireInitialApiKey`](#) and rotated via the endpoint [`/AcquireApiKey`](#).



Refer to [Pay API Authorization](docId\:BTC4M25D3m2uHbaLHTJPx) for more info.

### Headers

Payment Links API only accepts JSON. The following headers are required.

```json
    headers: {
        'Content-Type': 'application/json',      // JSON is required
        'Authorization': `Basic ${encodedAuth}`, // Basic authentication
        'Accept': 'application/json',            // JSON accepted back
    },
```



### Creating a Payment Link

A payment link POST request consists of 6 objects:

1. `transactionProperties` will contain information about the transaction like amount, tip, and line items.
2. `displayProperties` contains properties that control the look and feel of the resulting payment page.
3. `paymentTypesAllowed` enumerates different types of Datacap MIDs that will be used for the payment request.
4. `apiKeys` (optional) is used for integrators to bring their own SMS provider account (Twilio supported today).
5. `communicationMethods` (optional) enumerates through different ways to automatically send the payment link to the customer (email,SMS).
6. `webhookEndpoints` (optional) will contain webhook urls and desired webhook events to be returned to the webhook page.



**Example POST Request Body outline:**

\{ <font color="#B91C1C">**\***</font>"transactionProperties": \{&#x20;

// [transactionProperties](#) sub properties here&#x20;

},
 <font color="#B91C1C">**\***</font>"displayProperties": \{&#x20;

//  [displayProperties](#) sub properties here

},
 <font color="#B91C1C">**\***</font>"paymentTypesAllowed": \[&#x20;

//  [paymentTypesAllowed](#) sub properties here&#x20;

],&#x20;

"apiKeys": \{&#x20;

//  [apiKeys](#) sub properties here&#x20;

},&#x20;

"communicationMethods": \[&#x20;

//  [communicationMethods](#) sub properties here&#x20;

],&#x20;

"webhookEndpoints": \[&#x20;

    // "URL": "[URL to receiver](docId\:Lyh3gi76xLxA67uoBcKv4)" , "events": [Webhook Events](docId\:Lyh3gi76xLxA67uoBcKv4)

]



<font color="#B91C1C">**\***</font> fields Required

## Operations

### Payment Link Operations

| **Operation**           | **HTTP Method** | **URL**                                            |
| ----------------------- | --------------- | -------------------------------------------------- |
| Generate Payment Link   | `POST`          | /paymentrequest                                    |
| Update Payment Link     | `PUT`           | /credit/sale/paymentrequest/&#x7B;requestId}       |
| Cancel Payment          | `PUT`           | /paymentrequest/&#x7B;requestId}/cancel            |
| Mark Link As Paid       | `PUT`           | /paymentrequest/&#x7B;requestId}/markaspaid        |
| Resend Payment Link     | `PUT`           | /paymentrequest/&#x7B;requestId}/sendcommunication |
| Find Sent Payment Links | `GET`           | /paymentrequest/merchant                           |



## Request Full Access to Payment Links

:::CtaButton{label="Request Access" externalHref="https://dsidevportal.com/request-access" openInNewTab="true"}

:::

:::hint{type="success"}
**Get started:** Request developer credentials for free access to every product's integration guide.
:::

