Skip to content

FAQ

Frequently Asked Questions for ElenPAY Merchants


1. How do I get API credentials or set up my store?

Store setup, API authentication, and webhook registration are handled by our operations team. If you need to add a new store, or update webhook endpoints, please contact our support or ops team at [email protected].

Note: Once a store has started operations, its payout currency cannot be changed. If you need to accept a different currency, you must request a new store.


2. What is a StoreID and how do I get one?

A StoreID uniquely identifies your store in the system and is required for all API operations. To obtain a StoreID, contact our support team at [email protected] during onboarding or when requesting a new store.


3. Can I accept payments in multiple currencies?

Each store is configured to accept either BTC or a single fiat currency (e.g., USD, EUR). If you wish to accept payments in multiple currencies, you must request a separate store for each currency through our ops team at [email protected].


4. What is a callbackURL?

A callbackURL is the URL you provide to our operations team during store setup. This is the endpoint on your server where we will send webhook POST requests for important events (such as InvoiceSettled, InvoiceExpired, PullPaymentSettled, PullPaymentCancelled).

  • Our system will POST event notifications to this URL whenever a relevant event occurs for your store.
  • The payload will include event details such as payment status, amounts, and metadata.
  • Make sure your endpoint is accessible from the internet and can securely handle POST requests.
  • If you need to set up more than one callback url (e.g. one for deposits and one for withdrawals), please provide the corresponding urls to the ops team.
  • If you need to update your callbackURL, please contact our support or ops team at [email protected].

See the User Guide for more information on webhooks.


5. What webhook event types can I receive?

See the User Guide for event types, example payloads and field descriptions.


6. How do I test my integration?

All integration and testing should be performed against our staging environment, referenced as api-staging.elenpay.tech in the documentation. The staging environment mirrors production but is safe for test transactions.


7. How do I set a custom invoice expiration?

Lightning (Bolt11) invoices expire after 15 minutes by default. You can set a custom expiration by including the checkout.expirationMinutes field (in minutes) in your invoice creation request. See the API documentation for details.


8. What happens if a user tries to pay after an invoice expires?

Payments cannot be made after expiry; the Lightning Network enforces this restriction. If a user attempts to pay an expired invoice, the payment will fail.


9. How do I handle API errors and rate limits?

Refer to the API Documentation for details on error responses, error codes, and troubleshooting failed requests. The API may enforce rate limits; if you exceed the allowed rate, you will receive an error response. Handle errors gracefully and implement retries with exponential backoff where appropriate.


10. How do I verify webhook signatures?

Webhooks include a BTCPay-Sig header (HMAC256 signature). Always verify the signature using your webhook secret. See examples for implementation guidance.


11. What should I do if I miss a webhook?

If you miss a webhook, you can poll the invoice or withdrawal status via the API. Webhooks are retried automatically if your server is temporarily unavailable.


12. Where can I find terminology definitions?

See the Terminology and concepts section for definitions of key terms used throughout the documentation.


13. Who do I contact for support?

For any questions or issues, please contact our support team or your assigned ops contact.


If you have additional questions not covered here, let us know!