No. Resend returns a success response when it accepts the request. Provely proves accepted, bounced, delivered and sent as separate promises.
| Fact | Value |
|---|---|
| Skill version | 0.1.0 |
| Publisher | Built and signed by Provely. |
| Certification | Provisional |
| Last conformance run | 2026-09-05T12:00:00Z: 62 of 62 cases passed, 0 critical false VERIFIED |
| Provider API versions | 1.5.1 |
| Default provider API version | 1.5.1 |
| Compiled | 2026-09-05 |
| Manifest hash | 69f6f52647c24887 |
| Manifest hash check | the document hashes to the value the manifest states |
| Signature | valid, key provely-skill-2026-09, trusted by this build |
What does this page prove?
| Claim | Proven by | Evidence | Status |
|---|---|---|---|
| The accepted level proves that Resend holds an email record for the request. It does not prove that the message left the provider. | resend.email.accepted | E2 | proven |
| The bounced level proves the bounced state on the email record and the email.bounced event. Use it when the intent is to confirm a rejection, for example before a suppression. | resend.email.bounced | E2 + E3 | proven |
| The delivered level proves the delivered state on the email record and the email.delivered event. It does not prove that a person read the message. This level needs the email.delivered webhook. | resend.email.delivered | E2 + E3 | proven |
| The sent level proves the email.sent event of this email. It does not prove that the recipient mail server accepted the message. This level needs the email.sent webhook. | resend.email.sent | E2 + E3 | proven |
| An outcome outside Resend, such as a bank credit or a person who read a message | not proven | no E5 channel | not proven |
| The agent report that the action worked | never counts | E0 | not proven |
Which completion levels does the Resend skill expose?
Each level is one promise with one contract. An agent picks the level that matches the promise it makes. It cannot upgrade a level. Read the completion level definition.
| Level | Contract | Promise | Evidence | Certification |
|---|---|---|---|---|
accepted | resend.email.accepted v1.0.0 | The accepted level proves that Resend holds an email record for the request. It does not prove that the message left the provider. | E2 | Provisional |
bounced | resend.email.bounced v1.0.0 | The bounced level proves the bounced state on the email record and the email.bounced event. Use it when the intent is to confirm a rejection, for example before a suppression. | E2 + E3 | Generated draft |
delivered | resend.email.delivered v1.0.0 | The delivered level proves the delivered state on the email record and the email.delivered event. It does not prove that a person read the message. This level needs the email.delivered webhook. | E2 + E3 | Generated draft |
sent | resend.email.sent v1.0.0 | The sent level proves the email.sent event of this email. It does not prove that the recipient mail server accepted the message. This level needs the email.sent webhook. | E2 + E3 | Generated draft |
Which ways can a Resend action look done and not be?
| Contract | Case | Verdict |
|---|---|---|
| resend.email.accepted | duplicate side effect | CONTRADICTED |
| resend.email.accepted | partial completion | CONTRADICTED |
| resend.email.accepted | pre existing state | CONTRADICTED |
| resend.email.accepted | wrong subject | CONTRADICTED |
| resend.email.bounced | duplicate side effect | CONTRADICTED |
| resend.email.bounced | partial completion | CONTRADICTED |
| resend.email.bounced | pre existing state | CONTRADICTED |
| resend.email.bounced | wrong subject | CONTRADICTED |
| resend.email.delivered | duplicate side effect | CONTRADICTED |
| resend.email.delivered | partial completion | CONTRADICTED |
| resend.email.delivered | pre existing state | CONTRADICTED |
| resend.email.delivered | wrong subject | CONTRADICTED |
| resend.email.sent | duplicate side effect | CONTRADICTED |
| resend.email.sent | partial completion | CONTRADICTED |
| resend.email.sent | pre existing state | CONTRADICTED |
| resend.email.sent | wrong subject | CONTRADICTED |
What did the last conformance run show?
The last conformance run on 2026-09-05T12:00:00Z passed 62 of 62 cases with 0 critical false VERIFIED. One critical false VERIFIED rejects a skill.
| Contract | Certification |
|---|---|
resend.email.accepted | Provisional |
resend.email.bounced | Generated draft |
resend.email.delivered | Generated draft |
resend.email.sent | Generated draft |
The weakest contract is resend.email.accepted. It reaches Provisional. The package level is Provisional, because a package level never rises above its weakest contract. Read the level of the contract you use.
| Case class | Passed | Total |
|---|---|---|
| duplicate side effect | 5 | 5 |
| error after execution | 4 | 4 |
| error before execution | 4 | 4 |
| evidence unavailable | 5 | 5 |
| idempotent retry | 4 | 4 |
| pre existing state | 4 | 4 |
| stale readback | 4 | 4 |
| still transitional | 4 | 4 |
| terminal failure | 4 | 4 |
| terminal success | 4 | 4 |
| timeout after commit | 4 | 4 |
| version mismatch | 4 | 4 |
| webhook duplicate | 4 | 4 |
| webhook out of order | 4 | 4 |
| wrong subject | 4 | 4 |
The conformance artifact digest is 2d50bca3d2409f10. The harness signs the run, so a reader can check that these numbers come from that run.
What remains uncertain?
The level is Provisional because of it. Provely does not guess a rule that a source does not state.
What happens to a Resend verdict when Resend is down?
Nothing changes about the verdict. Provely records whether Resend answered when it read it, and it reads what Resend publishes about itself. Both explain an answer. Neither decides one. Read how Provely records integration uptime.
Resend publishes a machine-readable status document at https://resend-status.com/api/v2/summary.json. Provely reads it on a schedule and stores what it says. A Statuspage v2 summary document. The page is not hosted by Atlassian, and it answers the same shape.
Source: Resend status page · retrieved 2026-09-07
A Resend status page is second-hand. It is often late, and it is often narrower than the outage. A verdict never rests on it.
Where do these facts come from?
Every claim above cites a source assertion in the skill provenance. The compiler records the source, its hash, and the retrieval date. A page never states a provider rule without one.
| Source | Kind | Retrieved | Excerpt |
|---|---|---|---|
| resend.docs.idempotency | docs | 2026-09-05 | authored |
| resend.docs.webhooks | docs | 2026-09-05 | authored |
| resend.openapi | openapi | 2026-09-05 | trimmed |
How do I verify a Resend action?
Verify a Resend action with Provely
- Begin the operation.Call
beginwith the contractresend.email.acceptedand the input. Keep the operation id and the idempotency key. - Make the Resend call you make today.Send the
Idempotency-Keyheader with the key thatbeginreturned. A retry then cannot create a second side effect. - Submit the acknowledgement.Call
action_resultwith the Resend response. This is evidence level E1. It is not completion. - Verify.Call
verify. The runtime reads the evidence that the contract names, from Resend and not from the agent, and evaluates the contract. - Report the verdict exactly as returned.VERIFIED comes with a signed receipt. PENDING comes with the operation id. CONTRADICTED and UNVERIFIABLE are not success.
Questions developers ask
Does the accepted level prove the sent level?
No. The accepted level proves that Resend holds an email record for the request. It does not prove that the message left the provider. The sent level proves the email.sent event of this email. It does not prove that the recipient mail server accepted the message. This level needs the email.sent webhook. Use resend.email.sent to prove sent.
What does the agent say while the Resend action is still in progress?
It says: "The action is accepted but not yet verified. Operation: <id>." The verdict is PENDING. The runtime observes again on the contract timing policy.
Which Resend API versions does the skill support?
1.5.1. An operation on another version returns UNVERIFIABLE with the reason version_unsupported. The runtime never guesses.
Does Provely need write access to Resend?
No. The agent keeps its write key. The verifier reads with a separate read-only credential where Resend permits it, and it never shares that credential with the agent.