Purchase an artwork

Purchase the print-quality version of the user's artwork.

When an end user purchases a print via a partner's website, the partner must purchase the print-quality version of the user's artwork from Canva. In response to this purchase, Canva immediately provides a URL to download the print-quality artwork.

For security reasons, you must send this request from a backend server. If you send this request via a browser, Canva rejects the request.

Request

Endpoint

POST https://api.canva.com/_tpi/partnership/<partner_id>/artworks/<artwork_id>

Headers

Header

Description

Authorization

The integration's Artwork API secret.

Path parameters

Parameter

Type

Required

Description

partner_id

string

Yes

The integration's Partner ID.

artwork_id

string

Yes

The ID of the user's artwork.

Body

Property

Type

Required

Description

purchaseConfirmation

object

Yes

Information about the purchase.

purchaseConfirmation.currency

string

Yes

The currency of the purchase in the ISO 4217 format.

purchaseConfirmation.discountAmount

number

Yes

The amount deducted from the gross amount using coupons, gift certificates, and other redeemable incentives. If there's no discount to apply, set to 0.00.

purchaseConfirmation.grossAmount

number

Yes

The price of the order excluding discounts, but including shipping fees, taxes, and other charges applied to the order value.

purchaseConfirmation.item

string

Yes

The ID of the order's item in the partner's back-end system.

purchaseConfirmation.netAmount

number

Yes

The price of the order excluding discounts, shipping fees, taxes, and other charges applied to the order value.

purchaseConfirmation.order

string

Yes

The ID of the order in the partner's back-end system.

purchaseConfirmation.quantity

int32

Yes

The quantity of items the user is purchasing with the order.

purchaseConfirmation.sku

string

Yes

The SKU of the item in the partner's back-end system.

purchaseConfirmation.extraDetails

string

No

Free-form field for additional details about the purchase.

Example

{
"purchaseConfirmation": {
"order": "OR_12345672",
"item": "IT_12345672-003",
"sku": "PS034509",
"quantity": 5,
"currency": "USD",
"grossAmount": 65.5,
"discountAmount": 6.55,
"netAmount": 58.95
}
}

Response

200 - Success

The response when the purchase is successful.

Name

Type

Required

Description

id

string

Yes

The ID of the artwork.

productionFile (deprecated)

string

No

The URL of the print-quality artwork. This URL expires after 15 minutes. This property has been superseded by productionFiles.

productionFiles

string

Yes

A list of URLs for downloading the print-quality version of the user's artwork. For JPG and PNG file formats, there's a separate URL for each page. For PDF file formats, there's one URL for the entire artwork. The URL is in the form https://partnership-artwork.canva.com/<export_file>. If you're using the China version of the SDK, the TLD is .cn instead of .com. You can take the necessary security measures to protect the URL from any malicious attacks.

Example

{
"id": "123456",
"productionFiles": ["https://...", "https://...", "https://..."]
}

401 - Unauthorized

The response when Canva doesn't recognize the supplied credentials.

Example

const axios = require("axios");
(async () => {
const response = await axios.request({
baseURL: "https://api.canva.com",
url: `/_tpi/partnership/<partner_id>/artworks/<artwork_id>`,
method: "post",
headers: {
Authorization: "<artwork_api_secret>",
},
data: {
purchaseConfirmation: {
order: "OR_12345672",
item: "IT_12345672-003",
sku: "PS034509",
quantity: 5,
currency: "USD",
grossAmount: 65.5,
discountAmount: 6.55,
netAmount: 58.95,
},
},
});
console.log(response.data);
})();