Skip to content
SoundSyncAudio software platform

API reference

Rent-to-Own Agreement API

Read installment agreements, paid progress, access state and earned ownership without initiating a charge.

Read the agreement, not only the payment count

Developer list and detail calls use orders.view and all-products workspace scope. The customer detail route resolves ownership from the signed-in account. Do not reuse a developer token for a customer action or expose another customer agreement.

The list supports productId, status and limit, with a default of 50 and a maximum of 200. Detail includes installment history. List results do not load every installment; an empty list-level installments array is not proof that no payments exist.

Amounts and access remain separate

Amounts with Cents suffixes are integer minor units in the returned currency. Compare paid and net-paid installment counts with refunded/disputed amounts, ownershipState, accessState and ownedAt. A scheduled date is not a captured payment, and a browser success page is not earned ownership.

These are read contracts, not authorization for collection, cancellation or adjustment. Current feature exposure, provider setup and the existing rent-to-own policy still govern the offer. No new payment method, payout behavior or universal production availability is implied.

SoundSync

Lifecycle and payment contracts

Rent-to-own guide

Offer settings, installments and ownership.

Subscription APIs

Use the contract for the actual recurring model.

Refund API

Review purchase eligibility and confirmed effects separately.

SoundSync

Requests and responses

GET /api/developer/rent-to-own/agreements

List developer rent-to-own agreements

Auth
Account Bearer JWT
Scope
orders.view and all-products workspace scope.
Request fields
  • query productId: integer
  • query status: string
  • query limit: integer
Returns
HTTP 200: agreements.
Request, response and error reference

Query and header parameters

[
  {
    "name": "productId",
    "in": "query",
    "schema": {
      "type": "integer",
      "minimum": 1
    },
    "required": false,
    "description": ""
  },
  {
    "name": "status",
    "in": "query",
    "schema": {
      "type": "string"
    },
    "required": false,
    "description": ""
  },
  {
    "name": "limit",
    "in": "query",
    "schema": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 50
    },
    "required": false,
    "description": ""
  }
]

No request body fields are read by this operation.

HTTP 200 response (application/json)

{
  "type": "object",
  "properties": {
    "agreements": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "developerId": {
            "type": "integer",
            "minimum": 1
          },
          "customerUserId": {
            "type": [
              "integer",
              "null"
            ]
          },
          "customerId": {
            "type": "integer",
            "minimum": 1
          },
          "productId": {
            "type": "integer",
            "minimum": 1
          },
          "productName": {
            "type": [
              "string",
              "null"
            ]
          },
          "planVersionId": {
            "type": "integer",
            "minimum": 1
          },
          "checkoutId": {
            "type": [
              "integer",
              "null"
            ]
          },
          "entitlementId": {
            "type": [
              "integer",
              "null"
            ]
          },
          "provider": {
            "type": "string"
          },
          "providerSubscriptionId": {
            "type": [
              "string",
              "null"
            ]
          },
          "environment": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "accessState": {
            "type": "string"
          },
          "ownershipState": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "cashPriceCents": {
            "type": "integer"
          },
          "installmentAmountCents": {
            "type": "integer"
          },
          "installmentCount": {
            "type": "integer"
          },
          "totalContractCents": {
            "type": "integer"
          },
          "paidInstallmentCount": {
            "type": "integer"
          },
          "netPaidInstallmentCount": {
            "type": "integer"
          },
          "paidAmountCents": {
            "type": "integer"
          },
          "refundedAmountCents": {
            "type": "integer"
          },
          "disputedAmountCents": {
            "type": "integer"
          },
          "currentPeriodStart": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "currentPeriodEnd": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "nextPaymentAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "failedPaymentGraceUntil": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "cancelAtPeriodEnd": {
            "type": "boolean"
          },
          "canceledAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "ownedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revokedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "installments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "minimum": 1
                },
                "installmentNumber": {
                  "type": "integer"
                },
                "status": {
                  "type": "string"
                },
                "currency": {
                  "type": "string"
                },
                "amountDueCents": {
                  "type": "integer"
                },
                "amountPaidCents": {
                  "type": "integer"
                },
                "amountRefundedCents": {
                  "type": "integer"
                },
                "taxAmountCents": {
                  "type": "integer"
                },
                "discountAmountCents": {
                  "type": "integer"
                },
                "paidAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "refundedAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "disputedAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "orderId": {
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "additionalProperties": true
            }
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true,
            "description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}

Documented failures: 400, 401, 403, 404, 409, 500.

GET /api/developer/rent-to-own/agreements/{agreementId}

Read a developer agreement and installment history

Auth
Account Bearer JWT
Scope
orders.view and all-products workspace scope; developer ownership is checked.
Returns
HTTP 200: agreement.
Request, response and error reference

No request body fields are read by this operation.

HTTP 200 response (application/json)

