Skip to main content
POST
/
payment
Create Payment
curl --request POST \
  --url https://api.royalti.io/payment/ \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --form 'user=<string>' \
  --form 'title=<string>' \
  --form transactionDate=2023-11-07T05:31:56Z \
  --form 'currency=<string>' \
  --form amount=123 \
  --form amountUSD=123 \
  --form conversionRate=123 \
  --form 'memo=<string>' \
  --form 'files=<string>' \
  --form 'id=<string>' \
  --form files.items='@example-file'
{
  "id": "a6afa463-1073-4e14-860e-f5bbd9da0f74",
  "TenantId": 1,
  "TenantUserId": "8560f85a-2416-47d7-a908-5cd2a6c51659",
  "title": "Payment Receipt test",
  "transactionDate": "2023-04-21",
  "currency": "USD",
  "amount": 74000,
  "amountUSD": 100,
  "conversionRate": 740,
  "memo": "Sale of album",
  "updatedAt": "2023-06-14T08:04:36.374Z",
  "createdAt": "2023-06-14T08:04:36.374Z"
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

Create Payment Description:
The /payment/ endpoint allows creation of payment records with transaction details, currency information, and associated files.
Method:
POST
Request Payload:
ParameterTypeDescription
userstringUser ID associated with the payment
titlestringTitle/description of the payment
transactionDatestringDate and time of the transaction
currencystringCurrency code (e.g., USD, NGN)
amountnumberAmount in the specified currency
amountUSDnumberAmount converted to USD
conversionRatenumberExchange rate used for conversion
memostringAdditional notes about the payment
filesarrayFile uploads (multipart/form-data)
idstringOptional custom ID for the payment record

Code Examples

const response = await fetch('https://api.royalti.io/payment/', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "user": "sample-user",
    "title": "sample-title",
    "transactionDate": "2024-01-21T12:00:00Z",
    "currency": "sample-currency",
    "amount": 1,
    "amountUSD": 1,
    "conversionRate": 1,
    "memo": "sample-memo",
    "files": [
      {}
    ],
    "id": "sample-id"
  })
});

const data = await response.json();
console.log(data);

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"

Body

user
string
required

TenantUserId associated with the payment

title
string
required

Title/description of the payment

transactionDate
string<date-time>
required

Date and time of the transaction

currency
string
required

Currency code (e.g., USD, NGN)

amount
number
required

Amount in the specified currency

amountUSD
number
required

Amount converted to USD

conversionRate
number

Exchange rate used for conversion

memo
string

Additional notes about the payment

files
file[]

File attachments (receipts, invoices, etc.)

id
string

Optional custom ID for the payment record

Response

Success

id
string
TenantId
integer
TenantUserId
string
title
string
transactionDate
string<date>
currency
string
amount
number
amountUSD
number
conversionRate
number
memo
string
updatedAt
string<date-time>
createdAt
string<date-time>