POST
/
v2
/
accounts
/
{account_id}
/
webhooks
AhaSend Go SDK
package main

import (
  "context"
  "fmt"
  "log"

  "github.com/AhaSend/ahasend-go/api"
  "github.com/AhaSend/ahasend-go/models/requests"
  "github.com/google/uuid"
)

func main() {
  // Create API client with authentication
  client := api.NewAPIClient(
    api.WithAPIKey("aha-sk-your-64-character-key"),
  )

  accountID := uuid.New()

  // Create context for the API call
  ctx := context.Background()

  // Call the ping endpoint
  response, httpResp, err := client.WebhooksAPI.CreateWebhook(
    ctx,
    accountID,
    requests.CreateWebhookRequest{
      Name:   "Failures",
      URL:    "https://mystartup.com/webhook",
      Enabled: true,
      OnBounced: true,
      OnTransientError: true,
      OnFailed: true,
    },
    nil,
  )
  if err != nil {
    log.Fatalf("Error creating webhook: %v", err)
  }

  // Check response
  if httpResp.StatusCode == 200 {
    fmt.Printf("✅ Status: %d\n", httpResp.StatusCode)
    if response != nil {
      fmt.Printf("Created webhook: %#v\n", response)
    }
  } else {
    fmt.Printf("❌ Unexpected status code: %d\n", httpResp.StatusCode)
  }
}
{
  "object": "webhook",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "name": "<string>",
  "url": "<string>",
  "enabled": true,
  "on_reception": true,
  "on_delivered": true,
  "on_transient_error": true,
  "on_failed": true,
  "on_bounced": true,
  "on_suppressed": true,
  "on_opened": true,
  "on_clicked": true,
  "on_suppression_created": true,
  "on_dns_error": true,
  "scope": "<string>",
  "domains": [
    "<string>"
  ],
  "success_count": 123,
  "error_count": 123,
  "errors_since_last_success": 123,
  "last_request_at": "2023-11-07T05:31:56Z"
}

Authorizations

Authorization
string
header
required

API key for authentication

Headers

Idempotency-Key
string

Optional idempotency key for safe request retries. Must be a unique string for each logical request. Requests with the same key will return the same response. Keys expire after 24 hours.

Maximum length: 255

Path Parameters

account_id
string<uuid>
required

Account ID

Body

application/json

Response

201
application/json

Webhook created successfully

The response is of type object.