Partner API
  1. User Accounts with KYC
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
        POST
      • Add KYC File
        POST
      • Add POA File
        POST
      • Add User Verification
        POST
      • Update Existing User
        PATCH
      • Delete User
        DELETE
      • Suspend User
        PATCH
      • Unsuspend User
        PATCH
      • Get User Balances
        GET
      • Get User Transaction History
        GET
    • 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. User Accounts with KYC

Create User Account and Generate Balances

Testing Env
https://partner-api-stage.p100.io
Testing Env
https://partner-api-stage.p100.io
POST
/v1/user/balances/crypto-and-fiat
This endpoint creates a new user with full KYC capabilities and provisions both fiat and crypto balances.
Each user must be uniquely identified using the externalUserId field. Attempts to reuse an existing ID will result in an error.
Upon creation, all fiat balances are returned with the status WAITING_FOR_ACTIVATION. To activate fiat services the user must successfully complete the identity verification process via the Add User Verification endpoint.
If the user is from a country that requires proof of address (POA), the response will include the field:
"poaRequired": true
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://partner-api-stage.p100.io/v1/user/balances/crypto-and-fiat' \
--header 'Content-Type: application/json' \
--header 'x-api-key;' \
--data-raw '{
  "externalUserId": "6ef2fb57-c337-4557-ba24-b82f1322f912",
  "email": "johndoe@gmail.com",
  "phone": "48123123123",
  "firstName": "John",
  "lastName": "Doe",
  "address": "Example 321",
  "city": "New York",
  "postCode": "EA0234",
  "country": "PL",
  "citizenship": "PL",
  "documentType": "ID_CARD",
  "documentNumber": "CEV12630"
}'
Response Response Example
201 - Success
{
    "userId": "f63064b1-c26b-4c9e-af22-0b483262751f",
    "poaRequired": false,
    "balances": {
        "fiatBalances": [
            {
                "id": "68109102-cde0-49ec-ae2c-d535a2eb30bd",
                "amount": "0.00",
                "name": "eur",
                "rate": 1,
                "iban": null,
                "status": "WAITING_TO_BE_ACTIVATED"
            }
        ],
        "cryptoBalances": [
            {
                "id": "7468f765-f1b6-4e2e-bac2-ded52d8df1af",
                "amount": "0.00000000",
                "name": "pol",
                "wallet": null,
                "rate": 0.19598695,
                "networkConfig": {
                    "polygon": {
                        "mainnet": false,
                        "name": "amoy",
                        "withdrawal": {
                            "feeWithdrawal": 0.001,
                            "minWithdrawal": 0.00005
                        },
                        "deposit": {
                            "minDeposit": 0
                        }
                    }
                }
            },
            {
                "id": "cda6ce2c-7f0d-46eb-a96a-cc928dcdb105",
                "amount": "0.000000",
                "name": "usdc",
                "wallet": null,
                "rate": 0.863331,
                "networkConfig": {
                    "ethereum": {
                        "mainnet": false,
                        "name": "sepolia",
                        "withdrawal": {
                            "feeWithdrawal": 10,
                            "minWithdrawal": 1
                        },
                        "deposit": {
                            "minDeposit": 5
                        }
                    },
                    "polygon": {
                        "mainnet": false,
                        "name": "amoy",
                        "withdrawal": {
                            "feeWithdrawal": 0.5,
                            "minWithdrawal": 2
                        },
                        "deposit": {
                            "minDeposit": 0
                        }
                    }
                }
            },
            {
                "id": "bab5eb5b-3963-49f4-97d7-e8e0fe0d7f96",
                "amount": "0.00000000",
                "name": "btc",
                "wallet": null,
                "rate": 102178.03394219,
                "networkConfig": {
                    "btc": {
                        "mainnet": false,
                        "name": "test",
                        "withdrawal": {
                            "feeWithdrawal": 0.0003,
                            "minWithdrawal": 0.000001
                        },
                        "deposit": {
                            "minDeposit": 0
                        }
                    }
                }
            },
            {
                "id": "be038da7-3fb3-45aa-9970-0b7fd9797800",
                "amount": "0.00000000",
                "name": "doge",
                "wallet": null,
                "rate": 0.1954334,
                "networkConfig": {
                    "doge": {
                        "mainnet": false,
                        "name": "test",
                        "withdrawal": {
                            "feeWithdrawal": 5,
                            "minWithdrawal": 0.01
                        },
                        "deposit": {
                            "minDeposit": 0
                        }
                    }
                }
            },
            {
                "id": "87d9f9d6-bb12-4cf7-baf7-0482d8d6e557",
                "amount": "0.00000000",
                "name": "eth",
                "wallet": null,
                "rate": 3308.03435755,
                "networkConfig": {
                    "ethereum": {
                        "mainnet": false,
                        "name": "sepolia",
                        "withdrawal": {
                            "feeWithdrawal": 0.003,
                            "minWithdrawal": 0.0006
                        },
                        "deposit": {
                            "minDeposit": 0
                        }
                    }
                }
            },
            {
                "id": "3ae0db3a-2803-4070-848b-4264a6565ff0",
                "amount": "0.00000000",
                "name": "ltc",
                "wallet": null,
                "rate": 93.83935247,
                "networkConfig": {
                    "ltc": {
                        "mainnet": false,
                        "name": "test",
                        "withdrawal": {
                            "feeWithdrawal": 0.002,
                            "minWithdrawal": 0.001
                        },
                        "deposit": {
                            "minDeposit": 0
                        }
                    }
                }
            }
        ]
    }
}

Request

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

Examples

Responses

🟢201Created
application/json
Body

🟠401Access Denied
🟠400P403: Validation error
🟠400P411: User exists
🟠400P431: Forbidden country
🟠400P500: Unknown exception
🟠400P501: Service temporarily unavailable
Previous
User Accounts with KYC
Next
Add KYC File
Built with