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.

StatusDescription
DRAFTThe transaction has been created but not yet submitted.
WAITING_ACCEPTANCEThe transaction has been submitted and is awaiting processing.
PROCESSINGSkyline has received confirmation of the fiat deposit and is converting the funds to crypto.
RELEASEDThe crypto tokens have been released to the blockchain for delivery to your wallet.
COMPLETEDThe crypto tokens have been delivered to your wallet and the transaction is fully settled.
FAILEDThe transaction could not be completed due to an error.
REJECTED_BY_SKYLINEThe 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

FieldDescription
typeMust be set to ONRAMP for on-ramp transactions.
tokenThe crypto token you want to receive, such as USDT, USDC, or DAI.
walletAddressThe blockchain address of the wallet where you want to receive the crypto tokens.
amountCurrencyThe 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.

FieldTypeDescription
typePaymentTypeMust be set to ONRAMP.
receiverObjectThe receiver details for this payment. For on-ramp transactions, this is typically your organisation's self-receiver.
amountStringThe amount of fiat currency you will be depositing. Must meet the minimum on-ramp amount.
expectedTransferDateStringThe 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:

DetailDescription
Bank nameThe name of the receiving bank.
Account detailsThe account number, IBAN, or other banking identifiers depending on the currency and region.
ReferenceA 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:

  1. PROCESSING -- Skyline has received and confirmed your fiat deposit and is converting the funds to the requested crypto token.
  2. RELEASED -- The crypto tokens have been released to the blockchain.
  3. 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.

EndpointMethodPurpose
/transactions/min-onramp-amountGETGet the minimum fiat amount for on-ramp transactions
/transactions/onramp-currenciesGETGet available fiat currencies for on-ramp
/transactionsPOSTCreate a new draft on-ramp transaction
/transactions/:idGETGet transaction details and current status
/transactions/:id/submitPOSTSubmit the transaction for processing
/transactions/:id/bank-detailsGETGet Skyline's bank details for the fiat deposit
/transactionsGETList all transactions (paginated)

What's next

To learn about managing invoices and batch payments, continue to the Payables & Invoicing tutorial.

On this page