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

# Get Webhook

Retrieves the full details of a single webhook notification, including its original payload, delivery status, retry history, and the error response from the last failed attempt.

<Info>
  For an overview of webhook events and payload structures, see the [Webhooks Guide](/docs/how-our-webhooks-work).
</Info>

***

## Important Notes

* **`latestErrorPayload`**: Contains the error body returned by your endpoint on the last failed delivery attempt. Use this to diagnose why delivery failed (e.g. a `500` from your server).
* **`retryAttempts`**: The number of automatic delivery attempts made by Capa. After the maximum is reached, status transitions to `FAILED`.
* **`manualRetryCount`**: Incremented each time you call the [retry endpoint](/reference/partnerwebhooknotificationv2controller_retry). A maximum of 3 manual retries are allowed per notification.

***

## Status Reference

| Status     | Description                                            |
| ---------- | ------------------------------------------------------ |
| `PENDING`  | Queued for delivery or currently being retried         |
| `SENT`     | Successfully delivered to your endpoint                |
| `FAILED`   | All automatic delivery attempts exhausted              |
| `NOT_SENT` | No webhook URL was configured at the time of the event |

***

## Error Codes

### Common Errors

| HTTP Status | Code                   | Message                            |
| ----------- | ---------------------- | ---------------------------------- |
| 401         | `UNAUTHORIZED`         | "API Key is missing"               |
| 401         | `UNAUTHORIZED`         | "Invalid API Key format"           |
| 401         | `UNAUTHORIZED`         | "Invalid API Key"                  |
| 403         | `INVALID_PARTNER_FLOW` | "The partner has an invalid flow." |

### Endpoint-Specific Errors

| HTTP Status | Code        | Message                          |
| ----------- | ----------- | -------------------------------- |
| 404         | `NOT_FOUND` | "Webhook notification not found" |


## OpenAPI

````yaml reference/openapi/PartnerWebhookNotificationV2Controller_getWebhookNotificationDetail.json GET /api/partner/v2/webhook-notifications/{id}
openapi: 3.0.0
info:
  title: Capa Partner API - V2
  description: >-
    Partner API for integrating cryptocurrency on-ramp and off-ramp services
    using Capa's infrastructure. Enable your users to seamlessly convert between
    fiat and crypto.
  version: v2
  contact: {}
servers:
  - url: https://staging-api.capa.fi
  - url: https://production-api.capa.fi
security: []
paths:
  /api/partner/v2/webhook-notifications/{id}:
    get:
      tags:
        - Webhook-Notifications
      summary: Get webhook notification details
      operationId: PartnerWebhookNotificationV2Controller_getWebhookNotificationDetail
      parameters:
        - name: id
          required: true
          in: path
          description: The webhook notification ID
          schema:
            example: 8374f327-38bd-4b0b-b8a7-2524599eb903
            type: string
      responses:
        '200':
          description: >-
            Returns the full details of a single webhook notification including
            its payload and error information.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Notification identifier
                        example: 8374f327-38bd-4b0b-b8a7-2524599eb903
                      status:
                        type: string
                        description: Delivery status of the webhook notification
                        enum:
                          - PENDING
                          - FAILED
                          - SENT
                          - NOT_SENT
                        example: FAILED
                      retryAttempts:
                        type: number
                        description: Number of automatic delivery attempts
                        example: 5
                      manualRetryCount:
                        type: number
                        description: Number of manual retries triggered by the partner
                        example: 1
                      payload:
                        type: object
                        description: Original payload delivered to the partner endpoint
                        example:
                          type: TRANSACTION
                          event: CREATED_ON_RAMP
                          externalUserId: 18c54df0-1e62-4fee-8864-9b7512a0748c
                          transactionId: 14f6ba28-d285-4658-8dd7-8a1d903838c8
                          firstName: Martin
                          lastName: Smith
                      latestErrorPayload:
                        type: object
                        nullable: true
                        description: >-
                          Error response from the last failed delivery attempt,
                          null if none
                        example:
                          success: false
                          error:
                            message: >-
                              Token "2a7db920-1987-451f-9888-9262dc0f2e22" not
                              found
                            id: ''
                      lastManualRetryAt:
                        type: string
                        format: date-time
                        nullable: true
                        description: >-
                          ISO timestamp of the last manual retry, null if never
                          retried manually
                        example: '2026-01-15T10:35:00.000Z'
                      version:
                        type: number
                        description: >-
                          Optimistic lock version for concurrent retry
                          prevention
                        example: 1
                      createdAt:
                        type: string
                        format: date-time
                        description: ISO timestamp when the notification was created
                        example: '2026-01-15T10:30:00.000Z'
                      updatedAt:
                        type: string
                        format: date-time
                        description: ISO timestamp when the notification was last updated
                        example: '2026-01-15T10:35:00.000Z'
                    required:
                      - id
                      - status
                      - retryAttempts
                      - manualRetryCount
                      - payload
                      - latestErrorPayload
                      - lastManualRetryAt
                      - version
                      - createdAt
                      - updatedAt
                    x-readme-ref-name: WebhookNotificationDetailResponse
              example:
                success: true
                data:
                  id: 8374f327-38bd-4b0b-b8a7-2524599eb903
                  status: FAILED
                  retryAttempts: 5
                  manualRetryCount: 1
                  payload:
                    type: TRANSACTION
                    event: CREATED_ON_RAMP
                    externalUserId: 18c54df0-1e62-4fee-8864-9b7512a0748c
                    transactionId: 14f6ba28-d285-4658-8dd7-8a1d903838c8
                    firstName: Martin
                    lastName: Smith
                  latestErrorPayload:
                    success: false
                    error:
                      message: Token "2a7db920-1987-451f-9888-9262dc0f2e22" not found
                      id: ''
                  lastManualRetryAt: '2026-01-15T10:35:00.000Z'
                  version: 1
                  createdAt: '2026-01-15T10:30:00.000Z'
                  updatedAt: '2026-01-15T10:35:00.000Z'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                code: INVALID_USER_INPUT_ERROR
                message: Invalid User Input
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                UNAUTHORIZED:
                  value:
                    success: false
                    code: UNAUTHORIZED
                    message: API Key is missing
                UNAUTHORIZED_2:
                  value:
                    success: false
                    code: UNAUTHORIZED
                    message: Invalid API Key format
                UNAUTHORIZED_3:
                  value:
                    success: false
                    code: UNAUTHORIZED
                    message: Invalid API Key
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                code: NOT_FOUND_ERROR
                message: Requested PartnerWebhookNotification was not found
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                code: INTERNAL_SERVER_ERROR
                message: Internal server error
      security:
        - PartnerApiKey: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        code:
          type: string
          description: Machine-readable error code.
        message:
          type: string
          description: Human-readable error message.
        errors:
          type: array
          description: Optional per-field validation details.
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
      required:
        - success
        - code
        - message
  securitySchemes:
    PartnerApiKey:
      type: apiKey
      in: header
      name: partner-api-key
      description: API key for the affiliated partner performing the request.

````