Initiate a managed-wallet on-ramp
curl --request POST \
--url https://payment.gideondevrel.xyz/api/v1/business/onramps \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payment_method": {
"type": "mobile_money",
"phone_number": "<string>",
"mobile_network": "<string>"
}
}
'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
quote_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
payment_method: {type: 'mobile_money', phone_number: '<string>', mobile_network: '<string>'}
})
};
fetch('https://payment.gideondevrel.xyz/api/v1/business/onramps', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://payment.gideondevrel.xyz/api/v1/business/onramps"
payload = {
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payment_method": {
"type": "mobile_money",
"phone_number": "<string>",
"mobile_network": "<string>"
}
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://payment.gideondevrel.xyz/api/v1/business/onramps"
payload := strings.NewReader("{\n \"quote_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"payment_method\": {\n \"type\": \"mobile_money\",\n \"phone_number\": \"<string>\",\n \"mobile_network\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"direction": "offramp",
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "created",
"source": {
"asset": "USDC",
"amount": "<string>",
"total_required": "<string>",
"chain": "base"
},
"destination": {
"currency": "<string>",
"asset": "<string>",
"amount": "<string>",
"chain": "base",
"wallet_address": "<string>",
"transaction_hash": "<string>"
},
"fees": {
"provider": "<string>",
"platform": "<string>"
},
"exchange_rate": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"external_reference": "<string>",
"beneficiary_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"wallet_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"funding_source": {
"type": "managed_wallet",
"reference": "<string>",
"address": "<string>"
},
"payment_source": {
"type": "mobile_money",
"reference": "<string>"
},
"failure": {
"code": "<string>",
"message": "<string>"
},
"completed_at": "2023-11-07T05:31:56Z"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}On-ramp API
Initiate a managed-wallet on-ramp
Consumes an on-ramp quote and initiates mobile-money collection. Sandbox simulates the lifecycle without moving funds; live availability depends on the authenticated environment readiness response.
POST
/
api
/
v1
/
business
/
onramps
Initiate a managed-wallet on-ramp
curl --request POST \
--url https://payment.gideondevrel.xyz/api/v1/business/onramps \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payment_method": {
"type": "mobile_money",
"phone_number": "<string>",
"mobile_network": "<string>"
}
}
'const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
quote_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
payment_method: {type: 'mobile_money', phone_number: '<string>', mobile_network: '<string>'}
})
};
fetch('https://payment.gideondevrel.xyz/api/v1/business/onramps', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://payment.gideondevrel.xyz/api/v1/business/onramps"
payload = {
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"payment_method": {
"type": "mobile_money",
"phone_number": "<string>",
"mobile_network": "<string>"
}
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://payment.gideondevrel.xyz/api/v1/business/onramps"
payload := strings.NewReader("{\n \"quote_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"payment_method\": {\n \"type\": \"mobile_money\",\n \"phone_number\": \"<string>\",\n \"mobile_network\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"direction": "offramp",
"quote_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "created",
"source": {
"asset": "USDC",
"amount": "<string>",
"total_required": "<string>",
"chain": "base"
},
"destination": {
"currency": "<string>",
"asset": "<string>",
"amount": "<string>",
"chain": "base",
"wallet_address": "<string>",
"transaction_hash": "<string>"
},
"fees": {
"provider": "<string>",
"platform": "<string>"
},
"exchange_rate": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"external_reference": "<string>",
"beneficiary_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"wallet_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"funding_source": {
"type": "managed_wallet",
"reference": "<string>",
"address": "<string>"
},
"payment_source": {
"type": "mobile_money",
"reference": "<string>"
},
"failure": {
"code": "<string>",
"message": "<string>"
},
"completed_at": "2023-11-07T05:31:56Z"
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}{
"error": {
"code": "invalid_request",
"message": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"details": "<unknown>"
}
}Authorizations
A secret NorthFond business API key. Keep it on your server.
Headers
A unique key for this logical write operation. Reuse it when retrying the exact same request.
Required string length:
8 - 255Body
application/json
Response
On-ramp created
Available options:
offramp, onramp Available options:
created, awaiting_funds, funded, signing, submitting, processing, action_required, completed, failed Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes