Skip to content
msMarketSDK

all endpoints

// api reference

Payments

GET /v1/payments

List payments, newest first

secret key only

GET /v1/paymentsrequest
curl https://api.marketsdk.com/v1/payments \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, payment list
{
  "object": "list",
  "data": [
    {
      "object": "payment",
      "id": "pay_034XtPDs7UJ0TXzTsdaHZa",
      "order": "string",
      "method": "checkout_session",
      "status": "awaiting_payment",
      "amount": 0,
      "fee_amount": 0,
      "currency": "USD",
      "checkout_url": null,
      "client_secret": null,
      "last_failure": null,
      "amount_refunded": 0,
      "release": {
        "status": "held",
        "amount": 0,
        "amount_reversed": 0,
        "failure": null,
        "released_at": null
      },
      "stripe": {
        "payment_intent": null,
        "checkout_session": null,
        "charge": null,
        "transfer": null
      },
      "metadata": {},
      "paid_at": null,
      "canceled_at": null,
      "created_at": "2026-10-01T12:00:00.000Z",
      "updated_at": "2026-10-01T12:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

parameters

Parameters
fieldtypeabout
limitinteger, in querymin 1, max 100, default 20
starting_afterstring, in queryThe next_cursor of the previous page.
orderstring, in queryOnly the payment for this order.
statusone of: awaiting_payment, succeeded, canceled, in query

returns 200, payment list

fields
Response fields
fieldtypeabout
objectrequiredone of: list
datarequiredarray of payment
data[].objectrequiredone of: payment
data[].idrequiredstring
data[].orderrequiredstring
data[].methodrequiredone of: checkout_session, payment_intent
data[].statusrequiredone of: awaiting_payment, succeeded, canceled
data[].amountrequiredintegerMinor units.
data[].fee_amountrequiredintegerThe customer's platform fee. Minor units.
data[].currencyrequiredstring
data[].checkout_urlrequiredstring or nullStripe-hosted checkout. Shown only while payment is due.
data[].client_secretrequiredstring or nullFor Stripe Elements on your own page. Shown only while payment is due.
data[].last_failurerequiredstring or nullStripe's message for the last failed attempt to pay.
data[].amount_refundedrequiredintegerRefunded or being refunded. Minor units.
data[].releaserequiredpayment release
data[].release.statusrequiredone of: held, releasing, released, failed, nothing_to_release, null or nullNull until the buyer pays.
data[].release.amountrequiredintegerTransferred to the seller's Stripe account. Minor units.
data[].release.amount_reversedrequiredintegerTaken back from the seller for refunds after release. Minor units.
data[].release.failurerequiredstring or null
data[].release.released_atrequiredtimestamp or null
data[].striperequiredpayment stripeIds of the objects on your Stripe account.
data[].stripe.payment_intentrequiredstring or null
data[].stripe.checkout_sessionrequiredstring or null
data[].stripe.chargerequiredstring or null
data[].stripe.transferrequiredstring or null
data[].metadatarequiredobject of strings
data[].paid_atrequiredtimestamp or null
data[].canceled_atrequiredtimestamp or null
data[].created_atrequiredtimestamp
data[].updated_atrequiredtimestamp
has_morerequiredbooleanWhether another page follows.
next_cursorrequiredstring or nullPass as starting_after (or cursor for search) to get the next page.

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 429Rate limited. See Retry-After.

GET /v1/payments/{id}

Retrieve a payment

secret key only

GET /v1/payments/{id}request
curl https://api.marketsdk.com/v1/payments/{id} \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, payment
{
  "object": "payment",
  "id": "pay_034XtPDs7UJ0TXzTsdaHZa",
  "order": "string",
  "method": "checkout_session",
  "status": "awaiting_payment",
  "amount": 0,
  "fee_amount": 0,
  "currency": "USD",
  "checkout_url": null,
  "client_secret": null,
  "last_failure": null,
  "amount_refunded": 0,
  "release": {
    "status": "held",
    "amount": 0,
    "amount_reversed": 0,
    "failure": null,
    "released_at": null
  },
  "stripe": {
    "payment_intent": null,
    "checkout_session": null,
    "charge": null,
    "transfer": null
  },
  "metadata": {},
  "paid_at": null,
  "canceled_at": null,
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

returns 200, payment

fields
Response fields
fieldtypeabout
objectrequiredone of: payment
idrequiredstring
orderrequiredstring
methodrequiredone of: checkout_session, payment_intent
statusrequiredone of: awaiting_payment, succeeded, canceled
amountrequiredintegerMinor units.
fee_amountrequiredintegerThe customer's platform fee. Minor units.
currencyrequiredstring
checkout_urlrequiredstring or nullStripe-hosted checkout. Shown only while payment is due.
client_secretrequiredstring or nullFor Stripe Elements on your own page. Shown only while payment is due.
last_failurerequiredstring or nullStripe's message for the last failed attempt to pay.
amount_refundedrequiredintegerRefunded or being refunded. Minor units.
releaserequiredpayment release
release.statusrequiredone of: held, releasing, released, failed, nothing_to_release, null or nullNull until the buyer pays.
release.amountrequiredintegerTransferred to the seller's Stripe account. Minor units.
release.amount_reversedrequiredintegerTaken back from the seller for refunds after release. Minor units.
release.failurerequiredstring or null
release.released_atrequiredtimestamp or null
striperequiredpayment stripeIds of the objects on your Stripe account.
stripe.payment_intentrequiredstring or null
stripe.checkout_sessionrequiredstring or null
stripe.chargerequiredstring or null
stripe.transferrequiredstring or null
metadatarequiredobject of strings
paid_atrequiredtimestamp or null
canceled_atrequiredtimestamp or null
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 429Rate limited. See Retry-After.

PATCH /v1/payments/{id}

Replace a payment's metadata

secret key only

PATCH /v1/payments/{id}request
curl -X PATCH https://api.marketsdk.com/v1/payments/{id} \
  -H "Authorization: Bearer $MARKETSDK_KEY" \
  -H "Content-Type: application/json" \
  -d '{"metadata":{}}'
200 example response, payment
{
  "object": "payment",
  "id": "pay_034XtPDs7UJ0TXzTsdaHZa",
  "order": "string",
  "method": "checkout_session",
  "status": "awaiting_payment",
  "amount": 0,
  "fee_amount": 0,
  "currency": "USD",
  "checkout_url": null,
  "client_secret": null,
  "last_failure": null,
  "amount_refunded": 0,
  "release": {
    "status": "held",
    "amount": 0,
    "amount_reversed": 0,
    "failure": null,
    "released_at": null
  },
  "stripe": {
    "payment_intent": null,
    "checkout_session": null,
    "charge": null,
    "transfer": null
  },
  "metadata": {},
  "paid_at": null,
  "canceled_at": null,
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

body, update metadata

Request body
fieldtypeabout
metadatarequiredobject of strings

returns 200, payment

fields
Response fields
fieldtypeabout
objectrequiredone of: payment
idrequiredstring
orderrequiredstring
methodrequiredone of: checkout_session, payment_intent
statusrequiredone of: awaiting_payment, succeeded, canceled
amountrequiredintegerMinor units.
fee_amountrequiredintegerThe customer's platform fee. Minor units.
currencyrequiredstring
checkout_urlrequiredstring or nullStripe-hosted checkout. Shown only while payment is due.
client_secretrequiredstring or nullFor Stripe Elements on your own page. Shown only while payment is due.
last_failurerequiredstring or nullStripe's message for the last failed attempt to pay.
amount_refundedrequiredintegerRefunded or being refunded. Minor units.
releaserequiredpayment release
release.statusrequiredone of: held, releasing, released, failed, nothing_to_release, null or nullNull until the buyer pays.
release.amountrequiredintegerTransferred to the seller's Stripe account. Minor units.
release.amount_reversedrequiredintegerTaken back from the seller for refunds after release. Minor units.
release.failurerequiredstring or null
release.released_atrequiredtimestamp or null
striperequiredpayment stripeIds of the objects on your Stripe account.
stripe.payment_intentrequiredstring or null
stripe.checkout_sessionrequiredstring or null
stripe.chargerequiredstring or null
stripe.transferrequiredstring or null
metadatarequiredobject of strings
paid_atrequiredtimestamp or null
canceled_atrequiredtimestamp or null
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 429Rate limited. See Retry-After.

POST /v1/payments/{id}/retry_release

Try a failed release of the seller's share again

For a release that failed, for example because the seller could not yet receive transfers. A release is also tried again by itself when the seller becomes able to receive payouts.

secret key only

POST /v1/payments/{id}/retry_releaserequest
curl -X POST https://api.marketsdk.com/v1/payments/{id}/retry_release \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, payment
{
  "object": "payment",
  "id": "pay_034XtPDs7UJ0TXzTsdaHZa",
  "order": "string",
  "method": "checkout_session",
  "status": "awaiting_payment",
  "amount": 0,
  "fee_amount": 0,
  "currency": "USD",
  "checkout_url": null,
  "client_secret": null,
  "last_failure": null,
  "amount_refunded": 0,
  "release": {
    "status": "held",
    "amount": 0,
    "amount_reversed": 0,
    "failure": null,
    "released_at": null
  },
  "stripe": {
    "payment_intent": null,
    "checkout_session": null,
    "charge": null,
    "transfer": null
  },
  "metadata": {},
  "paid_at": null,
  "canceled_at": null,
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

returns 200, payment

fields
Response fields
fieldtypeabout
objectrequiredone of: payment
idrequiredstring
orderrequiredstring
methodrequiredone of: checkout_session, payment_intent
statusrequiredone of: awaiting_payment, succeeded, canceled
amountrequiredintegerMinor units.
fee_amountrequiredintegerThe customer's platform fee. Minor units.
currencyrequiredstring
checkout_urlrequiredstring or nullStripe-hosted checkout. Shown only while payment is due.
client_secretrequiredstring or nullFor Stripe Elements on your own page. Shown only while payment is due.
last_failurerequiredstring or nullStripe's message for the last failed attempt to pay.
amount_refundedrequiredintegerRefunded or being refunded. Minor units.
releaserequiredpayment release
release.statusrequiredone of: held, releasing, released, failed, nothing_to_release, null or nullNull until the buyer pays.
release.amountrequiredintegerTransferred to the seller's Stripe account. Minor units.
release.amount_reversedrequiredintegerTaken back from the seller for refunds after release. Minor units.
release.failurerequiredstring or null
release.released_atrequiredtimestamp or null
striperequiredpayment stripeIds of the objects on your Stripe account.
stripe.payment_intentrequiredstring or null
stripe.checkout_sessionrequiredstring or null
stripe.chargerequiredstring or null
stripe.transferrequiredstring or null
metadatarequiredobject of strings
paid_atrequiredtimestamp or null
canceled_atrequiredtimestamp or null
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 409The object is not in a state that allows this.
  • 429Rate limited. See Retry-After.

GET /v1/refunds

List refunds, newest first

secret key only

GET /v1/refundsrequest
curl https://api.marketsdk.com/v1/refunds \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, refund list
{
  "object": "list",
  "data": [
    {
      "object": "refund",
      "id": "ref_034XtPDs7UJ0TXzTsdaHZa",
      "payment": "string",
      "order": "string",
      "amount": 0,
      "currency": "USD",
      "reason": "requested_by_customer",
      "initiated_by": "api",
      "status": "pending",
      "failure_reason": null,
      "transfer_reversal": {
        "amount": 0
      },
      "stripe": {
        "refund": null,
        "transfer_reversal": null
      },
      "metadata": {},
      "created_at": "2026-10-01T12:00:00.000Z",
      "updated_at": "2026-10-01T12:00:00.000Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

parameters

Parameters
fieldtypeabout
limitinteger, in querymin 1, max 100, default 20
starting_afterstring, in queryThe next_cursor of the previous page.
paymentstring, in query
orderstring, in query

returns 200, refund list

fields
Response fields
fieldtypeabout
objectrequiredone of: list
datarequiredarray of refund
data[].objectrequiredone of: refund
data[].idrequiredstring
data[].paymentrequiredstring
data[].orderrequiredstring
data[].amountrequiredintegerMinor units.
data[].currencyrequiredstring
data[].reasonrequiredone of: requested_by_customer, duplicate, fraudulent, null or null
data[].initiated_byrequiredone of: api, order_cancelled, order_expired, late_payment, stripeapi for a refund you asked for; order_cancelled and order_expired when an order ended without completing; late_payment for a payment that arrived after its order lapsed; stripe for a refund made in the Stripe dashboard, which does not reverse the transfer.
data[].statusrequiredone of: pending, succeeded, failed, canceled
data[].failure_reasonrequiredstring or null
data[].transfer_reversalrequiredrefund reversal or nullPresent when the refund came after release.
data[].transfer_reversal.amountrequiredintegerTaken back from the seller's transfer. Minor units.
data[].striperequiredrefund stripe
data[].stripe.refundrequiredstring or null
data[].stripe.transfer_reversalrequiredstring or null
data[].metadatarequiredobject of strings
data[].created_atrequiredtimestamp
data[].updated_atrequiredtimestamp
has_morerequiredbooleanWhether another page follows.
next_cursorrequiredstring or nullPass as starting_after (or cursor for search) to get the next page.

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 429Rate limited. See Retry-After.

POST /v1/refunds

Refund a payment, in full or in part

Recorded at once with status pending, then made at Stripe. If the seller's share was already released, the transfer is reversed in the same proportion, so your fee is given back in proportion too.

secret key only

POST /v1/refundsrequest
curl -X POST https://api.marketsdk.com/v1/refunds \
  -H "Authorization: Bearer $MARKETSDK_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
201 example response, refund
{
  "object": "refund",
  "id": "ref_034XtPDs7UJ0TXzTsdaHZa",
  "payment": "string",
  "order": "string",
  "amount": 0,
  "currency": "USD",
  "reason": "requested_by_customer",
  "initiated_by": "api",
  "status": "pending",
  "failure_reason": null,
  "transfer_reversal": {
    "amount": 0
  },
  "stripe": {
    "refund": null,
    "transfer_reversal": null
  },
  "metadata": {},
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

body, create refund

Request body
fieldtypeabout
paymentstringThe payment to refund. Give this or order.
orderstringThe order whose payment to refund. Give this or payment.
amountintegerMinor units. Defaults to everything not yet refunded.min 1
reasonone of: requested_by_customer, duplicate, fraudulent
metadataobject of strings

returns 201, refund

fields
Response fields
fieldtypeabout
objectrequiredone of: refund
idrequiredstring
paymentrequiredstring
orderrequiredstring
amountrequiredintegerMinor units.
currencyrequiredstring
reasonrequiredone of: requested_by_customer, duplicate, fraudulent, null or null
initiated_byrequiredone of: api, order_cancelled, order_expired, late_payment, stripeapi for a refund you asked for; order_cancelled and order_expired when an order ended without completing; late_payment for a payment that arrived after its order lapsed; stripe for a refund made in the Stripe dashboard, which does not reverse the transfer.
statusrequiredone of: pending, succeeded, failed, canceled
failure_reasonrequiredstring or null
transfer_reversalrequiredrefund reversal or nullPresent when the refund came after release.
transfer_reversal.amountrequiredintegerTaken back from the seller's transfer. Minor units.
striperequiredrefund stripe
stripe.refundrequiredstring or null
stripe.transfer_reversalrequiredstring or null
metadatarequiredobject of strings
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 409The object is not in a state that allows this.
  • 429Rate limited. See Retry-After.

GET /v1/refunds/{id}

Retrieve a refund

secret key only

GET /v1/refunds/{id}request
curl https://api.marketsdk.com/v1/refunds/{id} \
  -H "Authorization: Bearer $MARKETSDK_KEY"
200 example response, refund
{
  "object": "refund",
  "id": "ref_034XtPDs7UJ0TXzTsdaHZa",
  "payment": "string",
  "order": "string",
  "amount": 0,
  "currency": "USD",
  "reason": "requested_by_customer",
  "initiated_by": "api",
  "status": "pending",
  "failure_reason": null,
  "transfer_reversal": {
    "amount": 0
  },
  "stripe": {
    "refund": null,
    "transfer_reversal": null
  },
  "metadata": {},
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

returns 200, refund

fields
Response fields
fieldtypeabout
objectrequiredone of: refund
idrequiredstring
paymentrequiredstring
orderrequiredstring
amountrequiredintegerMinor units.
currencyrequiredstring
reasonrequiredone of: requested_by_customer, duplicate, fraudulent, null or null
initiated_byrequiredone of: api, order_cancelled, order_expired, late_payment, stripeapi for a refund you asked for; order_cancelled and order_expired when an order ended without completing; late_payment for a payment that arrived after its order lapsed; stripe for a refund made in the Stripe dashboard, which does not reverse the transfer.
statusrequiredone of: pending, succeeded, failed, canceled
failure_reasonrequiredstring or null
transfer_reversalrequiredrefund reversal or nullPresent when the refund came after release.
transfer_reversal.amountrequiredintegerTaken back from the seller's transfer. Minor units.
striperequiredrefund stripe
stripe.refundrequiredstring or null
stripe.transfer_reversalrequiredstring or null
metadatarequiredobject of strings
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 429Rate limited. See Retry-After.

PATCH /v1/refunds/{id}

Replace a refund's metadata

secret key only

PATCH /v1/refunds/{id}request
curl -X PATCH https://api.marketsdk.com/v1/refunds/{id} \
  -H "Authorization: Bearer $MARKETSDK_KEY" \
  -H "Content-Type: application/json" \
  -d '{"metadata":{}}'
200 example response, refund
{
  "object": "refund",
  "id": "ref_034XtPDs7UJ0TXzTsdaHZa",
  "payment": "string",
  "order": "string",
  "amount": 0,
  "currency": "USD",
  "reason": "requested_by_customer",
  "initiated_by": "api",
  "status": "pending",
  "failure_reason": null,
  "transfer_reversal": {
    "amount": 0
  },
  "stripe": {
    "refund": null,
    "transfer_reversal": null
  },
  "metadata": {},
  "created_at": "2026-10-01T12:00:00.000Z",
  "updated_at": "2026-10-01T12:00:00.000Z"
}

parameters

Parameters
fieldtypeabout
idrequiredstring, in path

body, update metadata

Request body
fieldtypeabout
metadatarequiredobject of strings

returns 200, refund

fields
Response fields
fieldtypeabout
objectrequiredone of: refund
idrequiredstring
paymentrequiredstring
orderrequiredstring
amountrequiredintegerMinor units.
currencyrequiredstring
reasonrequiredone of: requested_by_customer, duplicate, fraudulent, null or null
initiated_byrequiredone of: api, order_cancelled, order_expired, late_payment, stripeapi for a refund you asked for; order_cancelled and order_expired when an order ended without completing; late_payment for a payment that arrived after its order lapsed; stripe for a refund made in the Stripe dashboard, which does not reverse the transfer.
statusrequiredone of: pending, succeeded, failed, canceled
failure_reasonrequiredstring or null
transfer_reversalrequiredrefund reversal or nullPresent when the refund came after release.
transfer_reversal.amountrequiredintegerTaken back from the seller's transfer. Minor units.
striperequiredrefund stripe
stripe.refundrequiredstring or null
stripe.transfer_reversalrequiredstring or null
metadatarequiredobject of strings
created_atrequiredtimestamp
updated_atrequiredtimestamp

errors

  • 400The request is not valid.
  • 401No API key, or not a valid one.
  • 404No object with that id in this marketplace.
  • 429Rate limited. See Retry-After.