No. Stripe returns a success response when it accepts the request. Provely proves created and succeeded as separate promises.

Skill facts from the signed manifest.
FactValue
Skill version0.1.0
PublisherBuilt and signed by Provely.
CertificationOfficial
Last conformance run2026-09-05T12:00:00Z: 33 of 33 cases passed, 0 critical false VERIFIED
Provider API versions2026-08-26
Default provider API version2026-08-26
Compiled2026-09-05
Manifest hash13108798680f04f5
Manifest hash checkthe document hashes to the value the manifest states
Signaturevalid, key provely-skill-2026-09, trusted by this build

What does this page prove?

ClaimProven byEvidenceStatus
The created level proves that the Refund object exists at the provider with the requested amount and charge. It does not prove that money moved.stripe.refund.createdE2 + E3proven
A Refund object does not prove that money moved. This contract proves the succeeded state on the refund resource and a refund.updated event that carries it.stripe.refund.succeededE2 + E3proven
An outcome outside Stripe, such as a bank credit or a person who read a messagenot provenno E5 channelnot proven
The agent report that the action workednever countsE0not proven

Which completion levels does the Stripe 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.

LevelContractPromiseEvidenceCertification
createdstripe.refund.created v1.0.0The created level proves that the Refund object exists at the provider with the requested amount and charge. It does not prove that money moved.E2 + E3Official
succeededstripe.refund.succeeded v1.0.0A Refund object does not prove that money moved. This contract proves the succeeded state on the refund resource and a refund.updated event that carries it.E2 + E3Official

Which ways can a Stripe action look done and not be?

ContractCaseVerdict
stripe.refund.createdduplicate side effectCONTRADICTED
stripe.refund.createdpre existing stateCONTRADICTED
stripe.refund.createdwrong amountCONTRADICTED
stripe.refund.createdwrong subjectCONTRADICTED
stripe.refund.succeededduplicate side effectCONTRADICTED
stripe.refund.succeededpre existing stateCONTRADICTED
stripe.refund.succeededwrong amountCONTRADICTED
stripe.refund.succeededwrong subjectCONTRADICTED

What did the last conformance run show?

The last conformance run on 2026-09-05T12:00:00Z passed 33 of 33 cases with 0 critical false VERIFIED. One critical false VERIFIED rejects a skill.

The certification of each contract.
ContractCertification
stripe.refund.createdOfficial
stripe.refund.succeededOfficial

The weakest contract is stripe.refund.created. It reaches Official. The package level is Official, because a package level never rises above its weakest contract. Read the level of the contract you use.

The conformance result by case class.
Case classPassedTotal
duplicate side effect22
error after execution22
error before execution22
evidence unavailable22
idempotent retry22
pre existing state33
stale readback22
still transitional22
terminal failure22
terminal success22
timeout after commit22
version mismatch22
webhook duplicate22
webhook out of order22
wrong amount22
wrong subject22

The conformance artifact digest is 1246b0a1a0b70982. The harness signs the run, so a reader can check that these numbers come from that run.

What remains uncertain?

Every rule this skill states comes from a source. No question is open.

What happens to a Stripe verdict when Stripe is down?

Nothing changes about the verdict. Provely records whether Stripe answered when it read it, and it reads what Stripe publishes about itself. Both explain an answer. Neither decides one. Read how Provely records integration uptime.

Stripe publishes a machine-readable status document at https://status.stripe.com/current. Provely reads it on a schedule and stores what it says. A JSON document with a per-component status map, an overall largestatus, and a message.

Source: Stripe status page · retrieved 2026-09-07

A Stripe 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.

SourceKindRetrievedExcerpt
stripe.docs.idempotencydocs2026-09-05authored
stripe.docs.refundsdocs2026-09-05authored
stripe.docs.webhooksdocs2026-09-05authored
stripe.eventsevent sample2026-09-05authored
stripe.openapiopenapi2026-09-05trimmed

How do I verify a Stripe action?

Verify a Stripe action with Provely

  1. Begin the operation.Call begin with the contract stripe.refund.created and the input. Keep the operation id and the idempotency key.
  2. Make the Stripe call you make today.Send the Idempotency-Key header with the key that begin returned. A retry then cannot create a second side effect.
  3. Submit the acknowledgement.Call action_result with the Stripe response. This is evidence level E1. It is not completion.
  4. Verify.Call verify. The runtime reads the evidence that the contract names, from Stripe and not from the agent, and evaluates the contract.
  5. 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 created level prove the succeeded level?

No. The created level proves that the Refund object exists at the provider with the requested amount and charge. It does not prove that money moved. A Refund object does not prove that money moved. This contract proves the succeeded state on the refund resource and a refund.updated event that carries it. Use stripe.refund.succeeded to prove succeeded.

What does the agent say while the Stripe 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 Stripe API versions does the skill support?

2026-08-26. An operation on another version returns UNVERIFIABLE with the reason version_unsupported. The runtime never guesses.

Does Provely need write access to Stripe?

No. The agent keeps its write key. The verifier reads with a separate read-only credential where Stripe permits it, and it never shares that credential with the agent.