On-Ramp Transactions
Learn how to convert fiat currency into crypto by depositing funds via bank transfer using the Skyline Digital API
On-ramp transactions are the reverse of crypto-to-fiat -- you send fiat currency to Skyline via a bank transfer and receive crypto tokens in your wallet. This transaction type is useful for funding crypto operations from traditional banking, allowing you to convert fiat holdings into digital assets on the platform.
Prerequisites
Before starting this tutorial, ensure that:
- Your organisation has an onboarding status of APPROVED.
- You have a verified wallet set up to receive the crypto tokens. See the Wallet Management tutorial.
Check prerequisites
Before creating an on-ramp transaction, verify the minimum amount and available currencies.
Minimum on-ramp amount
Send a request to GET /transactions/min-onramp-amount to retrieve the minimum fiat amount required for an on-ramp transaction. The default minimum is approximately 1000 USD equivalent, though this may vary depending on the currency and current platform settings.
Attempting to create an on-ramp transaction below this minimum will result in a validation error.
Available on-ramp currencies
Send a request to GET /transactions/onramp-currencies to retrieve the list of fiat currencies that are available for on-ramp transactions. Not all currencies supported by the platform may be available for on-ramp, so check this list before proceeding.
The response includes the currency identifiers and ISO codes that you can use when creating your transaction.
Transaction lifecycle
On-ramp transactions follow a similar status progression to other transaction types, though the flow differs because fiat funds are being deposited rather than crypto being spent.
| Status | Description |
|---|---|
| DRAFT | The transaction has been created but not yet submitted. |
| WAITING_ACCEPTANCE | The transaction has been submitted and is awaiting processing. |
| PROCESSING | Skyline has received confirmation of the fiat deposit and is converting the funds to crypto. |
| RELEASED | The crypto tokens have been released to the blockchain for delivery to your wallet. |
| COMPLETED | The crypto tokens have been delivered to your wallet and the transaction is fully settled. |
| FAILED | The transaction could not be completed due to an error. |
| REJECTED_BY_SKYLINE | The transaction was reviewed and rejected by Skyline's compliance or operations team. |
Step 1: Create a draft transaction
To start an on-ramp transaction, send a request to POST /transactions with the transaction type set to ONRAMP.
Transaction-level fields
| Field | Description |
|---|---|
| type | Must be set to ONRAMP for on-ramp transactions. |
| token | The crypto token you want to receive, such as USDT, USDC, or DAI. |
| walletAddress | The blockchain address of the wallet where you want to receive the crypto tokens. |
| amountCurrency | The identifier of the fiat currency you will be depositing. This determines the currency for the amount field in the payments array. |
Payment-level fields
Each payment within an on-ramp transaction uses the ONRAMP payment type.
| Field | Type | Description |
|---|---|---|
| type | PaymentType | Must be set to ONRAMP. |
| receiver | Object | The receiver details for this payment. For on-ramp transactions, this is typically your organisation's self-receiver. |
| amount | String | The amount of fiat currency you will be depositing. Must meet the minimum on-ramp amount. |
| expectedTransferDate | String | The date when you expect to initiate the bank transfer. This helps Skyline anticipate and match incoming deposits. |
The API returns the newly created transaction in DRAFT status.
Step 2: Submit the transaction
Once you have created the draft, submit it by sending a request to POST /transactions/:id/submit. The submit request may include a sender field to specify who is sending the fiat deposit, which helps Skyline identify and match the incoming bank transfer.
Note that on-ramp transactions do not require the validate or check-allowance steps used in crypto-to-fiat and crypto-to-crypto flows. Since you are depositing fiat rather than spending crypto, there is no token allowance to check.
After submission, the transaction moves to WAITING_ACCEPTANCE status and Skyline prepares the bank details for your deposit.
Step 3: Get Skyline bank details
After submitting, retrieve the bank account details where you should send the fiat deposit. Send a request to GET /transactions/:id/bank-details.
The response includes the bank details for the Skyline account that will receive your deposit:
| Detail | Description |
|---|---|
| Bank name | The name of the receiving bank. |
| Account details | The account number, IBAN, or other banking identifiers depending on the currency and region. |
| Reference | A unique reference code that must be included with your bank transfer. This reference is essential for Skyline to match your deposit to the correct transaction. |
Save these details carefully. The reference code is particularly important -- without it, Skyline may not be able to associate your deposit with your transaction, which could cause delays.
Step 4: Make the bank transfer
Using the bank details from the previous step, initiate a bank transfer from your bank to Skyline's provided account. When making the transfer:
- Send the exact amount specified in the transaction.
- Use the currency you selected when creating the transaction.
- Include the reference code provided by Skyline in the transfer reference or payment description field.
- Ensure the transfer is initiated on or near the expected transfer date you specified.
The time it takes for the transfer to arrive depends on your bank and the payment network used. SEPA transfers within Europe typically arrive within one business day, while international wire transfers may take several days.
Step 5: Monitor the transaction
After initiating the bank transfer, monitor the transaction status by sending a request to GET /transactions/:id. The transaction progresses through the following stages:
- PROCESSING -- Skyline has received and confirmed your fiat deposit and is converting the funds to the requested crypto token.
- RELEASED -- The crypto tokens have been released to the blockchain.
- COMPLETED -- The tokens have arrived in your wallet and the transaction is fully settled.
If the fiat deposit is not received within the expected timeframe or there is an issue with the transfer, the status may change to FAILED with details about the problem.
Endpoint reference
The table below summarises all endpoints used in the on-ramp transaction flow.
| Endpoint | Method | Purpose |
|---|---|---|
| /transactions/min-onramp-amount | GET | Get the minimum fiat amount for on-ramp transactions |
| /transactions/onramp-currencies | GET | Get available fiat currencies for on-ramp |
| /transactions | POST | Create a new draft on-ramp transaction |
| /transactions/:id | GET | Get transaction details and current status |
| /transactions/:id/submit | POST | Submit the transaction for processing |
| /transactions/:id/bank-details | GET | Get Skyline's bank details for the fiat deposit |
| /transactions | GET | List all transactions (paginated) |
What's next
To learn about managing invoices and batch payments, continue to the Payables & Invoicing tutorial.