1. Onboarding & KYC Flow
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
        • Generate Hosted Checkout
        • Get Payment Link Details
    • User Operations
      • Onboarding & KYC Flow
        • Create User Account
          POST
        • Method A: Add KYC File
          POST
        • Method B: Creating KYC Verification
          POST
        • Method B: Redirect to Verification
          GET
        • Method B: Get KYC Status
          GET
        • Add User Verification
          POST
        • Add POA File
          POST
      • 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. Onboarding & KYC Flow

Add POA File

Testing Env
https://partner-api-stage.p100.io
Testing Env
https://partner-api-stage.p100.io
POST
/v1/user/poa-files/{externalUserId}
This step is mandatory for users from high-risk countries for whom POA verification is required.

Technical Specifications#

Usage: Required when the user creation response returns "poaRequiredForExtended": true.
Batch Upload: All required POA files must be uploaded in a single request.
File Limit: Up to 3 files.
Max Size: 5 MB per file.
Allowed Types: image/jpeg, image/png, image/jpg, application/pdf.

Workflow Integration#

1.
Upload: Submit the POA files using this endpoint.
2.
Review: The documents undergo manual verification by the compliance team.
3.
Approval: Wait for the POA Verification Status Webhook.
4.
Next Step: After receiving the webhook, proceed with calling Add User Verification.

Handling Rejection & Re-uploads#

If the POA documents are rejected (e.g., due to an invalid document type or poor quality):
Notification: You will receive a webhook with the status set to rejected.
Correction: You may upload new documents only once the previous submission has been officially rejected.
Retry: Call this endpoint again with the corrected files to restart the review process.

Testing in Sandbox (Internal Tool)#

To speed up integration in the Stage/Sandbox environment, you can manually trigger POA approval instead of waiting for manual review.
Endpoint:
PATCH /v1/user/poa/{externalUserId}/approve
Example Request:

Request

Authorization
API Key
Add parameter in header
x-api-key
Example:
x-api-key: ********************
or
Path Params

Body Params multipart/form-data

Responses

🟢201Created
application/json
Bodyapplication/json

🟠401Access Denied
🟠404P412: User not exist
🟠400P426: Invalid file type
🟠400P440: File too large
🟠400P447: POA already verified
🟢202P211: POA pending
🟠404P460: POA verification not found
🟠400P500: Unknown exception
🟠400P501: Service temporarily unavailable
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://partner-api-stage.p100.io/v1/user/poa-files/f47ac10b-58cc-4372-a567-0e02b2c3d479' \
--header 'x-api-key: <api-key>' \
--form 'files=@""'
Response Response Example
201 - Success
{
    "message": "POA files uploaded successfully"
}
Previous
Add User Verification
Next
Account Management
Built with