Partner API
  1. Getting Started
Partner API
  • Getting Started
    • Introduction
    • Authentication
    • Business Use Cases
  • API References
    • Partner Operations
      • Get Balances
      • Get Transaction History
      • Retrieve Exchange Rate and Create a Lock
      • Create and Finalize an Exchange
      • Create Crypto Withdrawal
      • Create a SEPA Transfer
      • Get SEPA Transfer Details
    • User Accounts with KYC
      • Create User Account and Generate Balances
      • Add KYC File
      • Add POA File
      • Add User Verification
      • Update Existing User
      • Delete User
      • Suspend User
      • Unsuspend User
      • Get User Balances
      • Get User Transaction History
    • User Accounts without KYC
      • Create User Account and Generate Balances Without KYC
      • Update Existing User
      • Delete User
      • Suspend User
      • Unsuspend User
      • Get User Balances
      • Get User Transaction History
    • KYC by P100
      • Creating KYC Verification
      • Redirect to Verification
      • Get KYC Status
    • Currency Exchange
      • Retrieve Exchange Rate
      • Retrieve Exchange Rate and Create a Lock
      • Create and Finalize an Exchange
      • Retrieve Detailed Exchange Infromation
    • Crypto Deposits
      • Update Travel Rule
    • Crypto Withdrawals
      • Get Network Fee
      • Create Crypto Withdrawal
      • Get Crypto Withdrawal Details
    • 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
    • Custom Fiat Operations
      • SEPA Deposit & Withdrawal
  • Integration
    • SDKs & Integration Guides
    • Transaction Processing
    • Error Handling
    • Rate Limiting
    • Webhooks
      • User & KYC Webhooks
        • User Balance Generation
        • KYC File Added
        • POA Verification Status
        • KYC Verification Status
      • Transfers & Payments Webhooks
        • P2P Transfer Webhook
        • SEPA Transfer
        • SEPA Deposit
        • Crypto Withdrawal
        • Crypto Deposit
        • Exchange
        • Card Transaction
      • Card Webhooks
        • Card 3DS Code
        • Card Activation Code
  • Reference
    • Supported Countries
    • Supported Currencies
    • Fees
    • FAQ
    • Changelog
    • Support
  1. Getting Started

Authentication

This guide walks you through the essential steps to make your first successful API call and explains the core authentication and security principles of the P100 API.

Step 1: The Onboarding Process#

Access to the P100 API is a structured process designed to ensure security and a successful partnership. It begins with applying for a P100 Business Account.
How to Get Your Credentials
The process involves a few key stages:
1.
Application: A partner applies for a P100 Business Account.
2.
Verification: Our team reviews and verifies the application.
3.
Account Setup: Once approved, we set up your Business Account.
4.
API Integration: If you opt for B2B integration, we will then provide you with your unique API credentials:
Staging API Key: For testing and development.
Production API Key: For your live application.
Webhook Security Token: A token sent in a header that allows you to verify that incoming webhook requests genuinely originate from P100.

Step 2: Make Your First API Call#

Let's verify your setup by making a simple, read-only request to fetch the current exchange rates. This is a great way to confirm your API key is working correctly.
All authenticated requests must include your API key in the x-api-key header.
Example Request (cURL)
✅ Expected Success Response
{
  "btc": 92619.60,
  "eth": 2188.81,
  "eur": 1,
  "usdc": 0.8523,
  "usdt": 0.8522
}
A successful response like the one above confirms that you are connected to the P100 API.

Handling Authentication Errors#

If your API key is missing, invalid, or the request originates from an unauthorized IP address, the server will reject the request with a 401 Unauthorized status. The response body will contain a specific error message indicating the cause.

Example Request (Invalid Key)

❌ Error Responses
The response body will contain one of the following messages:
Access Denied. xo1 → API key was not provided in the request.
Access Denied. xo2 → The provided API key is incorrect.
Access Denied. xo3 → The request originated from an invalid IP address (production only).

Step 3: Security Best Practices#

Securing your integration is a shared responsibility. Adhering to these principles is mandatory for production access.
Store Keys Securely
Treat your API keys like passwords. Store them securely as environment variables or using a secrets manager (e.g., AWS Secrets Manager, HashiCorp Vault). Never hardcode them in your application.
IP Whitelisting
For production, all API requests must originate from a pre-approved list of static IP addresses. Provide your server IPs to our team to get them whitelisted. Requests from unknown IPs will be blocked.
Monitor Activity
Regularly monitor your API usage logs to detect suspicious activity, prevent abuse, and ensure the stability of your service. This is a critical part of maintaining a secure integration.

Next Steps
Now that you understand authentication, it's time to explore what you can build. Dive into the API Reference to discover all available endpoints.
Previous
Introduction
Next
Business Use Cases
Built with