@@ -36,6 +36,7 @@ async def test_acapy_oid4vci_credential_issuance_to_credo(
3636
3737 # Step 1: Create a supported credential on ACA-Py issuer
3838 credential_supported = {
39+ "id" : "IdentityCredential" ,
3940 "format" : "vc+sd-jwt" ,
4041 "scope" : "IdentityCredential" ,
4142 "cryptographic_binding_methods_supported" : ["did:key" ],
@@ -142,14 +143,29 @@ async def test_acapy_oid4vp_presentation_verification_from_credo(
142143 ],
143144 }
144145
145- # Step 2: ACA-Py creates presentation request
146+ # Step 2: Create presentation definition first
147+ pres_def_data = {
148+ "pres_def" : presentation_definition
149+ }
150+
151+ pres_def_response = await acapy_verifier_admin .post (
152+ "/oid4vp/presentation-definition" , json = pres_def_data
153+ )
154+ assert "pres_def_id" in pres_def_response
155+ pres_def_id = pres_def_response ["pres_def_id" ]
156+
157+ # Step 3: ACA-Py creates presentation request
146158 presentation_request_data = {
147- "presentation_definition" : presentation_definition ,
148- "response_mode" : "direct_post" ,
159+ "pres_def_id" : pres_def_id ,
160+ "vp_formats" : {
161+ "vc+sd-jwt" : {
162+ "sd-jwt_alg_values" : ["EdDSA" , "ES256K" , "ES256" ]
163+ }
164+ }
149165 }
150166
151167 presentation_request = await acapy_verifier_admin .post (
152- "/oid4vp/create- request" , json = presentation_request_data
168+ "/oid4vp/request" , json = presentation_request_data
153169 )
154170
155171 assert "request_uri" in presentation_request
@@ -171,6 +187,7 @@ async def test_full_acapy_credo_oid4vc_flow(
171187
172188 # Step 1: Setup credential configuration on ACA-Py issuer
173189 credential_supported = {
190+ "id" : "UniversityDegreeCredential" ,
174191 "format" : "vc+sd-jwt" ,
175192 "scope" : "UniversityDegree" ,
176193 "cryptographic_binding_methods_supported" : ["did:key" ],
@@ -273,13 +290,28 @@ async def test_full_acapy_credo_oid4vc_flow(
273290 ],
274291 }
275292
293+ # Create presentation definition first
294+ pres_def_data = {
295+ "pres_def" : presentation_definition
296+ }
297+
298+ pres_def_response = await acapy_verifier_admin .post (
299+ "/oid4vp/presentation-definition" , json = pres_def_data
300+ )
301+ assert "pres_def_id" in pres_def_response
302+ pres_def_id = pres_def_response ["pres_def_id" ]
303+
276304 presentation_request_data = {
277- "presentation_definition" : presentation_definition ,
278- "response_mode" : "direct_post" ,
305+ "pres_def_id" : pres_def_id ,
306+ "vp_formats" : {
307+ "vc+sd-jwt" : {
308+ "sd-jwt_alg_values" : ["EdDSA" , "ES256K" , "ES256" ]
309+ }
310+ }
279311 }
280312
281313 presentation_request = await acapy_verifier_admin .post (
282- "/oid4vp/create- request" , json = presentation_request_data
314+ "/oid4vp/request" , json = presentation_request_data
283315 )
284316 request_uri = presentation_request ["request_uri" ]
285317
@@ -294,7 +326,7 @@ async def test_full_acapy_credo_oid4vc_flow(
294326
295327 # Step 6: Verify presentation was successful
296328 assert "presentation_submission" in presentation_result
297- assert presentation_result .get ("status" ) in [ "success" , "completed" ]
329+ assert presentation_result .get ("status" ) == "success"
298330
299331 # Step 7: Check that ACA-Py received and validated the presentation
300332 # Wait a moment for processing
@@ -306,7 +338,7 @@ async def test_full_acapy_credo_oid4vc_flow(
306338
307339 # Find our presentation
308340 latest_presentation = presentations [0 ] # Assuming most recent
309- assert latest_presentation .get ("state" ) in [ "presentation-valid" , "completed" ]
341+ assert latest_presentation .get ("state" ) == "presentation-valid"
310342
311343 print ("✅ Full OID4VC flow completed successfully!" )
312344 print (f" - ACA-Py issued credential: { config_id } " )
0 commit comments