Skip to main content
PATCH
/
payment-request
/
{id}
/
approve
Approve Payment Request
curl --request PATCH \
  --url https://api.royalti.io/payment-request/{id}/approve \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: multipart/form-data' \
  --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 method=vertofx \
  --form 'walletId=<string>' \
  --form 'purposeCode=<string>' \
  --form 'files=<string>' \
  --form files.items='@example-file'
{
  "message": "Payment request approved successfully",
  "paymentRequest": {
    "id": "0654cd19-cea3-4fad-b92e-4033c4252c79",
    "status": "approved"
  }
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

Approve Payment Request Description:
The /payment-request/{id}/approve endpoint approves a specific payment request.
Method:
PATCH
Path Parameter:
ParameterTypeDescription
idstringThe unique identifier of the payment request
Request Body
ParameterTypeDescription
title (Optional)stringTitle for the payment (defaults to “Payment for [original request title]“)
transactionDate (Optional)stringTransaction date (defaults to current date)
currency (Optional)stringCurrency code (defaults to request currency)
amount (Optional)numberPayment amount (defaults to request amount)
amountUSD (Optional)numberPayment amount in USD (defaults to request amountUSD)
conversionRate (Optional)numberConversion rate if different from default
memo (Optional)stringAdditional notes about the payment
method (Optional)stringPayment method (only ‘vertofx’ requires additional fields)
walletId (Optional)stringRequired if method is ‘vertofx’ - Wallet ID for VertoFX
purposeCode (Optional)stringRequired if method is ‘vertofx’ - Purpose code for VertoFX
files (Optional)arrayOptional receipt or supporting documents (multipart/form-data)
Note: When uploading files, use multipart/form-data content type. PDF receipt is automatically generated upon approval.

Code Examples

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

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

Authorizations

Authorization
string
header
required

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

Path Parameters

id
string
required

Payment Request ID

Body

title
string

Title for the payment (defaults to "Payment for [original request title]")

transactionDate
string<date-time>

Transaction date (defaults to current date)

currency
string

Currency code (defaults to request currency)

amount
number

Payment amount (defaults to request amount)

amountUSD
number

Payment amount in USD (defaults to request amountUSD)

conversionRate
number

Conversion rate if different from default

memo
string

Additional notes about the payment

method
enum<string>

Payment method (only 'vertofx' requires additional fields)

Available options:
vertofx
walletId
string

Required if method is 'vertofx' - Wallet ID for VertoFX

purposeCode
string

Required if method is 'vertofx' - Purpose code for VertoFX

files
file[]

Receipt files (PDF, images, etc.)

Response

Success

message
string
paymentRequest
object