import Medusa from "@medusajs/js-sdk"
let MEDUSA_BACKEND_URL = "http://localhost:9000"
if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
}
export const sdk = new Medusa({
baseUrl: MEDUSA_BACKEND_URL,
debug: process.env.NODE_ENV === "development",
publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
})
sdk.store.payment.initiatePaymentSession(
cart, // assuming you already have the cart object.
{
provider_id: "pp_stripe_stripe",
data: {
// any data relevant for the provider.
}
}
)
.then(({ payment_collection }) => {
console.log(payment_collection)
})
{
"payment_collection": {
"id": "<string>",
"currency_code": "<string>",
"amount": 123,
"authorized_amount": 123,
"captured_amount": 123,
"refunded_amount": 123,
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"metadata": {},
"status": "canceled",
"payment_providers": [
{
"id": "<string>"
}
],
"payment_sessions": [
{
"id": "<string>",
"amount": 123,
"currency_code": "usd",
"provider_id": "<string>",
"data": {},
"context": {
"customer": {
"id": "cus_123"
}
},
"status": "authorized",
"authorized_at": "2023-11-07T05:31:56Z",
"payment_collection": {},
"payment": {
"id": "<string>",
"amount": 123,
"authorized_amount": 123,
"currency_code": "<string>",
"provider_id": "<string>",
"data": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"captured_at": "2023-11-07T05:31:56Z",
"canceled_at": "2023-11-07T05:31:56Z",
"captured_amount": 123,
"refunded_amount": 123,
"captures": [
{
"id": "<string>",
"amount": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"payment": {}
}
],
"refunds": [
{
"id": "<string>",
"amount": 123,
"refund_reason_id": "<string>",
"note": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"payment": {},
"refund_reason": {
"id": "<string>",
"label": "<string>",
"description": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}
],
"payment_collection": {},
"payment_session": {}
}
}
],
"payments": [
{
"id": "<string>",
"amount": 123,
"authorized_amount": 123,
"currency_code": "<string>",
"provider_id": "<string>",
"data": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"captured_at": "2023-11-07T05:31:56Z",
"canceled_at": "2023-11-07T05:31:56Z",
"captured_amount": 123,
"refunded_amount": 123,
"captures": [
{
"id": "<string>",
"amount": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"payment": {}
}
],
"refunds": [
{
"id": "<string>",
"amount": 123,
"refund_reason_id": "<string>",
"note": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"payment": {},
"refund_reason": {
"id": "<string>",
"label": "<string>",
"description": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}
],
"payment_collection": {},
"payment_session": {}
}
]
}
}
Create a payment collection for a cart. This is used during checkout, where the payment collection holds the cart’s payment sessions.
import Medusa from "@medusajs/js-sdk"
let MEDUSA_BACKEND_URL = "http://localhost:9000"
if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
}
export const sdk = new Medusa({
baseUrl: MEDUSA_BACKEND_URL,
debug: process.env.NODE_ENV === "development",
publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
})
sdk.store.payment.initiatePaymentSession(
cart, // assuming you already have the cart object.
{
provider_id: "pp_stripe_stripe",
data: {
// any data relevant for the provider.
}
}
)
.then(({ payment_collection }) => {
console.log(payment_collection)
})
{
"payment_collection": {
"id": "<string>",
"currency_code": "<string>",
"amount": 123,
"authorized_amount": 123,
"captured_amount": 123,
"refunded_amount": 123,
"completed_at": "2023-11-07T05:31:56Z",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"metadata": {},
"status": "canceled",
"payment_providers": [
{
"id": "<string>"
}
],
"payment_sessions": [
{
"id": "<string>",
"amount": 123,
"currency_code": "usd",
"provider_id": "<string>",
"data": {},
"context": {
"customer": {
"id": "cus_123"
}
},
"status": "authorized",
"authorized_at": "2023-11-07T05:31:56Z",
"payment_collection": {},
"payment": {
"id": "<string>",
"amount": 123,
"authorized_amount": 123,
"currency_code": "<string>",
"provider_id": "<string>",
"data": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"captured_at": "2023-11-07T05:31:56Z",
"canceled_at": "2023-11-07T05:31:56Z",
"captured_amount": 123,
"refunded_amount": 123,
"captures": [
{
"id": "<string>",
"amount": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"payment": {}
}
],
"refunds": [
{
"id": "<string>",
"amount": 123,
"refund_reason_id": "<string>",
"note": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"payment": {},
"refund_reason": {
"id": "<string>",
"label": "<string>",
"description": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}
],
"payment_collection": {},
"payment_session": {}
}
}
],
"payments": [
{
"id": "<string>",
"amount": 123,
"authorized_amount": 123,
"currency_code": "<string>",
"provider_id": "<string>",
"data": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"captured_at": "2023-11-07T05:31:56Z",
"canceled_at": "2023-11-07T05:31:56Z",
"captured_amount": 123,
"refunded_amount": 123,
"captures": [
{
"id": "<string>",
"amount": 123,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"payment": {}
}
],
"refunds": [
{
"id": "<string>",
"amount": 123,
"refund_reason_id": "<string>",
"note": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"payment": {},
"refund_reason": {
"id": "<string>",
"label": "<string>",
"description": "<string>",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}
],
"payment_collection": {},
"payment_session": {}
}
]
}
}
Publishable API Key created in the Medusa Admin.
Comma-separated fields that should be included in the returned data. if a field is prefixed with +
it will be added to the default fields, using -
will remove it from the default fields. without prefix it will replace the entire default fields.
The details of the payment collection to create.
OK
The payment collection's details.