Skip to main content
POST
/
product
/
{id}
/
deliveries
Create Product Delivery
curl --request POST \
  --url https://api.royalti.io/product/{id}/deliveries \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "providers": [
    "fuga-csv-ftp"
  ],
  "autoDeliver": true,
  "settings": {
    "priority": "normal",
    "autoRetry": true,
    "notifyOnCompletion": true,
    "metadata": {}
  }
}'
{
"status": "success",
"message": "Product deliveries created",
"data": {
"deliveries": [
{
"deliveryId": "del_abc123",
"messageId": "msg_xyz789",
"productId": "<string>",
"providerId": "fuga-csv-ftp",
"provider": "fuga-csv-ftp",
"status": "pending",
"message": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"deliveredAt": "2023-11-07T05:31:56Z",
"lastAttemptTime": "2023-11-07T05:31:56Z",
"attemptCount": 123,
"maxDeliveryAttempts": 3,
"errorDetails": {
"errorCode": "<string>",
"errorMessage": "<string>",
"details": {}
}
}
]
}
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

/product//deliveries Description: Create a new delivery for a product to FUGA platform. Can deliver to multiple providers simultaneously. Method: POST Parameters:
ParameterTypeDescription
idstringProduct ID (path parameter)
providersarrayArray of provider IDs to deliver to
autoDeliverbooleanAutomatically start delivery (default: true)
settingsobjectDelivery settings (priority, notifications, etc.)
Validation Requirements:
  • Product must have a UPC code
  • Product must have at least 1 asset with valid audio file
  • Asset must have ISRC code
  • “DDEX & Deliveries” addon must be enabled for tenant
  • Provider must be configured and active
  • Maximum 3 retry attempts per delivery (configurable)
Required DDEX Metadata:
  • Product: catalogTier, territories
  • Assets: valid audio format (WAV, FLAC, MP3)
  • All required fields as per provider configuration
Process:
  1. Validates product exists and has required assets
  2. Checks addon and provider access
  3. Generates CSV metadata in FUGA format
  4. Retrieves and converts audio/image files
  5. Uploads files via FTP
  6. Returns delivery tracking information

Code Examples

const response = await fetch('https://api.royalti.io/product/example-id/deliveries', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "providers": [
      "fuga-csv-ftp"
    ],
    "autoDeliver": true
  })
});

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

Product ID

Body

application/json
providers
string[]
required

Array of provider IDs

Example:
["fuga-csv-ftp"]
autoDeliver
boolean
default:true

Automatically start delivery

settings
object

Response

Delivery created successfully

status
string
Example:

"success"

message
string
Example:

"Product deliveries created"

data
object