> ## Documentation Index
> Fetch the complete documentation index at: https://docs.skinloop.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Recover the current deposit state

> Requires deposits:read. Merchant-scoped and server-side only. Use this to
reconcile delayed, duplicate or out-of-order notifications. Credit only
when status is completed and canCreditPlayer is true, with an atomic
merchant-side uniqueness constraint on creditReference. An elapsed hold
date, a browser return and a provider-created trade do not authorize credit.




## OpenAPI

````yaml /openapi.yaml get /v1/merchant-api/deposit-sessions/{id}
openapi: 3.1.0
info:
  title: Skinloop API
  version: 1.1.0-draft
  description: |
    Public contract for Skinloop merchant payments, hosted checkout status,
    merchant dashboard reads, and merchant webhooks. Skinloop never exposes
    credentials, private identifiers, trade URLs, or client tokens.
servers:
  - url: https://api.skinloop.io
    description: Production
security: []
tags:
  - name: Account
  - name: Payments
  - name: Checkout
  - name: Reporting
  - name: Dashboard
paths:
  /v1/merchant-api/deposit-sessions/{id}:
    get:
      tags:
        - Player deposits
      summary: Recover the current deposit state
      description: >
        Requires deposits:read. Merchant-scoped and server-side only. Use this
        to

        reconcile delayed, duplicate or out-of-order notifications. Credit only

        when status is completed and canCreditPlayer is true, with an atomic

        merchant-side uniqueness constraint on creditReference. An elapsed hold

        date, a browser return and a provider-created trade do not authorize
        credit.
      operationId: getPlayerDepositSession
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
            pattern: ^ds_[A-Za-z0-9_-]{32}$
      responses:
        '200':
          description: Current state, including immutable player and merchant references
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DepositSession'
        '401':
          description: Invalid or revoked key, or missing required scope
        '403':
          description: Merchant is suspended
        '404':
          description: Unknown session or a session belonging to another merchant
        '503':
          description: Status lookup is unavailable; do not assume failure or credit
      security:
        - merchantApiKey: []
components:
  schemas:
    DepositSession:
      type: object
      required:
        - id
        - mode
        - merchantReference
        - playerReference
        - creditReference
        - eventSequence
        - limits
        - allowedGames
        - status
        - canCreditPlayer
        - hostedUrl
        - expiresAt
      properties:
        id:
          type: string
          pattern: ^ds_[A-Za-z0-9_-]{32}$
        mode:
          type: string
          const: balance_deposit
        merchantReference:
          type: string
        playerReference:
          type: string
        creditReference:
          type: string
          description: Stable unique reference for the merchant's player-ledger credit
        eventSequence:
          type: integer
          minimum: 0
        limits:
          type: object
          properties:
            min:
              type: integer
            max:
              type: integer
            currency:
              type: string
              const: USD
        acceptedAmount:
          type:
            - object
            - 'null'
          properties:
            value:
              type: integer
              description: Actual accepted selection value in USD cents
            currency:
              type: string
              const: USD
        allowedGames:
          type: array
          items:
            type: string
            enum:
              - cs2
              - rust
        status:
          type: string
          enum:
            - created
            - expired
            - pending
            - hold
            - completed
            - failed
            - reverted
        reason:
          type: string
          enum:
            - failed
            - declined
            - canceled
            - expired
            - provider_rejected
        canCreditPlayer:
          type: boolean
        holdUntil:
          type:
            - string
            - 'null'
          format: date-time
        hostedUrl:
          type: string
          format: uri
        continuation:
          type: object
          properties:
            available:
              type: boolean
            path:
              type: string
        expiresAt:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
  securitySchemes:
    merchantApiKey:
      type: http
      scheme: bearer
      bearerFormat: Skinloop API key
      description: >
        One API-key record may allow cs2, rust, or both. Every checkout's
        allowedGames must be a subset of that key's allowed games; use one key
        record rather than separate CS2 and Rust keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.