{
  "type": "object",
  "properties": {
    "agreement": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": 1
        },
        "developerId": {
          "type": "integer",
          "minimum": 1
        },
        "customerUserId": {
          "type": [
            "integer",
            "null"
          ]
        },
        "customerId": {
          "type": "integer",
          "minimum": 1
        },
        "productId": {
          "type": "integer",
          "minimum": 1
        },
        "productName": {
          "type": [
            "string",
            "null"
          ]
        },
        "planVersionId": {
          "type": "integer",
          "minimum": 1
        },
        "checkoutId": {
          "type": [
            "integer",
            "null"
          ]
        },
        "entitlementId": {
          "type": [
            "integer",
            "null"
          ]
        },
        "provider": {
          "type": "string"
        },
        "providerSubscriptionId": {
          "type": [
            "string",
            "null"
          ]
        },
        "environment": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "accessState": {
          "type": "string"
        },
        "ownershipState": {
          "type": "string"
        },
        "currency": {
          "type": "string"
        },
        "cashPriceCents": {
          "type": "integer"
        },
        "installmentAmountCents": {
          "type": "integer"
        },
        "installmentCount": {
          "type": "integer"
        },
        "totalContractCents": {
          "type": "integer"
        },
        "paidInstallmentCount": {
          "type": "integer"
        },
        "netPaidInstallmentCount": {
          "type": "integer"
        },
        "paidAmountCents": {
          "type": "integer"
        },
        "refundedAmountCents": {
          "type": "integer"
        },
        "disputedAmountCents": {
          "type": "integer"
        },
        "currentPeriodStart": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "currentPeriodEnd": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "nextPaymentAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "failedPaymentGraceUntil": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "cancelAtPeriodEnd": {
          "type": "boolean"
        },
        "canceledAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "completedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "ownedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "revokedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "installments": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "minimum": 1
              },
              "installmentNumber": {
                "type": "integer"
              },
              "status": {
                "type": "string"
              },
              "currency": {
                "type": "string"
              },
              "amountDueCents": {
                "type": "integer"
              },
              "amountPaidCents": {
                "type": "integer"
              },
              "amountRefundedCents": {
                "type": "integer"
              },
              "taxAmountCents": {
                "type": "integer"
              },
              "discountAmountCents": {
                "type": "integer"
              },
              "paidAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "refundedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "disputedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "orderId": {
                "type": [
                  "integer",
                  "null"
                ]
              }
            },
            "additionalProperties": true
          }
        },
        "metadata": {
          "type": "object",
          "additionalProperties": true,
          "description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
        }
      },
      "additionalProperties": true
    }
  },
  "additionalProperties": true
}

Documented failures: 400, 401, 403, 404, 409, 500.

GET /api/rent-to-own/customer/agreements/{agreementId}

Read an agreement owned by the signed-in customer

Auth
Account Bearer JWT
Scope
Signed-in customer; the saved account/customer identity must own the agreement.
Returns
HTTP 200: agreement.
Notes
Read-only accounting/access information. A visible agreement is not authorization to charge again or alter its installment count. Checkout, cancellation and provider payment events use their separate contracts.
Request, response and error reference

No request body fields are read by this operation.

HTTP 200 response (application/json)

{
  "type": "object",
  "properties": {
    "agreement": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "minimum": 1
        },
        "developerId": {
          "type": "integer",
          "minimum": 1
        },
        "customerUserId": {
          "type": [
            "integer",
            "null"
          ]
        },
        "customerId": {
          "type": "integer",
          "minimum": 1
        },
        "productId": {
          "type": "integer",
          "minimum": 1
        },
        "productName": {
          "type": [
            "string",
            "null"
          ]
        },
        "planVersionId": {
          "type": "integer",
          "minimum": 1
        },
        "checkoutId": {
          "type": [
            "integer",
            "null"
          ]
        },
        "entitlementId": {
          "type": [
            "integer",
            "null"
          ]
        },
        "provider": {
          "type": "string"
        },
        "providerSubscriptionId": {
          "type": [
            "string",
            "null"
          ]
        },
        "environment": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "accessState": {
          "type": "string"
        },
        "ownershipState": {
          "type": "string"
        },
        "currency": {
          "type": "string"
        },
        "cashPriceCents": {
          "type": "integer"
        },
        "installmentAmountCents": {
          "type": "integer"
        },
        "installmentCount": {
          "type": "integer"
        },
        "totalContractCents": {
          "type": "integer"
        },
        "paidInstallmentCount": {
          "type": "integer"
        },
        "netPaidInstallmentCount": {
          "type": "integer"
        },
        "paidAmountCents": {
          "type": "integer"
        },
        "refundedAmountCents": {
          "type": "integer"
        },
        "disputedAmountCents": {
          "type": "integer"
        },
        "currentPeriodStart": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "currentPeriodEnd": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "nextPaymentAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "failedPaymentGraceUntil": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "cancelAtPeriodEnd": {
          "type": "boolean"
        },
        "canceledAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "completedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "ownedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "revokedAt": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "installments": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "minimum": 1
              },
              "installmentNumber": {
                "type": "integer"
              },
              "status": {
                "type": "string"
              },
              "currency": {
                "type": "string"
              },
              "amountDueCents": {
                "type": "integer"
              },
              "amountPaidCents": {
                "type": "integer"
              },
              "amountRefundedCents": {
                "type": "integer"
              },
              "taxAmountCents": {
                "type": "integer"
              },
              "discountAmountCents": {
                "type": "integer"
              },
              "paidAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "refundedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "disputedAt": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "orderId": {
                "type": [
                  "integer",
                  "null"
                ]
              }
            },
            "additionalProperties": true
          }
        },
        "metadata": {
          "type": "object",
          "additionalProperties": true,
          "description": "Operation-specific extension data; do not put credentials or unnecessary personal information here."
        }
      },
      "additionalProperties": true
    }
  },
  "additionalProperties": true
}

Documented failures: 400, 401, 403, 404, 409, 500.