diff --git a/acceptance/openstack/blockstorage_test.go b/acceptance/openstack/blockstorage_test.go
index fed4114..0cd1d56 100644
--- a/acceptance/openstack/blockstorage_test.go
+++ b/acceptance/openstack/blockstorage_test.go
@@ -163,11 +163,22 @@
 
 	var css snapshots.Snapshot
 	css, err = snapshots.Create(client, snapshots.CreateOpts{
-		"volume_id": cv.Id,
+		"volume_id":    cv.Id,
+		"display_name": "test-snapshot",
 	})
 	if err != nil {
 		t.Error(err)
 		return
 	}
+	time.Sleep(20000 * time.Millisecond)
+	defer func() {
+		err = snapshots.Delete(client, snapshots.DeleteOpts{
+			"id": cv.Id,
+		})
+		if err != nil {
+			t.Error(err)
+			return
+		}
+	}()
 	fmt.Printf("%+v\n", css)
 }
diff --git a/openstack/blockstorage/v1/client.go b/openstack/blockstorage/v1/client.go
index 40cab6c..52477ff 100644
--- a/openstack/blockstorage/v1/client.go
+++ b/openstack/blockstorage/v1/client.go
@@ -34,6 +34,10 @@
 	return fmt.Sprintf("%s/snapshots", c.endpoint)
 }
 
+func (c *Client) GetSnapshotURL(id string) string {
+	return fmt.Sprintf("%s/snapshots/%s", c.endpoint, id)
+}
+
 func (c *Client) GetHeaders() (map[string]string, error) {
 	t, err := c.getAuthToken()
 	if err != nil {
diff --git a/openstack/blockstorage/v1/snapshots/requests.go b/openstack/blockstorage/v1/snapshots/requests.go
index 18f1074..90c2ec3 100644
--- a/openstack/blockstorage/v1/snapshots/requests.go
+++ b/openstack/blockstorage/v1/snapshots/requests.go
@@ -23,3 +23,15 @@
 	})
 	return ss, err
 }
+
+func Delete(c *blockstorage.Client, opts DeleteOpts) error {
+	h, err := c.GetHeaders()
+	if err != nil {
+		return err
+	}
+	url := c.GetSnapshotURL(opts["id"])
+	_, err = perigee.Request("DELETE", url, perigee.Options{
+		MoreHeaders: h,
+	})
+	return err
+}
diff --git a/openstack/blockstorage/v1/snapshots/snapshots.go b/openstack/blockstorage/v1/snapshots/snapshots.go
index 8525f1a..6a76f85 100644
--- a/openstack/blockstorage/v1/snapshots/snapshots.go
+++ b/openstack/blockstorage/v1/snapshots/snapshots.go
@@ -12,3 +12,4 @@
 }
 
 type CreateOpts map[string]interface{}
+type DeleteOpts map[string]string
