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

# Fetch Descriptors (v1)

> Legacy v1 descriptors endpoint. Use the v2 endpoint for new integrations.

<Warning>
  This is the legacy **v1** endpoint. It returns a nested embed shape with no filtering or pagination. New integrations should use [Fetch Descriptors (v2)](/api-reference/enrollment/fetch-descriptors), which returns a flat, filterable, paginated record set (`program` / `status` filters, `page` / `per`).
</Warning>


## OpenAPI

````yaml get /api/descriptors
openapi: 3.0.1
info:
  title: Chargeblast API
  version: 0.1.0
servers:
  - url: https://api.chargeblast.com
security: []
tags:
  - name: Credit Requests
  - name: Sync Data
  - name: Alerts
  - name: Enrollment
paths:
  /api/descriptors:
    get:
      tags:
        - Enrollment
      summary: Fetch Descriptors
      description: Fetch all the descriptors for your merchants.
      operationId: descriptors
      parameters:
        - name: X-API-Key
          required: true
          in: header
          schema:
            type: string
          description: Your API key. Sent in the `X-API-Key` header.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmbedDescriptorsResponseDTO'
components:
  schemas:
    EmbedDescriptorsResponseDTO:
      properties:
        descriptors:
          type: array
          items:
            $ref: '#/components/schemas/PayshieldDescriptorDTO'
      required:
        - descriptors
      type: object
    PayshieldDescriptorDTO:
      properties:
        id:
          nullable: true
          type: string
        hasEmailSent:
          type: boolean
        type:
          $ref: '#/components/schemas/DescriptorType'
        bankMid:
          nullable: true
          type: string
        status:
          $ref: '#/components/schemas/PayshieldDescriptorDescriptorStatus'
        site:
          $ref: '#/components/schemas/PayshieldSiteDTO'
        details:
          $ref: '#/components/schemas/DescriptorDetails'
      required:
        - details
        - hasEmailSent
        - site
        - status
        - type
      type: object
    DescriptorType:
      type: string
      enum:
        - Ethoca
        - CDRN
        - RDR
        - Discover
        - AMEX
        - JCB
        - Unknown
        - ''
        - Cancel
        - TC40
        - SAFE
    PayshieldDescriptorDescriptorStatus:
      type: string
      enum:
        - Pending
        - Enrolled
        - Disabled
        - Surpressed
        - Processing
        - Rejected
        - InReview
        - PendingRemoval
      description: >-
        Descriptor lifecycle state. `PendingRemoval` means an unenroll was
        requested for a previously `Enrolled` descriptor; it stays live until
        provider de-registration is confirmed, then the record is deleted.
    PayshieldSiteDTO:
      required:
        - descriptors
        - name
        - retailer
      type: object
      properties:
        retailer:
          $ref: '#/components/schemas/PayshieldRetailerDTO'
        descriptors:
          type: array
          items:
            $ref: '#/components/schemas/PayshieldDescriptorDTO'
        id:
          nullable: true
          type: string
        name:
          type: string
    DescriptorDetails:
      required:
        - type
      type: object
      properties:
        type:
          type: string
    PayshieldRetailerDTO:
      properties:
        sites:
          items:
            $ref: '#/components/schemas/PayshieldSiteDTO'
          type: array
        name:
          nullable: true
          type: string
        rcode:
          nullable: true
          type: string
        user:
          $ref: '#/components/schemas/UserDTO'
        verifiRiskLevel:
          $ref: '#/components/schemas/VerifiRiskLevel'
        verifi_name:
          nullable: true
          type: string
        source:
          $ref: '#/components/schemas/ProviderSource'
        merchant_id:
          nullable: true
          type: string
        id:
          nullable: true
          type: string
      type: object
      required:
        - sites
        - user
    UserDTO:
      required:
        - accounts
        - agentDeal
        - announcements
        - invitations
        - tokens
      properties:
        hubspotId:
          nullable: true
          type: string
        pfStripeId:
          nullable: true
          type: string
        tokens:
          type: array
          items:
            $ref: '#/components/schemas/RutterTokenDTO'
        svixId:
          nullable: true
          type: string
        id:
          nullable: true
          type: string
        fromInvite:
          type: boolean
          nullable: true
        referralCode:
          nullable: true
          type: string
        merchantId:
          nullable: true
          type: string
        phonenumber:
          nullable: true
          type: string
        stripeId:
          nullable: true
          type: string
        utmSource:
          nullable: true
          type: string
        agentDeal:
          items:
            $ref: '#/components/schemas/AgentDealDTO'
          type: array
        internalCompany:
          nullable: true
          type: string
        invitations:
          items:
            $ref: '#/components/schemas/InvitationDTO'
          type: array
        announcements:
          type: array
          items:
            $ref: '#/components/schemas/AnnouncementDTO'
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/CBAccountDTO'
        isBilledForResolved:
          type: boolean
          nullable: true
        risk:
          $ref: '#/components/schemas/AccountRiskLevel'
        internalId:
          nullable: true
          type: string
        email:
          nullable: true
          type: string
        settings:
          $ref: '#/components/schemas/UserSettingsDTO'
        createdAt:
          format: date-time
          type: string
          nullable: true
        name:
          nullable: true
          type: string
        company:
          nullable: true
          type: string
        admin:
          type: boolean
          nullable: true
        isSalesAgent:
          type: boolean
          nullable: true
      type: object
    VerifiRiskLevel:
      type: string
      enum:
        - High
        - Medium
        - Low
    ProviderSource:
      enum:
        - Banks
        - Ethoca
        - Verifi
      type: string
    RutterTokenDTO:
      properties:
        externalId:
          nullable: true
          type: string
        connectionId:
          type: string
        accessToken:
          type: string
        platformToken:
          nullable: true
          type: string
        id:
          nullable: true
          type: string
        storeUniqueName:
          type: string
        isReady:
          type: boolean
        status:
          $ref: '#/components/schemas/RutterTokenDTOConnectionStatus'
        publicToken:
          type: string
        platform:
          type: string
      required:
        - accessToken
        - connectionId
        - isReady
        - platform
        - publicToken
        - status
        - storeUniqueName
      type: object
    AgentDealDTO:
      type: object
      properties:
        agentPayload:
          additionalProperties: {}
          type: object
        id:
          nullable: true
          type: string
        createdAt:
          format: date-time
          type: string
          nullable: true
      required:
        - agentPayload
    InvitationDTO:
      required:
        - email
        - permission
      type: object
      properties:
        email:
          type: string
        status:
          $ref: '#/components/schemas/InvitationDTOInvitationStatus'
        id:
          nullable: true
          type: string
        createdAt:
          format: date-time
          type: string
          nullable: true
        permission:
          $ref: '#/components/schemas/AccountPermission'
    AnnouncementDTO:
      type: object
      properties:
        message:
          type: string
        id:
          nullable: true
          type: string
        type:
          $ref: '#/components/schemas/AnnouncementDTOAnnouncementType'
      required:
        - message
        - type
    CBAccountDTO:
      properties:
        id:
          nullable: true
          type: string
        email:
          nullable: true
          type: string
      type: object
    AccountRiskLevel:
      type: string
      enum:
        - High
        - Medium
        - Low
    UserSettingsDTO:
      type: object
      properties:
        id:
          nullable: true
          type: string
        settings:
          $ref: '#/components/schemas/Settings'
    RutterTokenDTOConnectionStatus:
      type: string
      enum:
        - active
        - inactive
    InvitationDTOInvitationStatus:
      type: string
      enum:
        - Pending
        - Accepted
    AccountPermission:
      type: string
      enum:
        - manager
        - analyst
        - admin
        - refundAnalyst
        - any
        - unknown
    AnnouncementDTOAnnouncementType:
      type: string
      enum:
        - Error
        - Warning
        - Success
    Settings:
      required:
        - apiKey
        - emails
        - webhooks
      type: object
      properties:
        webhooks:
          type: array
          items:
            type: string
        processor:
          nullable: true
          type: string
        ruleset:
          nullable: true
          type: string
        descriptors:
          type: array
          nullable: true
          items:
            type: string
        refundUrl:
          nullable: true
          type: string
        autoresolve:
          type: boolean
          nullable: true
        integrationSettings:
          $ref: '#/components/schemas/IntegrationSettings'
        arns:
          type: array
          nullable: true
          items:
            type: string
        accountBanned:
          type: boolean
          nullable: true
        alertColumns:
          type: array
          nullable: true
          items:
            type: string
        mcc:
          nullable: true
          type: string
        refundAllFromCustomer:
          type: boolean
          nullable: true
        cancelSubscription:
          type: boolean
          nullable: true
        addCustomerToBlockList:
          type: boolean
          nullable: true
        descriptorRules:
          nullable: true
          items:
            $ref: '#/components/schemas/Rule'
          type: array
        apiKey:
          type: string
        paymentSource:
          nullable: true
          type: string
        emails:
          type: array
          items:
            type: string
        invoiceSettings:
          $ref: '#/components/schemas/InvoiceSettings'
        selectedAlerts:
          type: array
          nullable: true
          items:
            type: string
        rdrNotifications:
          type: boolean
          nullable: true
        agentSettings:
          $ref: '#/components/schemas/AgentSettings'
        claritySettings:
          $ref: '#/components/schemas/ClaritySettings'
        touched:
          format: int64
          nullable: true
          type: integer
        webhookSecret:
          nullable: true
          type: string
        matchingThreshhold:
          type: number
          nullable: true
          format: double
        threshholdEnabled:
          type: boolean
          nullable: true
        efwRule:
          $ref: '#/components/schemas/Rule'
        ethocaRule:
          $ref: '#/components/schemas/Rule'
        refundAPIEnabled:
          type: boolean
          nullable: true
        hasBetaFeatures:
          type: boolean
          nullable: true
    IntegrationSettings:
      type: object
      properties:
        mamopayIntegration:
          $ref: '#/components/schemas/MamopayIntegration'
        braintreeIntegration:
          $ref: '#/components/schemas/BraintreeIntegration'
        sealIntegration:
          $ref: '#/components/schemas/SealIntegration'
        checkoutChampIntegration:
          $ref: '#/components/schemas/CheckoutChampIntegration'
        stripeIntegration:
          $ref: '#/components/schemas/StripeIntegration'
        skioIntegration:
          $ref: '#/components/schemas/SkioIntegration'
        discordIntegration:
          $ref: '#/components/schemas/DiscordIntegration'
        stickyIntegration:
          $ref: '#/components/schemas/StickyIntegration'
        shopifyIntegration:
          $ref: '#/components/schemas/ShopifyIntegration'
        nextIntegration:
          $ref: '#/components/schemas/NextIntegration'
        maverickIntegration:
          $ref: '#/components/schemas/MaverickIntegration'
        spreedlyIntegration:
          $ref: '#/components/schemas/SpreedlyIntegration'
        smsIntegration:
          $ref: '#/components/schemas/SMSIntegration'
        whopIntegration:
          $ref: '#/components/schemas/WhopIntegration'
        slackIntegration:
          $ref: '#/components/schemas/SlackIntegration'
        klaviyoIntegration:
          $ref: '#/components/schemas/KlaviyoIntegration'
    Rule:
      required:
        - rules
      properties:
        action:
          $ref: '#/components/schemas/RuleAction'
        rules:
          items:
            $ref: '#/components/schemas/RuleGroup'
          type: array
      type: object
    InvoiceSettings:
      properties:
        vatCode:
          nullable: true
          type: string
        postal_code:
          nullable: true
          type: string
        line2:
          nullable: true
          type: string
        line1:
          nullable: true
          type: string
        state:
          nullable: true
          type: string
        country:
          nullable: true
          type: string
        vatNumber:
          nullable: true
          type: string
        city:
          nullable: true
          type: string
      type: object
    AgentSettings:
      properties:
        bankTransferInfo:
          $ref: '#/components/schemas/AgentSettingsBankTransferInfo'
        cryptoInfo:
          $ref: '#/components/schemas/AgentSettingsCryptoInfo'
      required:
        - bankTransferInfo
        - cryptoInfo
      type: object
    ClaritySettings:
      properties:
        websiteForReceipt:
          nullable: true
          type: string
        productDescription:
          nullable: true
          type: string
        cancellationPolicy:
          nullable: true
          type: string
        termsAndConditionsLink:
          nullable: true
          type: string
        merchantCategoryCode:
          nullable: true
          type: string
        cancellationPolicyRecap:
          nullable: true
          type: string
        termsAndConditions:
          nullable: true
          type: string
        cancellationPolicyLink:
          nullable: true
          type: string
        country:
          nullable: true
          type: string
        latitude:
          nullable: true
          type: string
        logoUrl:
          nullable: true
          type: string
        phoneForReceipt:
          nullable: true
          type: string
        termsAndConditionsRecap:
          nullable: true
          type: string
        line1:
          nullable: true
          type: string
        city:
          nullable: true
          type: string
        status:
          nullable: true
          type: string
        productName:
          nullable: true
          type: string
        countrySubdivision:
          nullable: true
          type: string
        description:
          nullable: true
          type: string
        name:
          nullable: true
          type: string
        postalCode:
          nullable: true
          type: string
        refundPolicyLink:
          nullable: true
          type: string
        refundPolicyRecap:
          nullable: true
          type: string
        refundPolicy:
          nullable: true
          type: string
        longitude:
          nullable: true
          type: string
        emailForReceipt:
          nullable: true
          type: string
        line2:
          nullable: true
          type: string
      type: object
    MamopayIntegration:
      properties:
        enabled:
          type: boolean
          nullable: true
        apiKey:
          nullable: true
          type: string
      type: object
    BraintreeIntegration:
      type: object
      properties:
        privateKey:
          nullable: true
          type: string
        enabled:
          type: boolean
          nullable: true
        accountId:
          nullable: true
          type: string
        merchantId:
          nullable: true
          type: string
        publicKey:
          nullable: true
          type: string
    SealIntegration:
      required:
        - apiKey
        - enabled
      type: object
      properties:
        enabled:
          type: boolean
        apiKey:
          type: string
    CheckoutChampIntegration:
      type: object
      required:
        - enabled
        - password
        - username
      properties:
        password:
          type: string
        enabled:
          type: boolean
        username:
          type: string
    StripeIntegration:
      required:
        - account_id
        - enabled
      type: object
      properties:
        account_id:
          type: string
        user_id:
          nullable: true
          type: string
        shouldAppendDescriptor:
          type: boolean
          nullable: true
        testMode:
          type: boolean
          nullable: true
        enabled:
          type: boolean
        state:
          nullable: true
          type: string
        useBillingDescriptors:
          type: boolean
          nullable: true
        appendDescriptor:
          nullable: true
          type: string
    SkioIntegration:
      properties:
        enabled:
          type: boolean
          nullable: true
        apiKey:
          nullable: true
          type: string
      type: object
    DiscordIntegration:
      type: object
      required:
        - enabled
        - webhook
      properties:
        webhook:
          type: string
        enabled:
          type: boolean
    StickyIntegration:
      type: object
      properties:
        enabled:
          type: boolean
          nullable: true
        subdomain:
          nullable: true
          type: string
        username:
          nullable: true
          type: string
        password:
          nullable: true
          type: string
    ShopifyIntegration:
      type: object
      properties:
        id:
          nullable: true
          type: string
        store_unique_name:
          nullable: true
          type: string
        state:
          nullable: true
          type: string
        external_id:
          nullable: true
          type: string
    NextIntegration:
      properties:
        status:
          nullable: true
          type: string
        store:
          nullable: true
          type: string
        enabled:
          type: boolean
          nullable: true
      type: object
    MaverickIntegration:
      properties:
        enabled:
          type: boolean
          nullable: true
        apiKey:
          nullable: true
          type: string
      type: object
    SpreedlyIntegration:
      properties:
        env:
          nullable: true
          type: string
        enabled:
          type: boolean
          nullable: true
        key:
          nullable: true
          type: string
      type: object
    SMSIntegration:
      properties:
        phonenumber:
          type: string
        enabled:
          type: boolean
      required:
        - enabled
        - phonenumber
      type: object
    WhopIntegration:
      properties:
        userId:
          type: string
        enabled:
          type: boolean
        paymentStatus:
          nullable: true
          type: string
        companyId:
          type: string
      type: object
      required:
        - companyId
        - enabled
        - userId
    SlackIntegration:
      properties:
        enabled:
          type: boolean
        channel:
          type: string
        authCode:
          type: string
      type: object
      required:
        - authCode
        - channel
        - enabled
    KlaviyoIntegration:
      required:
        - apiKey
        - enabled
      type: object
      properties:
        enabled:
          type: boolean
        apiKey:
          type: string
    RuleAction:
      type: object
      properties:
        descriptor:
          nullable: true
          type: string
    RuleGroup:
      properties:
        logicOperator:
          type: string
      type: object
      required:
        - logicOperator
    AgentSettingsBankTransferInfo:
      required:
        - enabled
      type: object
      properties:
        bankAddress:
          nullable: true
          type: string
        bankName:
          nullable: true
          type: string
        enabled:
          type: boolean
        routingNumber:
          nullable: true
          type: string
        iban:
          nullable: true
          type: string
        swiftCode:
          nullable: true
          type: string
        accountNumber:
          nullable: true
          type: string
    AgentSettingsCryptoInfo:
      type: object
      required:
        - token
      properties:
        token:
          type: string

````