Create temporary crypto wallet
curl --request POST \
--url https://api.oyapasteaza.com/v1/crypto/temporary-addresses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"merchantReference": "CRYPTO-COL-1001",
"amount": "25.50",
"asset": "USDC",
"network": "SOLANA"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
merchantReference: 'CRYPTO-COL-1001',
amount: '25.50',
asset: 'USDC',
network: 'SOLANA'
})
};
fetch('https://api.oyapasteaza.com/v1/crypto/temporary-addresses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.oyapasteaza.com/v1/crypto/temporary-addresses"
payload = {
"merchantReference": "CRYPTO-COL-1001",
"amount": "25.50",
"asset": "USDC",
"network": "SOLANA"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"status": true,
"message": "<string>",
"data": {}
}{
"status": false,
"message": "<string>",
"code": "<string>"
}Temporary Crypto Wallets
Create temporary crypto wallet
Create a temporary wallet for one exact crypto collection.
POST
/
v1
/
crypto
/
temporary-addresses
Create temporary crypto wallet
curl --request POST \
--url https://api.oyapasteaza.com/v1/crypto/temporary-addresses \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"merchantReference": "CRYPTO-COL-1001",
"amount": "25.50",
"asset": "USDC",
"network": "SOLANA"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
merchantReference: 'CRYPTO-COL-1001',
amount: '25.50',
asset: 'USDC',
network: 'SOLANA'
})
};
fetch('https://api.oyapasteaza.com/v1/crypto/temporary-addresses', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.oyapasteaza.com/v1/crypto/temporary-addresses"
payload = {
"merchantReference": "CRYPTO-COL-1001",
"amount": "25.50",
"asset": "USDC",
"network": "SOLANA"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"status": true,
"message": "<string>",
"data": {}
}{
"status": false,
"message": "<string>",
"code": "<string>"
}Create a temporary crypto wallet when you expect one customer to send an exact amount. Pasteaza confirms the payment and updates the collection status automatically.
The same
merchantReference returns the existing wallet in the same API key environment. This prevents duplicate assignments when you retry a request.
Endpoint
POST /v1/crypto/temporary-addresses
Headers
Authorization: Bearer sk_test_xxx
Content-Type: application/json
Request body
| Field | Type | Required | Description |
|---|---|---|---|
merchantReference | string | Yes | Your unique reference for this collection. |
amount | string | Yes | Exact amount of the selected crypto asset, such as 25.50. |
asset | string | Yes | The asset to collect. Currently supports USDC and USDT. |
network | string | Yes | The blockchain network. Currently supports SOLANA. |
expiresAt | string | No | ISO 8601 expiry time. Defaults to 30 minutes and cannot exceed 24 hours. |
metadata | object | No | Additional merchant data for this collection. |
Example request
curl https://api.oyapasteaza.com/v1/crypto/temporary-addresses \
-H "Authorization: Bearer sk_test_xxx" \
-H "Content-Type: application/json" \
-d '{
"merchantReference": "ORDER_1042",
"amount": "25.50",
"asset": "USDC",
"network": "SOLANA",
"metadata": {
"customerId": "CUS_001"
}
}'
Successful response
{
"status": true,
"message": "Temporary crypto wallet created.",
"data": {
"reference": "cp_MXxqjm8zS3LwQdKp",
"merchantReference": "ORDER_1042",
"asset": "USDC",
"network": "SOLANA",
"amount": "25.5",
"receivedAmount": "0",
"address": "7M9p...xQ2a",
"status": "PENDING",
"expiresAt": "2026-08-15T10:30:00.000Z",
"paidAt": null,
"metadata": {
"customerId": "CUS_001"
},
"payments": [],
"createdAt": "2026-08-15T10:00:00.000Z"
}
}
Only the exact asset and amount received before
expiresAt completes the collection automatically. Review the collection status in Pasteaza if a customer sends a different payment.Errors
| Code | Meaning |
|---|---|
authentication_failed | The API key is missing or invalid. |
validation_failed | A required request field is missing or invalid. |
crypto_temporary_wallet_failed | Pasteaza could not create or allocate the wallet. |
Next step
Verify temporary crypto wallet
Check whether the exact payment was received and credited.
Webhooks
Receive a notification after a valid payment is confirmed.
Authorizations
Use an sk_test_... key in the playground. Never enter a live key in shared environments.
Body
application/json
Example:
"CRYPTO-COL-1001"
Pattern:
^\d+(\.\d+)?$Example:
"25.50"
Available options:
USDC, USDT Example:
"USDC"
Available options:
SOLANA Example:
"SOLANA"
Example:
{ "orderId": "ORD-1042" }