1. Payment link & Checkout Link
Partner API
  • Getting Started
    • Introduction
    • Authentication
    • Business Use Cases
  • API References
    • Partner Operations
      • Balances & Transaction History
        • Get Balances
        • Get Transaction History
        • Create Wallet
      • Currency Exchange
        • Retrieve Exchange Rate
        • Retrieve Exchange Rate and Create a Lock
        • Create and Finalize an Exchange
        • Retrieve Detailed Exchange Information
      • SEPA Transfers
        • Get SEPA Deposit Info
        • Get SEPA Deposit Contact List
        • Create a SEPA Transfer
        • Get SEPA Transfer Details
      • Crypto Withdrawal
        • Get Network Fee
        • Create Crypto Withdrawal
        • Get Crypto Withdrawal Details
      • Crypto Deposits
        • Update Travel Rule
      • Orders
        • Get Rates
        • Retrieve Order Rate and Create a Lock
        • Create and Finalize an Order
        • Get Order Details
      • Payment link & Checkout Link
        • Generate Payment Link
          POST
        • Generate Hosted Checkout
          POST
        • Get Payment Link Details
          GET
    • User Operations
      • Onboarding & KYC Flow
        • Create User Account
        • Method A: Add KYC File
        • Method B: Creating KYC Verification
        • Method B: Redirect to Verification
        • Method B: Get KYC Status
        • Add User Verification
        • Add POA File
      • Account Management
        • Update Existing User
        • Delete User
        • Suspend User
        • Unsuspend User
      • Balances & Transaction History
        • Get User Balances
        • Get User Transaction History
      • Currency Exchange
        • Retrieve Exchange Rate
        • Retrieve Exchange Rate and Create a Lock
        • Create and Finalize an Exchange
        • Retrieve Detailed Exchange Information
      • SEPA Transfers
        • Get SEPA Deposit Info
        • GET SEPA Deposit Contact List
        • Create a SEPA Transfer
        • Get SEPA Transfer Details
      • Crypto Withdrawal
        • Get Network Fee
        • Create Crypto Withdrawal
        • Get Crypto Withdrawal Details
      • Crypto Deposits
        • Update Travel Rule
      • Internal Transfers
        • Create a Transfer
        • Get Transfer Details
      • Virtual Cards
        • Create Virtual Card
        • Get All User Cards
        • Get Card Details
        • Update Card PIN
        • Block Card
        • Unblock Card
        • Get Card Limits
        • Update Card Limits
        • Delete Card
  • Integration
    • SDKs & Integration Guides
    • Transaction Processing
    • Error Handling
    • Rate Limiting
    • Webhooks
      • User & KYC Webhooks
        • User Balance Generation Webhook
        • KYC File Added Webhook
        • POA Verification Status Webhook
        • KYC Verification Status Webhook
        • Create Wallet Webhook
        • High Risk KYC Verification Webhook
      • Transfers & Payments Webhooks
        • Internal Transfer Webhook
        • IBAN Status Webhook
        • Partner SEPA Transfer Webhook
        • User SEPA Transfer Webhook
        • SEPA Deposit Webhook
        • Crypto Withdrawal Webhook
        • Crypto Deposit Webhook
        • Exchange Webhook
        • Card Transaction Webhook
        • Order status Webhook
        • Payment Link Webhook
      • Card Webhooks
        • Card 3DS Code Webhook
        • Card Activation Code Webhook
  • Reference
    • Supported Countries
    • Supported Currencies
    • Fees
    • FAQ
    • Changelog
    • Support
  1. Payment link & Checkout Link

Generate Payment Link

Testing Env
https://partner-api-stage.p100.io
Testing Env
https://partner-api-stage.p100.io
POST
/v1/payment-link
This endpoint generates a Standard Payment Link using the global P100 configuration. It allows you to collect payments in various cryptocurrencies, which are then automatically converted and settled to your balance in EUR.

Overview#

1.
Request: Provide the amount, expiration date, and a custom reference.
2.
Redirect: Send your customer to the unique URL returned in the response.
3.
Settlement: Once the transaction is confirmed on the blockchain, the funds are swapped to EUR and credited to your account.

Payment Process Flow#


Key Integration Details#

1. Link Expiration (expiresAt)#

The expiresAt parameter defines the total lifetime of the payment link. For example, if set to 3 months from now, the user will not be able to access the payment page after that period.

2. Compliance Form#

Due to regulatory requirements, every user must provide basic identification data (Name, Email, etc.) after selecting their payment method but before the transaction is initiated.

3. Manual Payment Logic#

The parameters governing manual payments are highly configurable via the P100 system to suit specific partner requirements:
Rate Lock: When a user selects a specific cryptocurrency, the exchange rate is locked for a set period (e.g., 10 minutes). The user must broadcast the transaction within this window.
Note: The duration of the Rate Lock is configurable.
Underpayment: If the user sends less than the required amount, they are granted a grace period (e.g., 2 hours) to pay the remaining balance.
Note: Both the duration of the grace period and the underpayment tolerance thresholds are configurable.
Overpayment: If the user overpays, the payment is processed, but it is flagged for manual review to handle the refund of the excess amount.

4. Web3 / Automated Payment#

Using MetaMask or WalletConnect streamlines the process. The external application handles the transaction details automatically. In this flow, a rate lock is not required as the payment is registered immediately upon the user's confirmation in their wallet app.

5. Automatic Settlement#

Partners do not need to manage cryptocurrency volatility. After the required blockchain confirmations (the number of which is configurable based on the asset and network), the system instantly converts the crypto to EUR and credits it to your Partner Balance.

Request

Authorization
API Key
Add parameter in header
x-api-key
Example:
x-api-key: ********************
or
Body Params application/json

Examples

Responses

🟢201Success
application/json
Body

🟠401Access Denied
🟠400P403: Validation error
🟠400P477: Payment link amount exceeds maximum allowed
🟠400P478: Payment link expires at is too far in the future
🟠400P500: Unknown exception
🟠400P501: Service temporarily unavailable
🟠404P479: Payment link not found
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://partner-api-stage.p100.io/v1/payment-link' \
--header 'x-api-key: <api-key>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "amount": "2",
    "expiresAt": "2026-05-31T21:21:35.840Z",
    "reference": "example_ref_123",
    "note": "example_note"
}'
Response Response Example
201 - Example 1
{
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "currencySlug": "string",
    "amount": 0,
    "reference": "string",
    "expiresAt": "2019-08-24T14:15:22.123Z",
    "note": "string",
    "url": "http://example.com"
}
Previous
Payment link & Checkout Link
Next
Generate Hosted Checkout
Built with